Как монтировать многосекционный образ диска в Linux?

Я загрузил образ raw SD-карты, который имеет два раздела.

Это вызвало некоторые ошибки файловой системы, когда я попытался dd его непосредственно в SD-карту. Я не уверен, если карта неисправна или изображения.

есть ли способ изучить это изображение, не записывая его на физическую карту? Как попытка установить разделы отдельно или проверка таблиц?

14
задан Ciro Santilli 新疆改造中心 六四事件 法轮功
09.04.2023 1:14 Количество просмотров материала 2668
Распечатать страницу

4 ответа

можно использовать kpartx или partx для создания устройств цикла для разделов образа и их последующего монтирования. Так что либо:

$ sudo kpartx -v -a file.iso
add map loop0p1 (253:17): 0 8382464 linear 7:1 2048
$ mount /dev/mapper/loop0p1 ./mnt_point
...  do something with the partition  ...
$ umount ./mnt_point
$ kpartx -d -v file.iso
del devmap : loop0p1
loop deleted : /dev/loop0

или:

$ sudo partx -a -v file.iso
partition: none, disk: file.iso, lower: 0, upper: 0
Trying to use '/dev/loop0' for the loop device
/dev/loop0: partition table type 'dos' detected
range recount: max partno=1, lower=0, upper=0
/dev/loop0: partition #1 added
$ mount /dev/loop0p1 ./mnt_point
...  do something with the partition  ...
$ umount /dev/loop0p1 ./mnt_point
$ sudo partx -d -v /dev/loop0
partition: none, disk: /dev/loop0, lower: 0, upper: 0
/dev/loop0: partition #1 removed

см. также Как подключить образ диска?

10
отвечен Catskul 2023-04-10 09:02

losetup -Pf в util-linux >= 2.21 (Ubuntu 16.04)

sudo losetup -Pf disk.img
sudo mkdir /mnt/loop0p1
sudo mount /dev/loop0p1 /mnt/loop0p1

посмотреть losetup(8) страница человека, а также https://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device/673257#673257

losetup -P автоматизация

вот функции для автоматизации, если дальше. Использование:

$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2

$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there

$ sudo losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                                                                                      DIO
/dev/loop1         0      0         0  0 /full/path/to/my.img

$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0

источник:

los() (
  img=""
  dev="$(sudo losetup --show -f -P "$img")"
  echo "$dev"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    echo "$dst"
    sudo mkdir -p "$dst"
    sudo mount "$part" "$dst"
  done
)
losd() (
  dev="/dev/loop"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    sudo umount "$dst"
  done
  sudo losetup -d "$dev"
)
6
отвечен Ciro Santilli 新疆改造中心 六四事件 法轮功 2023-04-10 11:19

ответ на ServerFault предлагает:

использовать losetup для получения/dev / loop? kpartx на нем, чтобы создать сопоставления dev для разделов в файле образа.

2
отвечен Mr Shunz 2023-04-10 13:36

вы можете попробовать:

mount-t тип-o петля ./ image / mnt

где "type" = fs type и "image" - это имя загруженного файла

1
отвечен Tog 2023-04-10 15:53

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх