Instalar Ubuntu 7.04 en pendrive


Aprovechando un bolígrafo USB de 1GB que tenía por ahí tirado (un regalo de empresa), me acabo de crear un Ubuntu Feisty Fawn portátil.
Lo primero que he hecho es cambiar el tamaño de la partición FAT que venía por defecto en la memoria del bolígrafo, para reducirla a sólo 256MB, más que suficiente para seguir utilizándola con otros sistemas operativos y, además, para que me sirva como almacén de lectura-escritura (casper-rw) en modo persistente (cuando funcione, pues actualmente hay un bug al respecto). Para ello he utilizado la herramienta parted (en modo root o con sudo, por supuesto). En mi caso, al tener el bolígrafo USB en el dispositivo /dev/sdb, hice:

parted /dev/sdb
Ojo, muy importante: conviene que previamente hagas un fdisk -l , para no equivocarte de dispositivo y provocar un estropicio (y desmonta la partición si la tienes montada). Una vez dentro de parted , con print podrás visualizar el estado actual del dispositivo. Para redimensionar la partición FAT, basta con ejecutar (asumo que todavía sólo hay una partición y que está numerada con el 1):

resize 1 0 256MB
También puede ser ejecutada paso a paso (primero resize, luego el 1,…; igual conviene este método, pues así te va dando valores por defecto y es más difícil equivocarse) .
Por lo que pudiera pasar, he formateado la partición:
:
mkfs.vfat -F 32 -n casper-rw /dev/sdb1
Si fuese FAT16, cambiaría -F 32 por -F 16. Con el anterior comando, le hemos puesto la etiqueta casper-rw para que sea usada en modo persistente.
Posteriormente, he salido de parted (quit) y me he dispuesto a crear con fdisk una nueva partición ext3 en el espacio libre dejado en la memoria (podría haberlo hecho también con parted, pero así aprendemos a usar más herramientas). En mi caso:

fdisk /dev/sdb
Una vez dentro, con visualizas el estado actual, con se crea una nueva partición (luego le dices que p [b/] , para primaria, [b] 2 para 2ª partición, y entras los valores por defecto de inicio y final de partición para llenar todo el espacio disponible), con se activa la partición para poder arrancar con ella (bootable), y con se guardan definitivamente los cambios (en este sentido, me gusta más fdisk que parted, pues este último hace los cambios de inmediato). Para salir, .
Formateamos la partición ext3 (también debería valer ext2). En mi caso:

mkfs.ext3 -L ubuntu /dev/sdb2
He elegido hacerlo así para que dicha partición permanezca invisible a otros sistemas operativos y no pueda ser borrada o modificada por error. Será en esta partición donde copiemos los datos del Live CD de Ubuntu. Asumiendo que hemos descargado la imagen ISO de Ubuntu, la montaremos (no hace falta quemarla en un CD), por ejemplo, así:

mount -t iso9660 -o loop ubuntu-7.04-desktop-i386.iso /mnt/externo/
Ahora, por fin, montamos la partición ext3 del bolígrafo USB:

mount -o sync /dev/sdb2 /media/sdb2/
Y copiamos el contenido del CD en ella:

cp -Rpdf /mnt/externo/* /media/sdb2/
En realidad no hace falta copiar todo, pero como hay espacio de sobra… (dejo como ejercicio al lector avanzado descubrir los ficheros innecesarios) .
Ahora viene la parte que considero más innovadora de este artículo (aparte de elegir un bolígrafo, claro). Como se ha optado por usar una partición ext3, invisible a Windows y otros virus, habrá que elegir un gestor de arranque que funcione en este tipo de particiones. Podría haber sido grub o lilo , pero eso implicaría tener que currarme unos ficheros de configuración. Y como se dispone de ficheros de configuración en el LiveCD válidos para syslinux eisolinux , he preferido usar el poco conocido extlinux , cuyos ficheros de configuración tienen exactamente el mismo formato. Esta aplicación extlinux viene en el paquete syslinux, por lo que, para instalar el paquete:

aptitude install syslinux
Antes que nada, comprueba con fdisk -l que todo está correcto. En mi caso me sale:

Disco /dev/sdb: 1025 MB, 1025507328 bytes
32 cabezas, 62 sectores/pista, 1009 cilindros
Unidades = cilindros de 1984 * 512 = 1015808 bytesDisposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 1 252 249953 e W95 FAT16 (LBA)
/dev/sdb2 * 253 1009 750944 83 Linux
Fíjate bien dónde está el asterisco (partición activa). Debe estar en la partición con el Linux. Ahora, para instalar el gestor de arranque en el bolígrafo USB:

extlinux -z /media/sdb2/
La opción -z será muy útil para ciertos ordenadores que, en el arranque, interpretan los dispositivos de almacenamiento USB como dispositivos ZIPdrive (ver extlinux -h). Comprobaremos que aparece un fichero en/media/sdb2/extlinux.sys
Algunos USB, extrañamente se resisten el el proceso de arranque. Es importante que sólo haya una partición activa y sea esa precisamente en la que hayamos instalado el gestor de arranque. Si los problemas persisten, mírate este artículo sobre el tema.
Como habéis visto, he instalado el gestor en la raíz de la partición. No he sabido hacerlo de otra forma. Ello nos obliga a hacer una pequeña modificación en la estructura de ficheros del USB. Para ello movemos todos los ficheros de la carpeta isolinux a la raíz:

mv /media/sdb2/isolinux/* /media/sdb2/
Y copiamos el kernel, etc. también a la raíz (sí, han de estar duplicados):

cp /media/sdb2/casper/vmlinuz /media/sdb2/
cp /media/sdb2/casper/initrd.gz /media/sdb2/
cp /media/sdb2/install/mt86plus /media/sdb2/
Ya sólo queda una cosa: copiar el fichero de configuración del isolinux a otro válido para extlinux :

cp /media/sdb2/isolinux.cfg /media/sdb2/extlinux.conf
También conviene editarlo. Con tu editor favorito cámbialo a tu gusto. Yo lo he dejado así (si quieres, también puedes descargarlo):

DEFAULT usb
GFXBOOT bootlogo
GFXBOOT-BACKGROUND 0xB6875A
APPEND file=preseed/ubuntu.seed boot=casper initrd=initrd.gz locale=es_ES bootkbd=es console-setup/layoutcode=es quiet splash –
LABEL usb
menu label ^Ubuntu en modo persistente
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz locale=es_ES bootkbd=es console-setup/layoutcode=es quiet splash –
LABEL live
menu label ^Start or install Ubuntu
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper initrd=initrd.gz locale=es_ES bootkbd=es console-setup/layoutcode=es quiet splash –
LABEL xforcevesa
menu label Start Ubuntu in safe ^graphics mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz locale=es_ES bootkbd=es console-setup/layoutcode=es quiet splash –
LABEL driverupdates
menu label Install with driver ^update CD
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper debian-installer/driver-update=true initrd=initrd.gz locale=es_ES bootkbd=es console-setup/layoutcode=es quiet splash –
LABEL check
menu label ^Check CD for defects
kernel vmlinuz
append boot=casper integrity-check initrd=initrd.gz locale=es_ES bootkbd=es console-setup/layoutcode=es quiet splash –
LABEL memtest
menu label ^Memory test
kernel mt86plus
append -
LABEL hd
menu label ^Boot from first hard disk
localboot 0×80
append -
DISPLAY isolinux.txt
TIMEOUT 300
PROMPT 1
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt
Tal y como está arriba, el arranque por defecto será en español y tendrá habilitado el modo persistente (cuando funcione correctamente: entonces habrá que sustituir el kernel vmlinuz ).
Para terminar, desmontamos el bolígrafo USB y, para probarlo, rearrancamos el ordenador, ordenándole en la BIOS (eso ya depende de ti) que arranque con el dispositivo USB.
A mi me va de maravilla. ¿Y a ti?

regalanos tu like