Use esto en su lugar:
sudo dd if=install57.fs of=/dev/sdc conv=fsync
Esto llama fsync()
después de cada write()
llamada al sistema. Esto obliga a dd
no guardar nada en la memoria caché. Consulte esta parte de la página de manual de 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)).
Este es el comportamiento predeterminado de los núcleos. Los núcleos de Linux administran las memorias caché de escritura y lectura de esta manera: cuando write()
se emite la llamada al sistema, los datos se escriben rápidamente en la memoria caché y se envía un estado de escritura completa al proceso. Cuando se necesita el búfer o cuando hay tiempo libre en el bus, los datos se escriben desde el caché al disco duro.
/dev/sdc
es un dispositivo real en su sistema y no está escribiendo en un archivo/dev/sdc
? Haga unls --color /dev
-/dev/sdc
debería ser amarillo si es un dispositivo.