-1

我想取消设置 ntfs-3g 分区中文件的稀疏标志,使用linux。并且正确地(零填充孔?)。

我试过的: setfattr -h -v 0x00000000 -n system.ntfs_attrib_be /xxx/file

4

1 回答 1

0

我找到了解决方法。如果原始 spase 文件中存在漏洞,使用以下命令可能会清除稀疏标志。

filesize=$(stat --format="%s" filename)
ntfsfallocate /dev/sdb1 -l ${filesize} /relative_path_to_mnt_target

如果原始稀疏文件中没有漏洞怎么办?还有一个变通办法。

  1. 首先使用 truncate 调整(放大)文件以创建一些孔。
  2. umount,使用 ntfsfallocate 截断为原始大小。演示命令:
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代码。

于 2020-08-05T08:51:17.400 回答