Могу ли я сделать образ с диска, начиная с адреса х?

Я пытаюсь получить конкретные данные с диска, начиная с определенного адреса (не знаю, физический ли это адрес или нет, например: 0x00000000DA88FFFF, с размером 0x5776). На самом деле я новичок в работе с имиджером дисков и другими вещами, и я обнаружил, что команда dd подходит для создания образов дисков, но я не смог найти ничего, связанного с началом создания образа с определенных адресов с определенным размером. есть ли вообще это сделать? Я хочу извлечь конкретную информацию с диска.

0
задан 19 December 2017 в 08:14

2 ответа

dd имеет параметр skip, позволяющий пропустить часть в начале ввода.

Дело в том, что dd читает блок за раз, считывает блок в память, затем записывает этот блок на выход, а затем повторяет. Если количество пропускаемых байтов не кратно размеру блока по умолчанию (512), вам необходимо установить размер блока. Следующее будет работать:

dd if=/dev/sda1 bs=1 skip=3666411519 count=22390 of=/some/file

В этом случае вы устанавливаете размер блока в один байт (потому что ваше значение пропуска произвольно, а не кратно чему-либо конкретному).

Использование блока размером 1 байт будет относительно медленным, но если вы читаете только около 22 КБ, это не большая проблема.

0
ответ дан 19 December 2017 в 08:14

dd имеет флаг skip:

skip=N skip N ibs-sized blocks at start of input

Но тогда адрес должен быть N * ibs. Но 0x00000000DA88FFFF = 3 × 1222137173, что не кажется разумной отправной точкой. В общем, вы можете сделать:

dd ibs=X start=Y count=Z if=/some/disk

Для копирования Z*X байтов, начиная с Y*X.

0
ответ дан 19 December 2017 в 08:14

Другие вопросы по тегам:

Похожие вопросы: