Я создал образ моей 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
wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error
проблемуsudo fdisk -l /dev/loop0
утверждает: Диск / dev / loop0 не содержит допустимой таблицы разделов.Ответы:
Чтобы избежать необходимости создавать отдельные образы для каждого раздела или устанавливать подобные утилиты
kpartx
, вы можете монтировать каждый раздел отдельно, указавoffset
в командеmount
команду.Сначала изучите разделы в файле изображения и определите смещение, используя
fdisk
:Возьмите
Start
сектор раздела, который вы хотите, и умножьте это значение наUnits
размер. Так что если вы хотите второй раздел, вы получите540672 * 512 = 276824064
.Теперь создайте папку и смонтируйте раздел:
Как только вы закончите делать то, что вы хотите с данными раздела:
источник
После некоторого дополнительного тестирования я нашел решение самостоятельно:
kpartx
Эта команда создана
/dev/mapper/loop0p1
и/dev/mapper/loop0p2
. После этого эти перегородки могут быть установлены прямо вперед:источник
если ваша цель - изучить или изменить содержимое раздела (файловой системы), эта командная строка смонтирует файловую систему дампа SD- карты my_sdcard_dump.img в каталог mount_dir .
источник
Работа с образом целого диска с несколькими разделами довольно сложна . Linux не был предназначен для чтения таблицы разделов из обычного файла, даже если он подключен к устройству с обратной связью, поэтому вы должны тщательно определить смещения разделов и передать их
mount
команде.Предпочтительным способом было бы создать отдельные изображения каждого раздела:
Теперь вы можете легко обрабатывать эти файлы, как если бы они были отдельными разделами на диске, монтируя их, как обычно, как реальный раздел диска, сопоставляя их с устройством зацикливания . Циклическое устройство или устройство с обратной связью - это виртуальное устройство, которое предоставляет в Linux уровень перевода для обработки файла как блочного устройства (например, диска или раздела).
Петлевые устройства обычно
/dev/loop0
сквозные/dev/loop8
. Определите неиспользуемое устройство цикла с помощьюlosetup
команды:Этот ответ указывает на неназначенное устройство петли. Теперь мы можем назначить устройство цикла одному из наших файлов изображений:
Отсутствие вывода этой команды указывает на успех. Теперь
/dev/loop0
для большинства целей она функционально эквивалентна/dev/sdf1
вашей SD-карте, и вы можете установить ее, как обычно:Повторите процесс, используя другое устройство петли, чтобы смонтировать другой раздел. Когда вы закончите, размонтируйте файловые системы и отмените петлевые устройства:
источник