O dd
não ignora os caches de disco do kernel ao gravar em um dispositivo, portanto, parte dos dados pode não estar gravada ainda no USB
stick após a conclusão de dd
. Se você desconectar seu USB
stick naquele momento, o conteúdo no USB
stick seria inconsistente. Assim, seu sistema pode até falhar ao inicializar a partir deste USB
stick.
Sync
libera qualquer dado ainda em cache para o dispositivo.
Em vez de invocar sync
, você pode usar a opção de conversão fdatasync
dd
:
fdatasync
physically write output file data before finishing
No seu caso, o comando seria:
tar -xzOf archlinux-2016-09-03-dual.iso | \
dd of=/dev/disk2 bs=4M status=progress conv=fdatasync
O conv=fdatasync
faz com que dd
chame efetivamente a chamada de sistema fdatasync()
no final da transferência antes de dd
sair (verifiquei isso com as fontes de dd
).
Isso confirma que dd
não ignora nem libera os caches, a menos que seja explicitamente instruído a fazê-lo.