Use isso:
sudo dd if=install57.fs of=/dev/sdc conv=fsync
Isso chama o fsync()
após cada write()
chamada do sistema. Isso força dd
a não armazenar nada em cache. Veja esta parte da manpage do 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 é o comportamento padrão dos kernels. Os kernels Linux gerenciam os caches de gravação e leitura assim: Quando o write()
syscall é emitido, os dados são gravados rapidamente no cache e um status de gravação concluída é enviado para o processo. Quando o buffer é necessário ou quando há tempo livre no barramento, os dados são gravados do cache para o disco rígido.