Монтирование образа диска в формате Raw

11

При попытке смонтировать образ диска в формате Raw (dd) с помощью следующей команды

mount  nps-2010-emails.dd /media/manu/

Я получаю следующее сообщение об ошибке

mount: you must specify the filesystem type

Я знаю, что с помощью -tмы можем указать файловую систему, но какова терминология для файла RAW (dd), который можно передать в качестве аргумента команде mount. Если мой метод монтирования этой файловой системы неправильный, пожалуйста, помогите мне сделать то же самое.

$ file -s nps-2010-emails.dd
nps-2010-emails.dd: x86 boot sector; 
partition 1: ID=0xb, starthead 254, startsector 1, 20479 sectors, extended partition table (last)\011, code offset 0x0

$ fdisk -l nps-2010-emails.dd
Disk nps-2010-emails.dd: 10 MB, 10485760 bytes
255 heads, 63 sectors/track, 1 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

             Device Boot      Start         End      Blocks   Id  System
nps-2010-emails.dd1               1       20479       10239+   b  W95 FAT32 
spaceman_spiff
источник
Можете ли вы добавить вывод команды file -s nps-2010-emails.ddв свой пост, пожалуйста?
Steeldriver
Я взглянул на твой профиль и увидел другой вопрос. Возможно, этот блог может быть полезным.
Муру
@steeldriver Вывод добавлен ...
spaceman_spiff
Более простые варианты монтажа - доступны / описаны здесь: askubuntu.com/questions/69363/…
Hannu

Ответы:

16

С http://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/ есть предложение использовать смещение. Сначала получите смещение через, fdisk(8)а затем укажите его с offsetпараметром mount. Используется fdiskдля определения начального сектора раздела и размера сектора. Затем рассчитайте смещение в байтах, используя номер начального сектора и размер сектора в байтах. Для примера см. Монтирование одного раздела из образа всего диска (устройства) . В заключение:

mount -o offset=<offset in bytes> nps-2010-emails.dd /media/manu/

В типичном жестком диске ячейки, содержащие данные, сгруппированы. Группировки называются секторами. То, как мы обычно делим вещи, первые несколько секторов остаются в стороне для предоставления информации о разделах, оставляя пробел. Поэтому, если у нас есть образ всего диска, эти сектора также будут включены. Теперь mountкоманда не может напрямую начинаться с первого байта, поскольку раздел не начинается с первого байта. Итак, нам придется сказатьmountсколько байтов пропустить (чтобы избежать лишней информации) и добраться до реального раздела. Это называется смещением. Теперь каждый сектор может хранить определенное количество информации в байтах, которое называется размером сектора. Мы берем общий размер информации, которая может храниться в этом промежутке, умножая размер сектора на размер разрыва в количестве секторов.

Из выходных данных fdiskвы можете видеть, что размер сектора составляет 512 байт, и он начинается в секторе 1. Таким образом, смещение составляет 1 * 512 = 512. Попробуйте следующую команду:

mount -t vfat -o offset=512 ps-2010-emails.dd /media/manu/

Я добавил тип файловой системы, поскольку fdiskдал его как FAT32. Чтобы установить его для записи, используйте -o offset=512,rwвместо этого.

Мур
источник
Я прочитал статью в первой ссылке, которую вы опубликовали, но не очень разбирался в смещении , номере сектора и других понятиях, по возможности вы можете подробнее остановиться на этой теме или опубликовать некоторые ссылки, чтобы изучить то же самое. Спасибо
spaceman_spiff
Сообщение обновлено, чтобы включить вывод fdisk -l nps-2010-emails.dd.
spaceman_spiff
спасибо, мой опыт работы в теоретической информатике (я - математик), есть ли какая-либо ссылка, чтобы понять эту тему в общей заметке?
spaceman_spiff
«Эта» тема - диски, сектора, файловые системы и все такое? Возможно, вы могли бы начать с главы IO / Storage в учебнике по операционным системам, например, в Tannenbaum. Кроме этих основ и типа монтирования FAT32, все, что я опубликовал в ответе, от Tholinks.
Муру
10

Вы также можете настроить компьютер на автоматическое сканирование всех разделов в дампе и автоматическую подготовку всех петлевых устройств, как описано здесь .

Итак, допустим, что вы выбросили все /dev/sdaв то, что называется sda.img. Вы можете получить доступ к его разделам следующим образом:

losetup -f -P sda.img

В моей системе это выглядит следующим образом:

сырое изображение sda

В среде без графического интерфейса вы можете перечислить созданное устройство с помощью losetup -l, которое сообщит вам имя устройства цикла, например:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /path/mmcblk0

Затем вы можете смонтировать, скажем, первый раздел:

mount /dev/loop0p1 /mnt/mypartition

Надеюсь, это поможет.

aggregate1166877
источник
У меня сработало отлично.
Правин Патхак
2
В том же духе, в Ubuntu 18.04 у меня не было проблем с выполнением gparted backup.img и получением списка разделов. "fdisk -l backup.img" также показывает полезную информацию.
RoundSparrow Hilltx
1
Как вы отменяете losetupкоманду?
Flimm
1

Не могу добавить комментарий из-за отсутствия репутации, но хочу рассказать тем из вас, у кого есть GPT-диск при тестировании с помощью fdisk, вместо этого используйте gdsik, чтобы получить начальный сектор и рассчитать правильное смещение. Это помогло мне.

fdisk -l дал мне:

      Device Boot      Start         End      Blocks   Id  System
vm2080737.bak1   *           1        3901    31457279+  ee  GPT

и он не может быть смонтирован со смещением 512 с ошибкой «mount: вы должны указать тип файловой системы»

gdisk -l дал мне хороший результат:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34             545   256.0 KiB   A501  gpboot
   2             546          993825   485.0 MiB   A502  swap
   3          993826        62914526   29.5 GiB    A503  rootfs
беличье гнездо
источник
1
Или используйте parted.
Муру