Используйте это вместо:
sudo dd if=install57.fs of=/dev/sdc conv=fsync
Это вызывает fsync()
после каждого системного вызова write()
. Это заставляет dd
ничего не кэшировать. Смотрите эту часть справочной страницы fsync (man 2 fsync
):
fsync() transfers ("flushes") all modified in-core data of (i.e., modified buffer cache
pages for) the file referred to by the file descriptor fd to the disk device (or other
permanent storage device) where that file resides. The call blocks until the device reports
that the transfer has completed. It also flushes metadata information associated with the
file (see stat(2)).
Это поведение ядра по умолчанию. Ядра Linux управляют кэшем записи и чтения следующим образом: Когда выдается системный вызов write()
, данные быстро записываются в кэш, и состояние завершения записи отправляется процессу. Когда необходим буфер или когда на шине есть свободное время, данные записываются из кэша на жесткий диск.