Dirígete a archivos muy grandes

Dirígete a archivos muy grandes

Tengo 2 archivos muy grandes (27G y 40G), que se generan mediante un ddcomando en un disco duro defectuoso. Quería comparar los primeros bytes para ver si los bytes de 27G son el comienzo/subcadena de los 40G.

Quería usar headel comando. Como estos archivos son binarios, utilicé -cel argumento:

# ls -ahl *.dd
-rw-r--r-- 1 root root 40G May 17 20:16 mac.dd
-rw-r--r-- 1 root root 27G May 18 09:47 mac2.dd

Intentando obtener 1K de datos sin procesar:

# head -c1K mac.dd
(returns nothing)

Intentando obtener 1K con hexdump:

# head -c1K mac.dd | hexdump
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0000400
(end)

Intentando obtener 10K con hexdump:

# head -c10K mac.dd | hexdump
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0002800
(end)

A pesar de:

Intentando obtener 100 bytes de datos sin procesar en /bin/ls:

# head -c100 /bin/ls 
ELF>�H@@p�@8    @@@@@@�

Intentando obtener 100 bytes de datos hexadecimales en /bin/ls:

# head -c100 /bin/ls | hexdump
0000000 457f 464c 0102 0001 0000 0000 0000 0000
0000010 0002 003e 0001 0000 4880 0040 0000 0000
0000020 0040 0000 0000 0000 b670 0001 0000 0000
0000030 0000 0000 0040 0038 0009 0040 001c 001b
0000040 0006 0000 0005 0000 0040 0000 0000 0000
0000050 0040 0040 0000 0000 0040 0040 0000 0000
0000060 01f8 0000                              
0000064

Los resultados en mac2.dd son exactamente los mismos, pero parece que el resultado no es realmente el que esperaba, así que no creo que esto signifique que los archivos comienzan con los mismos datos. De frente al binario /bin/lses lo que esperaba.

No entiendo esta salida de ddarchivos. ¿Alguien puede explicarme esto por favor?

Gracias.

Respuesta1

Me estoy respondiendo a mí mismo.

me enteré deesta publicación, que " *" en hexdump significa "igual que la línea anterior". Lo que significa que todo mi ddarchivo está lleno de \0caracteres.

Puedo hacerlo explícito con:

head -c1000 mac.dd | hexdump -v
0000000 0000 0000 0000 0000 0000 0000 0000 0000
0000010 0000 0000 0000 0000 0000 0000 0000 0000
0000020 0000 0000 0000 0000 0000 0000 0000 0000
0000030 0000 0000 0000 0000 0000 0000 0000 0000
0000040 0000 0000 0000 0000 0000 0000 0000 0000
[...]

O de forma más breve:

# hexdump -v -n1000 mac.dd
0000000 0000 0000 0000 0000 0000 0000 0000 0000
0000010 0000 0000 0000 0000 0000 0000 0000 0000
0000020 0000 0000 0000 0000 0000 0000 0000 0000
0000030 0000 0000 0000 0000 0000 0000 0000 0000
0000040 0000 0000 0000 0000 0000 0000 0000 0000
[...]

Así que ahora sé que el ddbasurero no está lleno de nada.

Gracias a cualquiera que haya leído mi problema hasta aquí.

información relacionada