오버헤드가 낮은 파일 시스템을 만드는 방법

오버헤드가 낮은 파일 시스템을 만드는 방법

7.4GB 파일을 복사해야 하는 7.5GB USB 키체인이 있습니다. 하지만 슈퍼블록이 0.5GB의 공간을 소비하기 때문에 그럴 수 없습니다.

답변1

장치에 데이터를 쓰는 데 파일 시스템이 필요하지 않습니다. tar디렉터리 구조와 모든 메타데이터를 저장하는 아카이브를 생성하고 이를 장치에 쓸 수 있습니다 .

데이터 투입

다음은 sdb내 시스템에 있는 USB 드라이브의 예입니다. 설정에 맞게 조정하세요.

tar cf /dev/sdb <some_directory>

데이터 읽기

tar다음을 사용하여 장치에서 데이터를 직접 읽을 수 있습니다 .

tar xf /dev/sdb

내 실험에서는 tar 아카이브의 데이터뿐만 아니라 항상 전체 블록 장치를 읽습니다. 장치에 8GiB가 있다는 것을 알고 있지만 3GiB만 저장했다면 다음을 dd사용하여 전체 장치를 읽지 않아도 됩니다.

dd if=/dev/sdb bs=1M count=3072 | tar xf -

참고 사항

데이터를 최대한 압축해 보세요. 시간이 오래 걸릴 수 있지만 일반 파일 시스템이 있는 드라이브에는 모든 것이 들어갈 수 있습니다. 사용하는 것이 좋습니다 7-Zip. 느리지만 압축률이 높습니다. 예는 다음과 같습니다.

7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z <some_directory>

답변2

실제로 ext4 파일 시스템은 필요하지 않지만 오버헤드를 장치 용량의 1.3% 미만(7.5GB 중 100MB)으로 줄이는 파일 시스템이 필요하므로 다양한 낮은 오버헤드 옵션을 고려해 보겠습니다. 단일 7.4GB 파일을 처리할 수 있다는 기준을 충족하는 가장 확실한 두 가지 방법은 낮은 inode 수와 희박한 슈퍼블록을 갖춘 ext2 또는 낮은 오버헤드 FAT32 파일 시스템입니다.

편집하다:FAT32 최대 파일 크기에 대해 제가 틀린 것 같지만 누군가가 이 문제를 겪고 단일 파일이 2^32 - 1(4GiB - 4 GiB - 1) 축제.

오버헤드가 낮은 ext2 파일 시스템의 경우 파일 시스템의 inode 수를 지정하는 mke2fs -t ext2 -N 8 -O sparse_super것과 같은 작업을 시도하십시오. -N 8이 값이 얼마나 낮은지 모르므로 이 손잡이에 약간의 조정이 필요할 수 있습니다.

오버헤드가 낮은 FAT32 파일 시스템의 경우 다음과 같이 시도하십시오 . 그러면 단일 FAT, 8개 루트 항목, 32KiB 논리 섹터 크기, 클러스터 영역당 128개 섹터가 있는 FAT32(필요한 파일 크기 허용)가 mkdosfs -F 32 -f 1 -r 8 -S 32768 -s 128 -a생성됩니다. 이 값을 더 늘릴 수 있음) 및 데이터 구조 정렬을 비활성화할 수 있습니다.-F 32-f 1-r 8-S 32768-s 128-a

관련 정보