잃어버린 디스크 공간의 미스터리

잃어버린 디스크 공간의 미스터리

작업을 위해 서버에서 약 350Gb를 구입한 새 로컬 1Tb 외부 SSD로 복사하려고 합니다. 그래서 rsync를 사용했는데, 복사 도중 1Tb 디스크 공간이 부족해져서 이상했습니다. 그래서 다시 포맷하고(exfat, Mac과 Linux에서 액세스하기를 원했기 때문에) 다시 시도했는데, du파일 자체가 보장하는 것보다 훨씬 더 많은 디스크가 사용되고 있음 을 발견했습니다 ls. stackexchange를 확인하면 "스파스 파일" 또는 씬 프로비저닝으로 설명할 수 있지만 스파스 파일은 사용하지 않습니다.더 적은디스크 공간( 표시됨 du)이 파일에 필요한 공간( 표시됨 ls)보다 큽니다. 마지막으로 개별 파일의 크기를 확인해 보면 du가장 작은 파일도 128K를 차지한다는 것이 분명합니다. 이는 분명히 exfat으로 포맷할 때 기본 블록 크기 때문이며, 전송하려는 아카이브에는 수백만 개의 작은 파일이 포함되어 있으므로 이러한 낭비를 감당할 수 없습니다. 그래서 Mac에서는 1K 블록 크기를 설정해 보았습니다.

diskutil info 
diskutil unmountDisk disk4
newfs_exfat -R -v JR_SSD_1Tb -b 1024 /dev/disk4

(보고에 따르면) 괜찮아 보였지만 diskutilLinux 상자가 SSD를 자동으로 마운트하지 않았고 수동으로 마운트할 때 오류가 발생했습니다. 그래서 나는 mac cli 유틸리티가 완전히 호환되지 않는다고 생각하여 Linux에서 포맷을 시도했지만 실제로 작업이 완료되지 않은 것 같습니다. 몇 바이트의 새 테스트 파일을 만들 때 최소 크기는 512K입니다. .

sudo mkfs.exfat -s 1024 -n JR_SSD  /dev/sda
   mkexfatfs 1.3.0
   Creating... done.
   Flushing... done.a
   File system created successfully.
cat > /media/jeremy/JR_SSD/test.txt
ls -l /media/jeremy/JR_SSD/test.txt
   -rwxrwxrwx 1 jeremy jeremy 4 Aug 25 20:14 /media/jeremy/JR_SSD/test.txt
du -h /media/jeremy/JR_SSD/test.txt
    512K /media/jeremy/JR_SSD/test.txt

그럼 - 어떻게 해야 하나요?

답변1

옵션은 클러스터당 블록(섹터) 수 -s입니다 . mkfs.exfat클러스터는 파일 시스템이 작동할 수 있는 가장 작은 공간입니다.

클러스터당 1024개 섹터, 클러스터당 512바이트가 필요하므로 최소 파일 크기는 512KB입니다. 1kibytes 클러스터를 원하면 -s 2.

관련 정보