LiveUSB가 squashfs(및 유사한) 파일 시스템을 사용하는 이유는 무엇입니까?

LiveUSB가 squashfs(및 유사한) 파일 시스템을 사용하는 이유는 무엇입니까?

지금까지 제가 만난 모든 LiveUSB는 USB 플래시 드라이브에서 이미 발견된 파티션 유형을 실제로 유지하면서 ext4 파일 시스템과 함께 squashfs 또는 유사한 "가짜" 방법을 사용합니다.

ext4Linux LiveUSB가 내부 하드 드라이브처럼 USB 드라이브를 직접 포맷 하지 않는 이유는 무엇입니까 ?

답변1

Squashfs는 불변의 라이브 이미지를 생성하기 위해 페더레이션된 FS(overlayfs, aufs)와 함께 사용되는 경우가 많습니다.

이는 squashfs 이미지가 읽기 전용으로 마운트되는 반면 tmpfs는 읽기-쓰기로 마운트됨을 의미합니다. 그런 다음 이 두 레이어를 조립하고 /에 결합체로 마운트합니다. 이러한 조립 및 설치 단계는 일반적으로 조립된 루트 파일 시스템으로 루트를 지정하기 전에 initramfs에서 수행됩니다.

모든 읽기 전용 액세스는 squashfs 이미지에 직접 수행되는 반면, 모든 변경 사항은 RAM의 휘발성 tmpfs에 커밋되므로 다음에 부팅할 때 이미지는 변경되지 않은 상태로 유지됩니다.

IMHO, squashfs readwrite를 사용하는 것은 관련성이 적습니다. 이 경우 공간 제약을 꼭 충족해야 하는 경우가 아니라면 제안한 대로 ext4를 사용해야 합니다.

답변2

squashfs는 특히 USB 플래시 드라이브와 같은 느린 미디어의 경우 더 빠릅니다.
squashfs에서 부팅하면 데이터가 효과적으로 압축되고 메타데이터가 그다지 복잡하지 않기 때문에 IO가 줄어듭니다. squashfs

에는 몇 가지 단점이 있습니다. CPU를 많이 사용하고 데이터 수정을 허용하지 않으므로 데스크톱에서는 널리 사용되지 않지만 liveUSB와 같은 작업에는 적합합니다.

답변3

주된 이유는 압축이 풀린 이미지가 시작 시 자체적으로 확장된다는 것입니다. 그런데 어디에서?

RAM에 있는 경우 컴퓨터에 이를 구현하기에 충분한 RAM이 없을 수 있습니다. 그러나 ext4 파티션의 USB 키 자체에서 수행된 경우 파일이 동일한 파티션에 기록되었으므로 "이미지"가 더 이상 완전하지 않습니다.

더 나쁜 것은 일부 변경 사항으로 인해 변경 사항이 지속적으로 발생할 수 있으며 이는 이미지에 발생하고 싶지 않은 일입니다.

관련 정보