作業のために、サーバーから約350 Gbを購入した新しいローカル1 Tb外部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
では、どうすればいいですか?
答え1
オプションはクラスタあたりのブロック(セクタ)の数-s
です。mkfs.exfat
クラスタは、ファイルシステムが動作できる最小のスペースです。
クラスタあたり1024セクタ、クラスタあたり512バイトが必要なため、最小ファイルサイズは512KBです。 1kibytesクラスターが必要な場合-s 2
。