Acabei de salvar a restauração do Windows 8.1 em um pendrive; agora, eu tenho criado a cópia de baixo nível dela no meu disco rígido, executando o seguinte comando:
sudo dd se = / dev / sdf de = / disk2 / Archive / windows8.1-restore.img bs = 4M oflag = direct
Eu queria checar se meu comando 'dd' estava ok, então eu o executei novamente duas vezes, especificando ambos bs=8M
e bs=16M
; Eu verifiquei o tamanho e é exatamente o mesmo, mas o md5sum fornece uma saída diferente para os três arquivos:
c38a2b07b3d473d3f1876331edc2647b windows8.1-restore.img.4M 568e382844431eef63d4ba6dc4c2c5ac windows8.1-restore.img.8M 568e382844431eef63d4ba6dc4c2c5ac windows8.1-restore.img.16M
Acredito ter desmontado o pen drive pela segunda e terceira vez.
Eu deveria estar preocupado com alguma coisa?
editar
O tamanho total do arquivo é 31024349184
bytes em todos os casos, pelo que entendi bs=xxx
é apenas controlar a velocidade, caso alguém queira despejar todo o dispositivo / unidade USB.
dd
combs=4M
?dd
Sabe-se que tamanhos pequenos de blocos diminuem o desempenho, porque força muito mais chamadas de leitura e gravação do que seria necessário. Acredito que o gronostaj esteja correto, seu problema é que você ddd o disco com o sistema de arquivos montado. Supondo que você não tenha remontado o sistema de arquivos desde então, poderá verificar isso reexecutando seu comando dd inicial; você também verá um MD5sum idêntico a essa chamada.Respostas:
A gravação de pequenas quantidades de dados em uma unidade é lenta; portanto, os buffers do sistema gravam para confirmar todos eles de uma vez mais tarde. Quando o buffer contém dados suficientes para uma operação de gravação eficiente ou quando algum processo usa a
sync
chamada do sistema , o buffer é liberado para o dispositivo.dd
executa uma cópia de baixo nível, ou seja. ele lê dados fisicamente presentes em um dispositivo. Não leva em consideração os buffers.Se a unidade foi montada quando você executou
dd bs=4M
, é possível que algumas gravações já tenham sido armazenadas em buffer, mas não confirmadas. Você despejou a unidade sem alterações no buffer.umount
chamadassync
internamente para garantir a integridade dos dados. Os dispositivos desmontados geralmente não são acessados, a menos que você solicite explicitamente algum processo para fazê-lo, portanto, é improvável que a unidade mude após a desmontagem.Depois, você executou
dd
duas vezes na unidade sem montá-la no meio. É por isso quebs=8M
e asbs=16M
chamadas produziram os mesmos resultados.A unidade foi modificada entre
bs=4M
ebs=8M
chamadas, no entanto, portanto, o primeiro despejo é diferente.bs=
não importava, ligarumount
fazia.Você deve sempre desmontar o dispositivo antes de usá
dd
-lo, caso contrário, outro processo poderá modificar seu conteúdo enquantodd
estiver realizando seu trabalho e prejudicar a integridade do arquivo.fonte
dd
. Acho que vou manter o arquivo tirado com o dispositivo desmontado . Assustador!