Las imágenes normales del sistema de archivos se pueden montar fácilmente:
mount system.img /mnt
Examinado y modificado. Pero cuando intento esto con una imagen del sistema Raspberry Pi (por ejemplo, raspbian), obtengo:
mount: unknown filesystem type '(null)'
Y no importa con qué lo intente -t
, no funcionará. ¿Cómo puedo montar esta imagen?
Respuestas:
Esta pregunta se responde como parte de la respuesta a otras preguntas, pero merece un tratamiento canónico aquí, por lo que no tiene que repetirse.
No puede montar la imagen como un todo porque en realidad contiene dos particiones y un sector de arranque. Sin embargo, puede montar las particiones individuales en la imagen si conoce su desplazamiento dentro del archivo. Para encontrarlos, examine la imagen como un dispositivo de bloque con
fdisk -l whatever.img
. La salida debe incluir una tabla como esta:Estas son las dos particiones. El primero está etiquetado "FAT32", y el otro "Linux". Encima de esta tabla, hay otra información sobre el dispositivo en su conjunto, que incluye:
Podemos encontrar el desplazamiento en bytes multiplicando el tamaño de esta unidad por el
Start
bloque de la partición:Estos se pueden usar con la
offset
opción delmount
comando. También tenemos una pista sobre el tipo de cada particiónfdisk
. Entonces, suponiendo que tengamos directorios/mnt/img/one
y/mnt/img/two
estén disponibles como puntos de montaje:Si obtiene un error de "bucle superpuesto" aquí, su versión
mount
requiere que especifique el tamaño y el desplazamiento de la primera partición. Desmonta eso y usa el número de bloques (57344) * 512 (= 29360128):La segunda partición no necesita un límite de tamaño, ya que no hay nada después en la imagen.
Ahora puede acceder a las dos particiones. Si no tiene la intención de cambiar nada en ellos, use el
-r
interruptor (solo lectura) también. Si cambia algo, esos cambios se incluirán en el.img
archivo.Tenga en cuenta que la primera partición probablemente esté montada
/boot
en la segunda partición cuando el sistema se esté ejecutando.fuente
kpartx -a whatever.img
nodos (de bucle) apropiados, que luego puede montar a voluntad. Ejecutekpartx -d whatever.img
para eliminar los nodos de bucle (desmontados).sizelimit
opción. Para más información: unix.stackexchange.com/a/342466/9689 . (Por cierto, la respuesta anterior se puede actualizar para proporcionar un uso de ejemplo de esa opción)$((8192*512))
.losetup
proporciona sondeo de particiones-P
. Usar esto hace que montar particiones de una imagen de disco completa, como la imagen de la tarjeta SD Raspbian, sea muy fácil:fuente
Al principio, estaba usando awk / grep para analizar fdisk y extraer compensaciones, pero descubrí que podría ser un poco complicado, poco convincente y difícil de entender más adelante. El método más fácil que he encontrado:
Esto crea un temp-dir para usted, auto-asigna el siguiente bucle-dispositivo y lo configura para usted como
p1
yp2
partición de los dispositivos y soportes de arranque y raíz.También puede colocar la parte de limpieza en una trampa de salida, por lo que si algo falla no tendrá montajes / archivos colgantes:
fuente
En caso de que fdisk -l aparezca con sectores en lugar de bloques en Arch Linux ... Otra forma de encontrar el número de bloques en caso de "error de bucle superpuesto" es restar el desplazamiento en bytes de la primera partición de la segunda partición y dividir por dos. Por ejemplo (62914560-4194304) / 2 = 29360128
fuente