Как смонтировать изображение SD-карты, созданное с dd?

Я создал изображение своего использования SD-карты Raspberry Pi dd:

sudo dd if=/dev/sdf of=/home/myusername/raspberry-backup-2014-04-10.img

SD-карта включает два раздела (один vfat, один ext4), которые автоматически смонтированы, когда я включаю карту.

Мой вопрос: Как я могу смонтировать эти разделы из .img файла?


Подробнее:

$ fdisk -l raspberry-backup-2014-04-10.img 

Disk raspberry-backup-2014-04-10.img: 3974 MB, 3974103040 bytes
255 heads, 63 sectors/track, 483 cylinders, total 7761920 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: 0x000981cb

                          Device Boot      Start         End      Blocks   Id  System
raspberry-backup-2014-04-10.img1            8192      122879       57344    c  W95 FAT32 (LBA)
raspberry-backup-2014-04-10.img2          122880     7761919     3819520   83  Linux
21
задан 15 June 2017 в 10:24

4 ответа

После некоторого дополнительного тестирования я нашел решение сам: kpartx

sudo kpartx -a raspberry-backup-2014-04-10.img

Эта команда создала /dev/mapper/loop0p1 и /dev/mapper/loop0p2. Впоследствии эти разделы могут быть смонтированы прямые:

sudo mount -o rw -t ext4 /dev/mapper/loop0p2 mount_target/
17
ответ дан 23 November 2019 в 01:38

Для предотвращения потребности создать отдельные изображения для каждого раздела или установки утилиты как kpartx можно смонтировать каждый раздел индивидуально путем определения offset в эти mount команда.

Первый исследуют разделы в файле изображения и определяют смещение при помощи fdisk:

$ fdisk -u -l rpi_image280914 

Disk rpi_image280914: 16.0 GB, 16012804096 bytes
255 heads, 63 sectors/track, 1946 cylinders, total 31275008 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: 0x000cdac7

           Device Boot      Start         End      Blocks   Id  System
rpi_image280914p1   *        2048      514047      256000    c  W95 FAT32 (LBA)
rpi_image280914p2          540672    31242239    15350784   83  Linux

Берут Start сектор раздела, Вы хотите и умножаете то значение на Units размер. Таким образом, если Вы захотите второй раздел, то Вы доберетесь 540672 * 512 = 276824064.

Теперь создают папку и монтируют раздел:

mkdir rpi_partition2
sudo mount -o loop,offset=276824064 rpi_image280914 rpi_partition2/

, Как только Вы сделаны, делая то, что Вы хотите с данными раздела:

sudo umount rpi_partition2/
rm -r rpi_partition2/
33
ответ дан 23 November 2019 в 01:38

если Ваша цель состоит в том, чтобы исследовать или изменить содержание раздела (файловая система), эта командная строка смонтирует файловую систему дампа SD-карты my_sdcard_dump.img в каталог mount_dir .

part_id=2; INFILE=my_sdcard_dump.img; MOUNTPT=mount_dir PARTITION=${part_id}; sudo mount "$INFILE" "$MOUNTPT" -o loop,offset=$[ `/sbin/sfdisk -d "$INFILE" | grep "start=" | head -n $PARTITION | tail -n1 | sed 's/.*start=[ ]*//' | sed 's/,.*//'` * 512 ]
1
ответ дан 23 November 2019 в 01:38

Контакт с изображением целого диска с несколькими разделами довольно хитер . Linux не был разработан для чтения таблицы разделов из регулярного файла, даже когда присоединено к устройству закольцовывания, таким образом, необходимо тщательно определить смещения разделов и передать их в эти mount команда.

предпочтительный путь состоял бы в том, чтобы создать отдельные изображения каждого раздела:

sudo dd if=/dev/sdf1 of=/home/myusername/raspberry-backup-sdf1-2014-04-10.img
sudo dd if=/dev/sdf2 of=/home/myusername/raspberry-backup-sdf2-2014-04-10.img

Теперь можно легко рассматривать эти файлы, как будто они были отдельными разделами на диске, монтируя их, поскольку Вы обычно будете реальный раздел диска путем отображения их на циклическое устройство . Циклическое устройство или устройство закольцовывания, является виртуальным устройством, которое обеспечивает слой перевода для Linux для обработки файла как блочного устройства (как диск или раздел).

циклические устройства обычно /dev/loop0 до /dev/loop8. Отождествите неиспользованное циклическое устройство с эти losetup команда:

$ sudo losetup /dev/loop0
loop: can't get info on device /dev/loop0: No such device or address

Этот ответ указывает на неприсвоенное циклическое устройство. Теперь мы можем присвоить циклическое устройство одним из наших файлов изображений:

$ sudo losetup /dev/loop0 /home/myusername/raspberry-backup-sdf1-2014-04-10.img

Отсутствие вывода от этой команды указывает на успех. Теперь /dev/loop0 в большинстве целей, функционально эквивалентных /dev/sdf1 из Вашей SD-карты, и можно смонтировать его, как Вы обычно были бы:

sudo mount -t vfat /dev/loop0 /media/sdimage-1

Повторение процесс с помощью другого циклического устройства для монтирования другого раздела. Когда Вы сделаны, размонтировали файловые системы и отменяете присвоение циклических устройств:

sudo umount /dev/loop0
sudo losetup -d /dev/loop0
0
ответ дан 23 November 2019 в 01:38

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

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