Как смонтировать дистрибутив Raspberry Pi Linux?

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

mount system.img /mnt

Изучено и изменено. Но когда я пытаюсь сделать это с помощью образа системы Raspberry Pi (например, raspbian), я получаю:

mount: unknown filesystem type '(null)'

И независимо от того, что я пытаюсь использовать с -t, это не сработает. Как смонтировать это изображение?

30 голосов | спросил goldilocks 21 Jpm1000000pmTue, 21 Jan 2014 18:51:07 +040014 2014, 18:51:07

3 ответа


54

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

Вы не можете смонтировать образ в целом, потому что он фактически содержит два раздела и загрузочный сектор. Тем не менее, вы можете монтировать отдельные разделы на изображении, если знаете их смещение внутри файла. Чтобы найти их, просмотрите изображение как блочное устройство с помощью fdisk -l whatever.img. Результат должен включать таблицу следующим образом:

Device         Boot     Start       End  Blocks  Id System
whatever.img1            8192    122879   57344   c W95 FAT32 (LBA)
whatever.img2          122880   5785599 2831360  83 Linux

Это два раздела. Первый помечен как «FAT32», а другой - «Linux». Над этой таблицей есть другая информация об устройстве в целом, в том числе:

Units: sectors of 1 * 512 = 512 bytes

Мы можем найти смещение в байтах, умножив этот размер блока на блок Start раздела:

  • 1-й раздел 512 * 8192 = 4194304
  • Второй раздел 512 * 122880 = 62914560

Они могут использоваться с опцией offset команды mount. Мы также имеем представление о типе каждого раздела из fdisk. Итак, предположим, что в качестве точек монтирования доступны каталоги /mnt/img/one и /mnt/img/two:

mount -v -o offset=4194304 -t vfat whatever.img /mnt/img/one
mount -v -o offset=62914560 -t ext4 whatever.img /mnt/img/two

Если вы получаете ошибку «перекрывающегося цикла» здесь, ваша версия mount требует указать размер, а также смещение первого раздела. Размонтируйте это и используйте количество блоков (57344) * 512 (= 29360128):

mount -v -o offset=4194304,sizelimit=29360128 \
    -t vfat whatever.img /mnt/img/one  

Второй раздел не нуждается в sizelimit, поскольку после него нет изображения.

Теперь вы можете получить доступ к двум разделам. Если вы не собираетесь ничего менять в них, используйте переключатель -r (только для чтения). Если вы что-то измените, эти изменения будут включены в файл .img.

Обратите внимание, что первый раздел, вероятно, установлен на /boot во втором разделе, когда система работает.

ответил goldilocks 21 Jpm1000000pmTue, 21 Jan 2014 18:51:07 +040014 2014, 18:51:07
9

losetup обеспечивает разделение зондирования через -P. Это упрощает монтаж разделов полного образа диска, такого как изображение карты Raspbian SD.

losetup -P /dev/loop0 raspbian.img
mount /dev/loop0p2 /mnt
mount /dev/loop0p1 /mnt/boot
ответил Johan Ehnberg 26 Jpm1000000pmFri, 26 Jan 2018 15:57:56 +030018 2018, 15:57:56
0

В случае, если fdisk -l отображается с секторами вместо блоков в Arch linux ... Еще один способ найти количество блоков в случае «ошибки перекрытия цикла» - это вычесть смещение в байтах первого раздела из второй раздел и разделите на два. Например, (62914560-4194304) /2 = 29360128

ответил A.B. 17 Maypm18 2018, 21:02:04

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132