루프 파일 시스템이란 무엇입니까?
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
이제 파일을 추가 또는 삭제하거나 단순히 이러한 스냅 샷을 추출하려면 어떻게됩니까? 글쎄, 우리는 명령을 가지고 언스쿼시.
unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]
기본적으로 "squashfs-root"를 추출 디렉토리로 사용합니다. -d 옵션으로 변경 가능
- 라이브 CD
- 임베디드 시스템
- 서버
- 일반적으로 모든 읽기 전용 시스템
3-«긴급 스왑»
어떤 이유로 든 (최대 절전 모드, 대규모 컴파일 ...) 추가 스왑이 필요하다고 상상해보십시오. 이것은 루프 파일이 작동하는 곳입니다. 첫 번째 단계는 특정 블록 크기의 특정 크기의 빈 파일을 만드는 것입니다. 다음 명령으로 수행합니다. dd:
dd if=/dev/zero of=loop bs=1M count=512
이 경우 블록은 512MiB이고 파일 크기는 XNUMXMiB입니다. 이럴 필요는 없습니다.
이 명령으로 스왑을 만들고 활성화합니다.
mkswap loop && swapon loop
루프 파일의 성능은 항상 실제 물리적 파일의 성능보다 다소 낮다는 것을 명심하십시오.
4- 당신이 원하는 것을하십시오
이것들은 가장 특징적인 예 중 일부에 불과합니다. chroot, 암호화 시스템, 중첩 루프를 자유롭게 실험 해보십시오. 가능성은 무한합니다. 그러나 실행하는 명령에주의하십시오. Enter를 누르기 전에 신중하게 생각하십시오.
좋은 포스트 체 !! 나는 거기에 거대한 백업이 있고 그것들을 압축하는 일은 결코 발생하지 않았습니다. 나는 이것을 사용할 것이고, 그런데 그것을 채우기 위해 내 외부 것을 암호화 한 다음 그것을 암호화 할 것이라는 것을 기억했습니다 🙁
squashfs를 시도하는 것이 흥미 롭습니다.
좋은 튜토리얼, dd로 img 파일을 만들고 마운트하는 방법을 읽었지만 Squashfs의 사용과 압축 방법을 몰랐습니다. 내용을 수정할 수는 없지만 댓글을 쓰는 상황에서 유용 할 수 있습니다. 인사 해주셔서 감사합니다.
알아두면 매우 좋습니다. 팁에 감사드립니다.
당신은 항상 새로운 것을 배웁니다. 우수한!
웃기고 스쿼시와 그 용도를 알고 있었지만 이미지를 압축하는 일은 결코 발생하지 않았습니다. 팁 고마워.
인상적입니다. 무슨 일이 일어나고 있는지 확인해 보겠습니다. 아주 좋은 팁
훌륭한 tuto !!! =)… 아주 좋은 팁 !!!
안녕하세요. 매우 흥미로운 기사, 공유해 주셔서 감사합니다.
젠투에서는 컴파일하기 전에 커널에서 SquashFS 지원을 활성화해야합니다. 어떻게 작동하는지 테스트 해 보겠습니다. 감사합니다.
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