Quemar una iso de Linux en un pendrive usb sin morir en el intento

isoimageA mas de uno nos ha ocurrido que tratamos de quemar una iso booteable en un pendrive usb, o memmory stick, o una tarjeta de memoria, y a veces corre bien, otras no, y hasta en algunas ocasiones depende de la máquina en la que vayamos a bootear el sistema operativo.

Quemar una ISO con UNetbootIn

Unetbootin es una buena alternativa, simple y gráfica, ideal para la mayoría de los mortales.

Podemos descargarlo desde https://unetbootin.github.io/ e instalarlo en nuestro sistema operativo.

quemar una iso

Algunos comandos interesantes para hacerlo por consola

* Verificar el nombre del dispositivo:

Primero que nada, debemos conectar nuestro pendrive usb en la computadora, y luego asegurarnos del nombre que le asoció el kernel al dispositivo.

Esto podemos hacerlo con los comandos:

o

o simplemente, inmediatamente luego de conectar el usb, darle una mirada a los logs del ring el kernel:

* Desmontar el dispositivo:

Debemos asegurarnos de que el dispositivo conectado no fue montado automáticamente por nuestro entorno de escritorio, y si así fue, desmontarlo.

Podemos verificar si el nombre del dispositivo conectado anteriormente se encuentra montado analiando, por ejemplo, la salida del comando mount:

En mi caso, la partición montada es /dev/sdc1. Procedemos a desmontarla:

* Habilitar el modo híbrido en la iso

Este es un paso importante, más en el caso de que la iso no haya sido compilada para bootear desde cualquier dispositivo, y solamente desde cd-rom.
El modo híbrido permite que la iso pueda ser booteada desde cualquier dispositivo, incluyendo memorias flash usb. Es por esto que algunas iso’s corren bien desde usb utilizando el comando dd comúnmente (ver el siguiente paso), y otras no.
Para aseguarnos esto, debemos correr este comando:

Si isohybrid no está disponible, podremos instalar las utilidades de syslinux que lo incluyen. En Debian:

* Quemar una iso en la memoria usb:

En este paso copiaremos, en bajo nivel (bit a bit) la imagen de la iso al dispositivo usb, utilizando por defecto bloques de 4K de longitud.

Cabe aclarar que el dispositivo NO es el nombre de una partición primaria, sino del dispositivo completo. En mi caso, por ejemplo, el dispositivo es /dev/sdc, mientras que la partición montada anteriormente en forma automática fue /dev/sdc1. En el comando dd debemos colocar, en este caso, /dev/sdc.

También se puede agregar la opción “status=progress” para que dd muestre las estadísticas de progreso de los datos copiados.

* Extrayendo el dispositivo:

Por último, procedemos a extraer de forma segura el dispositivo. Primero debemos volcar en él cualquier resto de información en los buffers al dispositivo, para que sus datos no queden corruptos.
Luego “desconectamos” por software el dispositivo, y podemos quitarlo del puerto usb:

Espero les sirva como a mi!


UPDATE (20171205):

Esta update se la agradezco a Pablo Rubio, un amigo y colaborador del GRuSoL (Grupo de Usuarios de Software Libre de San Rafael).

Me compartió un interesante “truco” de terminal, de la mano del comando pv, para poder quemar la iso en cualquier dispositivo, y además, ver el progreso de la copia (algo muy interesante para saber si la copia va realizándose, o se ha colgado, etc.

Al comando dd anterior, podemos reescribirlo de esta manera:

Donde TAMAÑO es el tamaño de la iso a quemar, y dato que utiliza pv para “saber” cómo llevar el avance del progreso.

Las opciones utilizadas, tpreb, tienen el siguiente significado:

  • -p: Mostrar el progreso.
  • -t: Muestra el timer de tiempo que lleva de proceso.
  • -r: Muestra el ratio de transferencia.
  • -e: Muestra el ETA, tiempo estimado de copia.
  • -b: Muestra el contador de bytes transferidos.

Aquí una captura de ejemplo:

Para quien no lo tenga instalado, pv puede instalarse en distros Debian con:

O en ArchLinux:

Hasta la próxima!