Eu tenho um cartão SD formatado em MBR e, quando conectado a uma máquina Linux (xubuntu 12.04), ele pode montar uma partição e analisar o sistema de arquivos (como o GParted). No entanto, quando tento ler o MBR do dispositivo usando o dd, ele fornece um monte de dados espúrios.
Alguém poderia lançar alguma luz sobre como o Linux / GParted é capaz de ler e entender o MBR quando o dd não é capaz de ler o MBR. Eles usam métodos diferentes para acessar os dados? IE não aberto (), leia ()
O comando DD é:
dd if=/dev/sdb of=mbr.bin bs=512 count=1
A saída DD é:
1+0 records in
1+0 records out
512 bytes transferred in 0.000786 secs (651345 bytes/sec)
O dump do mbr.bin com hexdump -C mbr.bin
é:
00000000 04 16 41 53 4d 49 2d 53 44 03 00 00 00 00 16 f1 |..ASMI-SD.......|
00000010 00 7f 00 32 1f 5b 80 00 36 db bf bf 96 c0 00 01 |...2.[..6.......|
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 6f 00 00 10 00 00 02 2e 00 00 00 00 00 00 00 00 |o...............|
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
dd
dá?fdisk -lu /dev/sdb
,gdisk -l /dev/sdb
egrep sdb /proc/partitions
?Respostas:
O cartão não possui um registro mestre de inicialização (MBR). Se o seu hexdump tivesse fornecido pelo menos uma entrada de partição no deslocamento
0x1C0
e55aa
no final.Nem todas as tabelas de partição distribuem dados nos primeiros 512 bytes. Os dados espúrios que você vê são o registro SID e CSD do (a) cartão SD. Mas, pelo que parece, não são os dados corretos para o cartão (a menos que seja um modelo antigo do 1 MiB 2001).
Os primeiros 16 bytes são:
Próximos 16 bytes (pelo menos parte dele):
Além disso, a verificação CRC7 para registro de CSD está incorreta. Podem ser dados antigos deixados em um passatempo.
Esses registradores e mais podem ser consultados diretamente no cartão por vários comandos. Isso é feito por drivers de módulo, hubs de cartões etc.
Seria interessante ver o que você encontra pelos comandos dados por Stephane Chazelas, slm etc.
fonte
Eu tentaria usar o
sfdisk
comando em oposição add
. Por exemplo:Agora, a análise
mbr_using_sfdisk.bin
revela o que você está procurando:Então, por que não consigo ver a tabela de partição usando
dd
?Não sei bem por que, mas me deparei com esse truque que mostra como ver as tabelas de partição
mbr.bin
usando ofile
comandoPor exemplo:
Referências
fonte
hexdump
para a saída (texto sem formatação) desfdisk -d /dev/sda
?Esses dados não são a memória do seu cartão SD, mas são enviados pelo seu controlador de cartão SD (ASMI). Esta página descreve o problema como aconteceu comigo:
http://www.idioten-notschlachten.de/blog/2011/11/13/kennen-sie-asmi/
fonte