我想取消设置 ntfs-3g 分区中文件的稀疏标志,仅使用linux。并且正确地(零填充孔?)。
我试过的: setfattr -h -v 0x00000000 -n system.ntfs_attrib_be /xxx/file
我想取消设置 ntfs-3g 分区中文件的稀疏标志,仅使用linux。并且正确地(零填充孔?)。
我试过的: setfattr -h -v 0x00000000 -n system.ntfs_attrib_be /xxx/file
我找到了解决方法。如果原始 spase 文件中存在漏洞,使用以下命令可能会清除稀疏标志。
filesize=$(stat --format="%s" filename)
ntfsfallocate /dev/sdb1 -l ${filesize} /relative_path_to_mnt_target
如果原始稀疏文件中没有漏洞怎么办?还有一个变通办法。
filesize=$(stat --format="%s" filename)
truncate -s $((filesize + 16 * 1024 * 1024)) /path_to_sparse_file
umount /dev/sdb1
ntfsfallocate /dev/sdb1 -l ${filesize} /relative_path_to_mnt_target
最后,您可以修补ntfsfallocate的源(由ntfs-3g提供),以直接清除稀疏标志,但我这里没有显示任何c代码。