Linux
磁碟空間失去之謎
我有大約 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
這似乎沒問題(根據
diskutil
報告),但是 linux 機器沒有自動掛載 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
那麼 - 我該怎麼做呢?
-s
選項是每個集群的mkfs.exfat
塊(扇區)數。集群是文件系統可以操作的最小空間量。您要求每個群有 1024 個 512 字節的扇區,因此文件的最小大小為 512 KB。如果您想要 1 千字節的集群,請使用
-s 2
.