Как снять флажок разреженного файла в разделе NTFS-3g, используя только Linux?
Я хочу снять флажок разреженного файла в разделе ntfs-3g, используя только linux. и как следует(дырочки ноль?).
Что я пробовал: setfattr -h -v 0x00000000 -n system.ntfs_attrib_be /xxx/file
1 ответ
Я нашел обходной путь. с помощью следующей команды можно сбросить флаг разреженности, если в исходном файле spase есть дыры.
filesize=$(stat --format="%s" filename)
ntfsfallocate /dev/sdb1 -l ${filesize} /relative_path_to_mnt_target
Что делать, если в исходном разреженном файле нет дыр? также есть обходной путь.
- сначала измените размер (увеличьте) файл, используя усечение, чтобы создать несколько отверстий.
- 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.