-1

У меня есть много файлов в моем разделе NTFS, размеры которых больше, чем размер на диске.

свойства размера файла

  • В шестнадцатеричном представлении конец файла (часто больше, чем половина файла) заполняется 0x00.
  • Когда я копирую файл, размер копируемого файла на диске превышает его размер. Однако файл все еще в значительной степени заполнен ненужными 0x00.
  • chkdsk не нашел ошибок.
  • Сжатие NTFS отключено.

Как я могу исправить эти файлы?

1 ответ1

1

Однако файл все еще большой, заполнен ненужными 0x00.

Откуда ты знаешь, что это ненужно? Изображение, вероятно, не имеет нулевых данных в конце, как это, но многие файлы, такие как образы дисков или предварительно выделенный формат, имеют большие разделы нулей. Ваши изображения по-прежнему отображаются правильно?

Файловая система не хранит случайные или пустые данные в ваших файлах. Таким образом, если диск не был поврежден, данные были определенно записаны каким-либо человеком или приложениями. Вы не исправляете файловую систему, так как с ней нет проблем. Вы также не исправляете файлы, если они являются их реальными данными. Скорее вам нужно проверить, есть ли какие-либо вредоносные программы на вашем компьютере

Возвращаясь к основной "проблеме", размер на диске может быть меньше в различных ситуациях, таких как резидентные файлы или символические ссылки. Однако такой большой файл, очевидно, не помещается в запись MFT, поэтому в вашем случае, скорее всего, это редкий файл, в котором файловая система просто хранит значимые данные, экономя пространство, оставляя пустые части.

Однако по умолчанию файл не будет создаваться разреженным, поэтому некоторые программы установили флаг sparse для ваших файлов. Он также может быть включен вручную с помощью fsutil sparse

PS D:\> fsutil file createnew zeros 0x100000      # create a blank file 0x100000 bytes long
File D:\zeros is created
PS D:\> fsutil sparse setflag .\zeros
PS D:\> fsutil sparse setrange .\zeros 0 0x100000 # set the range of zero bytes
PS D:\> fsutil file layout .\zeros

********* File 0x0015000000000e3d *********
File reference number   : 0x0015000000000e3d
File attributes         : 0x00000220: Archive | Sparse
File entry flags        : 0x00000000
Link (ParentID: Name)   : 0x0005000000000005: HLINK Name   : \zeros
Creation Time           : 13-12-2018 17:44:25
Last Access Time        : 13-12-2018 17:45:48
Last Write Time         : 13-12-2018 17:45:48
Change Time             : 13-12-2018 17:45:48
# ... irrelevant data
Stream                  : 0x080  ::$DATA
    Attributes          : 0x00000200: Sparse
    Flags               : 0x00000008: No clusters allocated
    Size                : 1,048,576
    Allocated Size      : 0
    Extents             : 1 Extents
                        : 1: VCN: 0 Clusters: 256 LCN: -1

Как вы можете видеть выше, после установки нулевого диапазона выделенный размер в потоке ::$DATA становится нулевым

Разреженный файл

Чтобы удалить флаг разрежения, вам просто нужно скопировать файл в новый, потому что, как сказано выше, он не включен по умолчанию

дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .