Очевидное решение - монтировать образ непосредственно в Linux и вносить изменения, но есть небольшая проблема. Эти носители разделены аналогично жесткому диску. Решение состоит в том, чтобы смонтировать правильный раздел из образа.
Убедитесь, что изображение действительно разделено:
$ file -k OpenELEC-RPi.arm-4.95.1.img
OpenELEC-RPi.arm-4.95.1.img: x86 boot sector; partition 1: ID=0xc, active, starthead 32, startsector 2048, 262145 sectors; partition 2: ID=0x83, starthead 146, startsector 266240, 65537 sectors
Работа с изображением
Сопоставьте разделы из изображения с устройствами цикла:
$ sudo kpartx -av OpenELEC-RPi.arm-4.95.1.img
add map loop0p1 (252:3): 0 262145 linear /dev/loop0 2048
add map loop0p2 (252:4): 0 65537 linear /dev/loop0 266240
В Ubuntu kpartx
не устанавливается по умолчанию. Сделайте sudo apt-get install kpartx
.
Смонтируйте раздел:
$ sudo mount /dev/mapper/loop0p1 /mnt/tmp1
Теперь внесите изменения в /mnt/tmp1
.
Размонтируйте раздел и удалите отображение:
$ sudo umount /dev/mapper/loop0p1
$ sudo kpartx -dv OpenELEC-RPi.arm-4.95.1.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0
Другие опции
Если kpartx
недоступен, вы можете определить смещение раздела, используя, например, fdisk
(он работает и с изображениями, так что вы можете создать образ без физического диска вообще.) И отобразить их с помощью losetup
или mount -o loop,offset=x
или даже новая версия losetup
(из util-linux 2.21) может отображать разделы напрямую, используя параметр --partscan
.
Есть описания в других вопросах: