Seguramente os ha pasado que os bajáis una ISO de una distro de Linux, la clonáis al pendrive y cuando arrancáis os aparece un mensaje de error del tipo «Missing operating system» o «Bad sector». En el mejor de los casos te devuelve al Grub. Entonces te entran los sudores de la muerte, vuelves a repetir todo el proceso (descarga incluida por si la ISO está corrupta) con el mismo resultado. Entonces buscas por la red y encuentras consejos que dicen que uses UNetbootin o similares. Lo haces y si, parece que funciona, aunque a veces ni así.
¿Que hacemos, a qué es debido el error?
Existen dos tipos de imágenes ISO, las preparadas para dispositivos ópticos (CD, DVD) que utilizan el sistema de arranque «El torito», y las imágenes ISO preparadas para BIOS, como pendrives o SDs que utilizan el sistema de arranque MBR (estas últimas también arrancan desde CDs o DVDs, de ahí que se llamen híbridas).
Las primeras contienen ceros en los 512 primeros bytes de la ISO, en cambio en las segundas contienen sectores de arranque correspondientes a un MBR y tabla de particiones con una partición que termina al final de la imagen híbrida. Si usamos la primera para clonarla a un USB no funcionará y nos dará el temido error y los sudores de la muerte.
Para evitar esto debemos convertir la imagen ISO en híbrida y para ello usaremos el comando isohybrid contenido en el paquete ISOLINUX. Este script crea la información adicional necesaria para poder arrancar en modo híbrido e imprime la imagen a un múltiplo par de 1 MB:
isohybrid imagen.iso
Si tenemos un sistema UEFI podremos especificarlo mediante el modificador -u. Si queremos ver lo que hace isohybrid, podremos usar el modificador -v
isohybrid -v -u imagen.iso
NOTA: Esto a veces provoca un error de cilindros, del estilo «Warning: more than 1024 cylinders: 1279». Se puede obviar sin problemas.
Ahora deberemos copiar la ISO sector a sector, así que echaremos mano del potente comando dd. Es importante pasarle el comando sync y eject para que quede correctamente preparado:
sudo dd if=imagen.iso of=/dev/sdc
sync
sudo eject /dev/sdc
NOTA: Cambiar el identificador /dev/sdc al dispositivo de cada una y no especificar partición sdc1 por ejemplo.
Una vez clonada, cuando arranquemos desde el pendrive el sistema interpreta el MBR y la tabla de particiones como si de un disco duro se tratase y podremos disfrutar de la distro.
Para las usuarias de Windows, se pueden clonar las ISOs con USBWriter, un escritor de imágenes USB gratuito alojado en Source Forge.
¿Y por qué no funcionó el «poderoso» UNetbootin?
Algunas utilidades de escritura USB alteran las etiquetas de las particiones dentro de la imagen ISO y el arranque falla, por eso no se recomienda su uso. Los programas que alteran las ISOs son:
- UNetbootin
- Linux Live USB Creador
- Universal USB Installer
- Live USB Creator
Cuantas veces me he vuelto loco sin saber porque dd no me funcionaba. Me lo has aclarado todo. Merci!
Gracias por compartir.