fsutil файл createnew на windows vs dd на linux

Как заголовок, мне интересно, как fsutil в Windows может так быстро создать действительно большой файл. Действительно ли он выделяет реальный кластер для этого файла или просто записывает метаданные файла? Рассмотрим две команды ниже:

fsutil file createnew testFile <1Tb>
dd if=/dev/zero of=testFile bs=1024M count=1024

Поэтому я создаю файл размером 1 Тб, проблема с fsutil, файл почти сразу создается, но с dd на его завершение ушло более 1 часа. Поэтому, я думаю, что fsutil записывает только метаданные в заголовок файла, реальный файловый кластер будет расширяться при необходимости. Я думаю правильно?

1 ответ

Из документации Microsoft

createnew Создает файл с указанным именем и размером, с содержимым, состоящим из нулей.

отсюда вы можете сказать, что в файле должны быть все нули ([...] с содержимым, состоящим из нулей)

но если это правда

[...]the file is nearly created immediately[...]

Я думаю, что вы правы: возможно, fsutil создает файл с байтами, помеченными как свободные во время выполнения, но не записывает эти байты

Когда вы используете дд, как это

dd if=/dev/zero of=testFile bs=1024M count=1024

вы на самом деле пишете, "побайтово", нули в каждом байте нового файла

Вы можете сделать это:

fsutil file createnew testFile_fsutil <1Tb>   #(on Windows)

dd if=/dev/zero of=testFile_dd bs=1024M count=1024   #(on Linux)

и затем вы можете увидеть содержимое testFile_fsutil на любом гекседиторе и найти ненулевые байты или, точнее, в Linux, которые вы можете сделать ( 1099511627776 байт = 1 тэбибайт):

cmp --bytes=1099511627776 testFile_fsutil testFile_dd

или же

cmp --bytes=1099511627776 testFile_fsutil /dev/zero

или даже используя хэши:

dd if=/dev/zero bs=1024M count=1024 | sha1sum

вернуть

fea475204f4ad1348f21fad930a7c721a2858971

так,

dd if=testFile_fsutil bs=1024M count=1024 | sha1sum

должен вернуть то же самое.

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

Другие вопросы по тегам