Capítulo IV: manipulando imágenes y tarjetas

Las imágenes de las distribuciones vienen comprimidas como zip, bz2, gz, tar.gz, .tgz o .xz
Todas las imágenes están en formato .iso o .img; aunque la mayoría con la que se trabaja para cubieboard están en formato .img.
Las imágenes son copias "en bruto" del dispositivo, es decir, con particiones y todo.

Descomprimiendo

En general, para grabar una imagen a una memoria SD se utiliza el comando: dd. Para Fedora 19 en particular se usa otro comando.
Primero se descomprime la imagen; ejemplos:
#unzip imagen.img.zip
#bunzip2 imagen.img.bz2
#gunzip  imagen.img.gz
#tar -xvzf imagen.img.tar.gz
#tar -xvzf imagen.img.tgz
#zcat imagen.img.xz > /dev/destino
  • NOTA: el simbolo # es el prompt del shell de superusuario! use con precaución.
Por lo general las imagenes constan de 3 particiones: la de booteo, la swap y la partición raíz. Algunas otras omiten la swap y solo tienen dos particiones.

¿cómo copio una imagen.img a un dispositivo?

Comando dd:
#dd if=[origen] of=[destino] bs=1M && sync
Descripción:
  • Origen puede ser la imagen local, o la ruta completa a la imagen.
  • Destino es la ruta completa al dispositivo, ej: /dev/sdb
  • La opción bs=1m indica: leer y escribir X bytes a la vez. En memorias mas modernas se pude utilizar hasta 4M.
  • Luego de copiar la imagen al dispositivo, éste debería montarse normalmente e inclusive debería ver el contenido de las particiones (excepto la swap).
USE CON PRECAUCIÓN, conozca bien su equipo y asegurse de saber cual es la ruta completa y el nombre del dispositivo destino.
Puede saber el estado de las particiones montadas con el comando: df -h
o puede ver las particiones del dispositovo con cfdisk o fdisk
#cfdisk /dev/sdb
#fdisk /dev/sdb
*donde sdb es el dispositivo que corresponda en su equipo.
USE CON PRECAUCIÓN, conozca bien su equipo y asegurse de saber cual es la ruta completa y el nombre del dispositivo destino.


Fedora 19 se descarga comprimido en el formato xz, que se descomprime con zcat y se copia directamente al dispositivo destino:
#zcat imagen.img.xz > /dev/destino

Problemas con el tamaño de la SD

Si luego de copiar la imagen, al conectar el dispositivo nuevamente en la máquina, no se montan las particiones y cfdisk (o gparted) dice que hay una sola partición sin formato en la memoria, es porque la imagen se grabó mal. Esto sucede porque la memoria no tiene el espacio libre suficiente requerido por la imagen. Una memoria SD de 4GB en realidad es de 3,6GB.
Hay trucos para cambiarles el tamaño, pero no los detallaré en este blog. Lo mejor es usar memorias superiores al tamaño de la imagen que se les va  a instalar.

¿sabían que pueden explorar el contenido de una imagen (.img) sin necesidad de grabarla en una tarjeta?


Utilizando "kpartx -av archivo.img" se puede ver el contenido de una imagen, sin necesidad de grabarlas a una SD.
kpartx  "mapea"  el contenido de la imagen a unos dispositivos loop dentro de /dev/mapper.
De tal forma que una imagen que contiene 3 particiones (booot, swap y root) serán montadas dentro de:
/dev/mapper/loop1p1
/dev/mapper/loop1p2
/dev/mapper/loop1p3
Luego usted puede montar esas particiones en el directorio que desee. Por ejemplo:

mount /dev/mapper/loop1p1 /mnt
Puede crear directorios al efecto:
mkdir /mnt/loop1 loop2 loop3
y luego montarlas:
mount /dev/mapper/loop1p1 /mnt/loop1
mount /dev/mapper/loop1p3 /mnt/loop3

¿cual es la finalidad de utilizar kpartx?

Será necesario utilizarlo cuando veamos el capítulo de BerryBoot, pero también sirve para verificar que la imagen descargada se pueda utilizar correctamente.
También puedo usar el comando dd para copiar particiones específicamente sin necesidad de "pisar" todo el dispositivo destino.
dd if=/dev/mapper/loop1p1 /dev/sdb/1

No hay comentarios:

Publicar un comentario