Вопрос при использовании DD, как bs = 1 count = 512, отличное от bs = 512 count = 1


Я сдавал экзамен по судебной экспертизе. Я использовал dd для изображения устройства:

/dev/sdb

я использовал команду:

# dd if=/dev/sdb of=SDB.IMG

Я продолжал извлекать MBR

# dd if=SDB.IMG bs=1 count=512 of=SDB.MBR

Чтобы посмотреть таблицу разделов, я использовал:

# dd if=SDB.IMG bs=1 count=66 skip=446 | xxd -cols 16

который предоставляет следующую информацию:

0000000: 0020 2100 06df 130c 0008 0000 0020 0300  . !.......... ..
0000010: 00df 140c 0561 277a 0028 0300 00d8 1a00  .....a'z.(......
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000040: 55aa

как и ожидалось

Замечание: бит 4 раздела 2 равен 05, расширен. биты 8,9,10,11 должны сказать мне, где следующий MBR, когда правильно преобразован в десятичную

00 28 03 00
становится
00 03 28 00

а затем преобразуется в десятичное:
206848

ЧТО Ж когда я набираю следующее:

dd if=SDB.IMG bs=512 count=1 skip=206848 |xxd

Я получаю следующий вывод:

1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000124768 s, 4.1 MB/s
0000000: eb58 906d 6b64 6f73 6673 0000 0208 2000  .X.mkdosfs.... .
0000010: 0200 0000 00f8 0000 3e00 1f00 0000 0000  ........>.......
0000020: 00d8 1a00 b806 0000 0000 0000 0200 0000  ................
0000030: 0100 0600 0000 0000 0000 0000 0000 0000  ................
0000040: 0000 29f5 5ccb 6120 2020 2020 2020 2020  ..).\.a         
0000050: 2020 4641 5433 3220 2020 0e1f be77 7cac    FAT32   ...w|.
0000060: 22c0 740b 56b4 0ebb 0700 cd10 5eeb f032  ".t.V.......^..2
0000070: e4cd 16cd 19eb fe54 6869 7320 6973 206e  .......This is n
0000080: 6f74 2061 2062 6f6f 7461 626c 6520 6469  ot a bootable di
0000090: 736b 2e20 2050 6c65 6173 6520 696e 7365  sk.  Please inse
00000a0: 7274 2061 2062 6f6f 7461 626c 6520 666c  rt a bootable fl
00000b0: 6f70 7079 2061 6e64 0d0a 7072 6573 7320  oppy and..press 
00000c0: 616e 7920 6b65 7920 746f 2074 7279 2061  any key to try a
00000d0: 6761 696e 202e 2e2e 200d 0a00 0000 0000  gain ... .......
00000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001c0: 340d 0b61 277a 0008 0000 00d0 1a00 0000  4..a'z..........
00001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.

Как и ожидалось. НО, когда я ищу те же данные, используя следующую команду, я получаю очень разные результаты:

dd if=SDB.IMG bs=1 count=512 skip=206848 |xxd


512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00159998 s, 320 kB/s
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  ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

это не имеет никакого смысла.
оба раза я тяну 512b
использование bs of 1 отлично работает, когда я использовал его раньше.
Еще раз:

# dd if=SDB.IMG bs=1 count=66 skip=446 | xxd -cols 16

который предоставляет следующую информацию:

0000000: 0020 2100 06df 130c 0008 0000 0020 0300  . !.......... ..
0000010: 00df 140c 0561 277a 0028 0300 00d8 1a00  .....a'z.(......
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000040: 55aa

2
2017-12-11 02:07


происхождения




ответы:


skip= опция работает от размера блока, указанного в bs=, поэтому, когда вы укажете bs=512 count=1 skip=206848, вы пропускаете 512 * 206848 (или 105 906 176) байт диска, тогда как при указании bs=1 count=512 skip=206848, вы пропускаете 1 * 206848 (или 206 848) байтов на диске.


2
2017-12-11 04:09



Кроме того, использование размера блока 1 не имеет смысла, поскольку ваш жесткий диск не способен извлекать один байт. В лучшем случае dd будет просто повторно использовать возвращенный 512-байтовый блок 512 раз. В худшем случае он попросит диск для того же 512-байтового блока 512 раз. - Huckle