Используйте это вместо:
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()
кэшем записи и чтения следующим образом: когда выдается системный вызов, данные быстро записываются в кэш, и состояние завершения записи отправляется процессу. Когда необходим буфер или когда на шине есть свободное время, данные записываются из кеша на жесткий диск.
/dev/sdc
, что в вашей системе действительно используется устройство, и вы не записываете в файл/dev/sdc
? Сделайтеls --color /dev
-/dev/sdc
должен быть желтый, если это устройство.