La solución obvia es montar la imagen directamente en Linux y hacer los cambios, pero hay un pequeño problema. Estos medios están particionados de forma similar a un disco duro. La solución es montar la partición correcta desde la imagen.
Compruebe que la imagen está particionada:
$ 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
Trabajando con la imagen
Asigne las particiones de la imagen a los dispositivos de bucle:
$ 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
En Ubuntu kpartx
no está instalado por defecto Hacer sudo apt-get install kpartx
.
Montar la partición:
$ sudo mount /dev/mapper/loop0p1 /mnt/tmp1
Ahora haz tus cambios en el /mnt/tmp1
directorio.
Desmonte la partición y elimine la asignación:
$ 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
Otras opciones
Si kpartx
no está disponible, puede determinar el desplazamiento de partición utilizando, por ejemplo, fdisk
(También funciona en imágenes para que pueda crear la imagen sin tener un disco físico) y mapearlas usando losetup
o mount -o loop,offset=x
o incluso la nueva versión de losetup
(de util-linux 2.21) puede mapear las particiones directamente usando la opción --partscan
.
Hay descripciones en otras preguntas: