Saya memiliki kartu sd yang diformat MBR dan ketika terhubung ke mesin Linux (xubuntu 12.04) ia dapat me-mount sebuah partisi dan mem-parsing sistem file (seperti yang dapat GParted). Namun, ketika saya mencoba membaca MBR dari perangkat menggunakan dd itu memberi saya banyak data palsu.
Adakah yang bisa menjelaskan bagaimana Linux / GParted dapat membaca dan memahami MBR ketika dd tidak dapat membaca MBR. Apakah mereka menggunakan metode berbeda untuk mendapatkan data? Yaitu tidak terbuka (), baca ()
Perintah DD adalah:
dd if=/dev/sdb of=mbr.bin bs=512 count=1
Output DD adalah:
1+0 records in
1+0 records out
512 bytes transferred in 0.000786 secs (651345 bytes/sec)
Tempat pembuangan mbr.bin hexdump -C mbr.bin
adalah:
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
diberikan?fdisk -lu /dev/sdb
,gdisk -l /dev/sdb
dangrep sdb /proc/partitions
?Jawaban:
Kartu tidak memiliki Master Boot Record (MBR). Jika memiliki hexdump Anda akan memberi Anda setidaknya satu entri partisi di offset
0x1C0
dan55aa
di akhir.Tidak semua tabel partisi mengeluarkan data dalam 512 byte pertama. The Data palsu yang Anda lihat adalah SID dan CSD mendaftar dari (a / yang) kartu SD. Tapi dari kelihatannya, itu bukan data yang benar untuk kartu (kecuali itu model lama 1 MiB 2001).
16 byte pertama adalah:
16 byte berikutnya (setidaknya sebagian darinya):
Juga, pemeriksaan CRC7 untuk register CSD salah. Bisa jadi data lama yang tersisa dari hobi.
Register-register itu dan yang lainnya dapat ditanyakan dari kartu secara langsung dengan berbagai perintah. Ini dilakukan oleh driver modul, hub kartu, dll.
Akan menarik untuk melihat apa yang Anda temukan dengan perintah yang diberikan oleh Stephane Chazelas, slm dll.
sumber
Saya akan mencoba menggunakan
sfdisk
perintah sebagai lawandd
. Sebagai contoh:Sekarang melihat
mbr_using_sfdisk.bin
mengungkapkan apa yang Anda cari:Jadi mengapa saya tidak bisa melihat tabel partisi menggunakan
dd
?Saya tidak sepenuhnya yakin mengapa tetapi saya menemukan trik ini yang menunjukkan kepada Anda bagaimana melihat tabel partisi di Anda
mbr.bin
menggunakanfile
perintah.Sebagai contoh:
Referensi
sumber
hexdump
output (teks biasa)sfdisk -d /dev/sda
?Data ini bukan memori kartu SD Anda, tetapi dikirim oleh pengontrol kartu SD (ASMI) Anda. Halaman ini menjelaskan masalah yang terjadi pada saya:
http://www.idioten-notschlachten.de/blog/2011/11/13/kennen-sie-asmi/
sumber