튜토리얼 : 루프 파일 시스템

루프 파일 시스템이란 무엇입니까?

Gnu / Linux (및 대부분의 유닉스 시스템)에는 일반적으로 파티션 테이블이없는 하드 디스크 인 것처럼 파일 (이전 포맷)을 마운트 할 수있는 메커니즘이 있습니다. 이 엉뚱한 다이어그램 (내가 만든)은이 메커니즘이 어떻게 작동하는지 설명합니다.

GNU / linux에서 루프 파일이 어떻게 작동하는지 (대략) 설명하는 순서도.

** 실제 작동을 완전히 나타내지는 않습니다.

루프 파일 사용

1- Mount.iso 파일

.iso 파일은 CD 및 DVD의 표준 부분 우수성이며 파일 시스템을 사용할 수있는 루프 파일에 지나지 않습니다. ISO 9960 (CD에서 더 일반적) 또는 UDF (DVD에서 가장 일반적). 마운트하려면 mount 명령을 사용합니다.

mkdir iso # 디렉토리 생성 chmod -R 666 iso # 모든 사용자에게 읽기 권한을 부여합니다. mount image.iso iso / # iso 이미지를 마운트합니다 (루트 필요).

제한 사항은 명백한 이유로 두 파일 시스템이 모두 읽기 전용이라는 것입니다.

2- 읽기 전용 스쿼시

촬영 된 연도에 따라 구성된 이미지 및 / 또는 비디오 폴더가 있다고 가정 해 보겠습니다. 분명히 지난 몇 년 동안 폴더에 포함 된 데이터를 수정할 가능성은 거의 없습니다. 그것이 Squashfs가 들어오는 곳입니다. Squashfs는 읽기 전용 압축 파일 시스템이므로 이미지가 생성되면 우리는 내부의 데이터를 수정할 수 없습니다.

따라서 우리는 엄청난 양의 공간을 절약 할 것입니다,하지만 흥미로운 효과도있을 것입니다. 파일 읽기가 더 빨라집니다, 더 작은 파일을 읽어야합니다. 요즘에는 대부분의 CPU에서 파일 압축을 푸는 것이 최소한의 노력이기 때문입니다.

서문을 그대로두고 squashfs 이미지를 만들려면 구문이 간단한 mksquashfs 명령을 사용해야합니다.

mksquashfs directorio 1 [directorio 2 directorio 3...] imagen.sqsfs -comp [algoritmo de compresión] -b [tamaño del bloque ]

그리고 여기에 실용적인 예가 있습니다.

mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1M

음, 선택한 알고리즘은 xz입니다. 더 높은 압축비 제안 (사용 가능한 것 중), 선택한 블록 크기는 최대입니다. 뭐 더 나은 압축 결과 허용 (기본적으로 64KiB).

이제 간단하게 마운트 할 수 있습니다.

mount fotos_2009-2013.sqsfs fotos_2009-2013/

모든 것이 올바른지 확인한 후 원본 파일을 삭제하거나 파일을 백업으로 남겨 둘 수 있습니다.

OS가 시작될 때 마운트되도록하려면이 스타일의 행을 / etc / fstab에 추가해야합니다.

/dir/loop.sqsh /dir/mountdir squashfs ro,defaults 0 0

/ etc / fstab 파일에 잘못된 데이터를 입력하면 시스템 부팅이 중지됩니다. 모든 것이 올바르게 작동하는지 확인하려면 다음 명령을 사용할 수 있습니다. 마운트 -a

이제 파일을 추가 또는 삭제하거나 단순히 이러한 스냅 샷을 추출하려면 어떻게됩니까? 글쎄, 우리는 명령을 가지고 언스쿼시.

unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]

기본적으로 "squashfs-root"를 추출 디렉토리로 사용합니다. -d 옵션으로 변경 가능

이 예와 별도로 squashfs는 다음에서도 사용됩니다.

  • 라이브 CD
  • 임베디드 시스템
  • 서버
  • 일반적으로 모든 읽기 전용 시스템

3-«긴급 스왑»

어떤 이유로 든 (최대 절전 모드, 대규모 컴파일 ...) 추가 스왑이 필요하다고 상상해보십시오. 이것은 루프 파일이 작동하는 곳입니다. 첫 번째 단계는 특정 블록 크기의 특정 크기의 빈 파일을 만드는 것입니다. 다음 명령으로 수행합니다. dd:

dd if=/dev/zero of=loop bs=1M count=512

잘못된 손에있는 dd는 산탄 총을 든 원숭이보다 더 나쁩니다. Enter를 누르기 전에 생각하십시오

이 경우 블록은 512MiB이고 파일 크기는 XNUMXMiB입니다. 이럴 필요는 없습니다.

이 명령으로 스왑을 만들고 활성화합니다.

mkswap loop && swapon loop

루프 파일의 성능은 항상 실제 물리적 파일의 성능보다 다소 낮다는 것을 명심하십시오.

4- 당신이 원하는 것을하십시오

이것들은 가장 특징적인 예 중 일부에 불과합니다. chroot, 암호화 시스템, 중첩 루프를 자유롭게 실험 해보십시오. 가능성은 무한합니다. 그러나 실행하는 명령에주의하십시오. Enter를 누르기 전에 신중하게 생각하십시오.

관심 링크


11 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   일 루키

    좋은 포스트 체 !! 나는 거기에 거대한 백업이 있고 그것들을 압축하는 일은 결코 발생하지 않았습니다. 나는 이것을 사용할 것이고, 그런데 그것을 채우기 위해 내 외부 것을 암호화 한 다음 그것을 암호화 할 것이라는 것을 기억했습니다 🙁

  2.   시그84

    squashfs를 시도하는 것이 흥미 롭습니다.

  3.   마누엘 R

    좋은 튜토리얼, dd로 img 파일을 만들고 마운트하는 방법을 읽었지만 Squashfs의 사용과 압축 방법을 몰랐습니다. 내용을 수정할 수는 없지만 댓글을 쓰는 상황에서 유용 할 수 있습니다. 인사 해주셔서 감사합니다.

  4.   데모

    알아두면 매우 좋습니다. 팁에 감사드립니다.

  5.   호아킨

    당신은 항상 새로운 것을 배웁니다. 우수한!

  6.   브루클린이 아닌

    웃기고 스쿼시와 그 용도를 알고 있었지만 이미지를 압축하는 일은 결코 발생하지 않았습니다. 팁 고마워.

  7.   HO2Gi

    인상적입니다. 무슨 일이 일어나고 있는지 확인해 보겠습니다. 아주 좋은 팁

  8.   로버트

    훌륭한 tuto !!! =)… 아주 좋은 팁 !!!

  9.   포리어스

    안녕하세요. 매우 흥미로운 기사, 공유해 주셔서 감사합니다.

  10.   에사우

    젠투에서는 컴파일하기 전에 커널에서 SquashFS 지원을 활성화해야합니다. 어떻게 작동하는지 테스트 해 보겠습니다. 감사합니다.

    1.    에사우

      Gentoo에서 커널을 컴파일하고 테스트했습니다.
      작은 오타를 수정하십시오.

      예에서 :

      mksquashfs 사진 -2009 사진 -2010 사진 -2011 사진 -2012 사진 -2013 photos_2009-2013.sqsfs -comp xz -bs 1M

      (블록의 크기를 결정하는) "-bs"의 s를 남겨두면 다음과 같아야합니다.

      mksquashfs 사진 -2009 사진 -2010 사진 -2011 사진 -2012 사진 -2013 사진 _2009-2013.sqsfs -comp xz -b 1M