{"id":284,"date":"2010-03-01T08:00:04","date_gmt":"2010-03-01T11:00:04","guid":{"rendered":"http:\/\/www.eriberto.pro.br\/blog\/?p=284"},"modified":"2011-10-10T18:00:41","modified_gmt":"2011-10-10T21:00:41","slug":"trocando-o-comando-dd-por-dcfldd","status":"publish","type":"post","link":"https:\/\/eriberto.pro.br\/blog\/2010\/03\/01\/trocando-o-comando-dd-por-dcfldd\/","title":{"rendered":"Trocando o comando dd por dcfldd"},"content":{"rendered":"<p>Um dos principais problemas do comando <strong>dd<\/strong> \u00e9 fazer tudo em sil\u00eancio. Com isso, nunca sabemos o que est\u00e1 acontecendo. Uma solu\u00e7\u00e3o \u00e9 o comando <strong>dcfldd<\/strong>.<\/p>\n<p>O <strong>dcfldd<\/strong> mostra o progresso de uma c\u00f3pia e tamb\u00e9m calcula hashes. A sua sintaxe b\u00e1sica \u00e9 id\u00eantica ao do <strong>dd<\/strong>. Veja:<\/p>\n<pre># dcfldd if=\/dev\/sdb of=imagem-hd.img<\/pre>\n<p>A diferen\u00e7a \u00e9 que ele mostra o progresso da c\u00f3pia. Veja outro exemplo:<\/p>\n<pre>\ufeff\ufeffcanopus:~# dcfldd if=\/dev\/sda1 of=1GB_de_particao-windows.img bs=1MB count=1024\r\n512 blocks (512Mb) written.\r\n<\/pre>\n<p>Ele tamb\u00e9m pode calcular hashes e faz isso enquanto copia os dados, tornando a opera\u00e7\u00e3o muito mais r\u00e1pida. Vamos ver os hashes MD5 (default), SHA1 e SHA512:<\/p>\n<pre>canopus:~# dcfldd if=\/dev\/sda1 of=1GB_de_particao-windows.img bs=1MB count=128 hash=md5,sha1,sha512<\/pre>\n<pre>Total (md5): 7967be906cf636a47cccf1fae753ec27<\/pre>\n<pre>Total (sha1): 8764f7bb5a8e7ffce331c20f24480523ac0a406c<\/pre>\n<pre>Total (sha512): 12537e2268ad55533741317806c99d774461f7d3c0456197859410eff6a782135f99161d543c981d9b62d1bf6021be9caad8318dde422e7e2d3771c4793365b8<\/pre>\n<pre>\r\n128+0 records in<\/pre>\n<pre>128+0 records out<\/pre>\n<p>Se voc\u00ea quiser, ele coloca o resultado do hash dentro de um arquivo. Vamos fazer isso com o MD5 e o SHA512. O SHA1 vai apenas aperecer na tela. O comando final \u00e9 o seguinte:<\/p>\n<pre># dcfldd if=\/dev\/sda1 of=1GB_de_particao-windows.img bs=1MB count=128 hash=md5,sha1,sha512 md5log=particao.md5 sha512log=particao.sha512<\/pre>\n<p>Para medirmos a diferen\u00e7a de tempo entre o <strong>dd + c\u00e1lculo de hash<\/strong> e o <strong>dcfldd<\/strong>, vamos emitir duas linhas de comando. A primeira:<\/p>\n<pre>canopus:~# time dd if=\/dev\/sda1 of=1GB_de_particao-windows.img bs=1MB count=128; time md5sum 1GB_de_particao-windows.img; time sha512sum 1GB_de_particao-windows.img<\/pre>\n<pre>128+0 registros de entrada<\/pre>\n<pre>128+0 registros de sa\u00edda<\/pre>\n<pre>128000000 bytes (128 MB) copiados, 1,89711 s, 67,5 MB\/s<\/pre>\n<pre>\r\n<strong>real\u00a0\u00a0\u00a0 0m1.932s<\/strong><\/pre>\n<pre>user\u00a0\u00a0\u00a0 0m0.000s<\/pre>\n<pre>sys\u00a0\u00a0\u00a0\u00a0 0m0.688s<\/pre>\n<pre>ebfad6c49d035bb6047f192e109a9676\u00a0 1GB_de_particao-windows.img<\/pre>\n<pre>\r\n<strong>real\u00a0\u00a0\u00a0 0m0.549s<\/strong><\/pre>\n<pre>user\u00a0\u00a0\u00a0 0m0.396s<\/pre>\n<pre>sys\u00a0\u00a0\u00a0\u00a0 0m0.108s<\/pre>\n<pre>82b67eadd8fe07ee4db737006f7aa8225936867cdc4f76bb9af618593d5a634c7e1cf8d5fdb5321a0e49f2db3be2ea2bb5d20a7d203ad6f9f3370cc85ac9a8a5\u00a0 1GB_de_particao-windows.img<\/pre>\n<pre>\r\n<strong>real\u00a0\u00a0\u00a0 0m7.449s<\/strong><\/pre>\n<pre>user\u00a0\u00a0\u00a0 0m7.180s<\/pre>\n<pre>sys\u00a0\u00a0\u00a0\u00a0 0m0.132s<\/pre>\n<p>O tempo total foi (1.932 + 0.549 + 7.449) = 9.93s. Agora veja o dcfldd:<\/p>\n<pre>canopus:~# time dcfldd if=\/dev\/sda1 of=1GB_de_particao-windows.img bs=1MB count=128 hash=md5,sha512\r\nTotal (md5): 7967be906cf636a47cccf1fae753ec27\r\nTotal (sha512): 12537e2268ad55533741317806c99d774461f7d3c0456197859410eff6a782135f99161d543c981d9b62d1bf6021be9caad8318dde422e7e2d3771c4793365b8\r\n\r\n128+0 records in\r\n128+0 records out\r\n<strong>\r\nreal\u00a0\u00a0\u00a0 0m7.523s<\/strong>\r\nuser\u00a0\u00a0\u00a0 0m6.136s\r\nsys\u00a0\u00a0\u00a0\u00a0 0m0.696s\r\n<\/pre>\n<p>Resultado: mais r\u00e1pido! E isso fica mais evidente em imagens grandes. Bom proveito.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um dos principais problemas do comando dd \u00e9 fazer tudo em sil\u00eancio. Com isso, nunca sabemos o que est\u00e1 acontecendo. Uma solu\u00e7\u00e3o \u00e9 o comando dcfldd. O dcfldd mostra o progresso de uma c\u00f3pia e tamb\u00e9m calcula hashes. A sua sintaxe b\u00e1sica \u00e9 id\u00eantica ao do dd. Veja: # dcfldd if=\/dev\/sdb of=imagem-hd.img A diferen\u00e7a \u00e9&hellip;&nbsp;<a href=\"https:\/\/eriberto.pro.br\/blog\/2010\/03\/01\/trocando-o-comando-dd-por-dcfldd\/\" rel=\"bookmark\">Continue a ler &raquo;<span class=\"screen-reader-text\">Trocando o comando dd por dcfldd<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[54,3,34,5,11],"tags":[127,125,624,626,621,623],"class_list":["post-284","post","type-post","status-publish","format-standard","hentry","category-forense-computacional","category-linux","category-microsoft","category-seguranca","category-sistema-operacional","tag-dcfldd","tag-dd","tag-debian","tag-forense-computacional","tag-linux","tag-seguranca"],"_links":{"self":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts\/284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/comments?post=284"}],"version-history":[{"count":0,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts\/284\/revisions"}],"wp:attachment":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/media?parent=284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/categories?post=284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/tags?post=284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}