Cómo instalar Arch desde un liveusb sin problemas

Debido a las numerosas recomendaciones recibidas, me animé a probar Arch Linux. Uno de los pocos problemas con los que me encontré es que cuando creé el LiveUSB de Arch con Unetbootin, me arrancaba fenómeno, pero en un momento, apenas antes de cargar el instalador, se colgaba diciendo ERROR: boot device didn’t show up after 30 seconds y me dejaba simplemente con un terminal de ramfs. Al parecer, esto se debe a un bug en Arch, que es fácil de solucionar.


Todo lo que hay que hacer es cambiarle la etiqueta a la unidad USB que estés utilizando o, mejor aún, cambiar el archivo de configuración que usa el LiveUSB de Arch para detectar la unidad de booteo.

1. Cambiar el archivo de configuración

Una vez que creaste tu Live USB de Arch con Unetbootin, abrí el archivo syslinux.cfg y buscá todas las entradas donde aparece archisolabel=VERSION_ARCH, donde VERSION_ARCH es el número de versión de Arch que descargaste. En mi caso, estaba así: archisolabel=ARCH_201005.

Lo que hay que hacer es cambiar el valor de la variable archisolabel por el nombre de la partición de tu USB donde se encuentra Arch. Para descubirlo, lo más fácil es usar el explorador de archivos. Por ejemplo, abrí el pendrive con Nautilus hacé clic derecho > Propiedades y fijate qué dice luego de Nombre.

Una vez que tenés ese dato, volvé al archivo syslinux.cfg y reemplazá VERSION_ARCH por el nombre correcto de la etiqueta. En caso de que posea espacios, yo intentaría encerrando el nombre de la etiqueta entre comillas.

2. Cambiar la etiqueta de la partición donde se encuentran los archivos de instalación

La otra opción, como es obvio, es cambiar la etiqueta de la partición donde se encuentran los archivos de instalación de Arch (en el caso típico de un LiveUSB, en la única partición de tu USB) por el valor de la variable archisolabel que aparece en syslinux.cfg. Es verdad que el otro método es mucho más práctico y sencillo, pero me pareció una buena oportunidad para mostrar cómo cambiar las etiquetas de diferentes tipos de particiones. La forma más sencilla de conseguirlo es instalando gparted.

En Ubuntu, eso sería:

sudo apt-get install gparted

Una vez instalado, abrí gparted. Abrí el menú Gparted > Dispositivos > /dev/sdb. Luego, seleccioná la partición en cuestión, hacé clic derecho > Desmontar. Finalmente, clic derecho otra vez > Etiqueta y escribí el nombre de etiqueta correcto. En mi caso, sería ARCH_201005.

Hacer esto mismo desde un terminal es un poquito más complicado ya que dependiendo de qué sistema de archivos tenga asignada la partición, habrá que instalar la herramienta apropiada.

sudo apt-get install mtools        # fat
sudo apt-get install ntfsprogs # ntfs
sudo apt-get install e2fsprogs # ext2, ext3 & ext4
sudo apt-get install jfsutils # jfs
sudo apt-get install reiserfsprogs # reiserfs
sudo apt-get install xfsprogs # xfs

Luego, hay que desmontar la partición. Para hacerlo, primero tenemos que saber dónde se encuentra.

sudo fdisk -l
sudo umount NOMBRE

Reemplazá NOMBRE por el nombre de la partición o la ruta donde se encuentra montada. Por ejemplo, sudo umount /dev/sdb1 o sudo umount /media/miusb.

Nota: en los ejemplos que siguen, reemplazá PARTICION por el nombre de la partición (ej.: /dev/sdb1) y ETIQUETA por el nombre de etiqueta que querés asignarle.

FAT

Para verificar el nombre de etiqueta actual:

sudo mlabel -i PARTICION -s ::

Para cambiar la etiqueta del dispositivo:

sudo mlabel -i PARTICION ::ETIQUETA

NTFS

Para verificar el nombre de etiqueta actual:

sudo ntfslabel PARTICION

Para cambiar la etiqueta del dispositivo (128 caracteres máximo):

sudo ntfslabel PARTICION ETIQUETA

En caso de recibir un error similar Total number of sectors (7831520) not a multiple of sectors per track (63)!, forzá el salteo de ese chequeo escribiendo:

echo mtools_skip_check=1 >> ~/.mtoolsrc

EXT2, EXT3 & EXT4

Para verificar el nombre de etiqueta actual:

sudo e2label PARTICION

Para cambiar la etiqueta del dispositivo (16 caracteres máximo):

sudo e2label PARTICION ETIQUETA

JFS

Para verificar el nombre de etiqueta actual:

sudo jfs_tune -l PARTICION

Para cambiar la etiqueta del dispositivo (16 caracteres máximo):

sudo jfs_tune -L ETIQUETA PARTICION

REISERFS

Para cambiar la etiqueta del dispositivo (16 caracteres máximo):

sudo reiserfstune -l ETIQUETA PARTICION

XFS

Para verificar el nombre de etiqueta actual:

xfs_admin -l PARTICION

Para cambiar la etiqueta del dispositivo (12 caracteres máximo):

sudo xfs_admin -L ETIQUETA PARTICION
Para más información sobre cómo cambiar la etiqueta de las particiones de tu dispositivo USB, te recomiendo leer este excelente tutorial del wiki de Ubuntu.
Actualización: otra solución es esperar los 30 segundos. Cuando estemos en el shell de la ramfs, hay que crear el link simbólico a nuestro usb. Esto se logra escribiendo algo como esto: ln -s /dev/sdb1 /dev/archiso. Y luego hay que ingresar el comando exit. El truco es reemplazar sdb1 por el que corresponda a tu disco usb. Es posible descubrir esto fácilmente utilizando la Utilidad de Discos que viene con GNOME. Luego, /dev/archiso debe ser reemplazado por el nombre del archivo por el que tira error. En caso de que no te deje ejecutar este comando diciendo que el archivo no existe, primero tenes que crear todos los directorios, luego navegar hasta ahí y finalmente ejecutar el comando ln. Quedaría así, por ejemplo: mkdir -p /dev/disk/by-label luego cd /dev/disk/by-label y finalmente ln -s /dev/sdb1 ARCHISO_201105. Este ejemplo vale en el caso de que todo el error haya surgido por no encontrar el archivo /dev/disk/by-label/ARCHISO_201105.