磁盘空间丢失之谜

磁盘空间丢失之谜

我想将大约 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

那么 - 我该怎么做呢?

答案1

选项-smkfs.exfat每个簇的块(扇区)数量。簇是文件系统可以操作的最小空间量。

您要求每个簇有 1024 个扇区,每簇 512 字节,因此文件的最小大小为 512 KB。如果您想要 1kibytes 的簇,请使用-s 2.

相关内容