¿Cómo lo Hago?

26/02/2013

Cómo crear un PenDrive arrancable y con persistencia usando CentOS 6.3

CentOS

Si quieres llevar tu sistema siempre contigo y no depender de sistemas ajenos en los que no sabes lo que hay instalado (Windows con virus o malware, keyloggers, etc...) una de las mejores opciones es crearte tu propio pendrive con tu distribución de Linux favorita.

En nuestro caso vamos a usar CentOS 6.3 en su versión LiveCD, que viene únicamente con Gnome 2 como sistema de escritorio, pero puedes usar cualquier versión de Fedora siguiendo los mismos pasos.

Crear un PenDrive arrancable y con "persistencia"

Para los que os preguntéis que es eso de la persistencia, consiste básicamente en que los cambios que hagamos al utilizar el sistema, perdurarán aunque reiniciemos el sistema, cosa que no pasaría en caso de no configurarla, o de utilizar el ya clásico LiveCD.

Para crear nuestro pendrive tenemos dos opciones diferentes, y aunque la más cómoda y fácil de usar es sin duda LiveUSB Creator, tiene varias desventajas importantes si la comparamos con la utilidad "livecd-iso-to-disk", por lo que vamos a usar una vez más la línea de comandos.

Ésta utilidad no sólo nos permite utilizar particiones que no sean FAT32 (y por tanto superar la limitación de 2047 MB en el archivo de persistencia) sino que nos permite diferenciar en dos archivos diferentes los archivos del sistema (overlay) y los del usuario (home), que pueden guardarse cifrados o no en función de nuestras necesidades.

Para empezar, instalamos con yum el paquete que contiene las utilidades y las dependencias que necesite.

sudo yum install -y livecd-tools

IMPORTANTE

Una vez instalado, debemos asegurarnos de cuál es la unidad que vamos a utilizar para evitarnos problemas. Con fdisk (sudo fdisk -l) podemos obtener la información y debería ser algo similar a:

Disco /dev/sdc: 8090 MB, 8090812416 bytes
250 heads, 63 sectors/track, 1003 cylinders
Units = cilindros of 15750 * 512 = 8064000 bytes
Sector size (logical/physical): 512 bytes / 512 b
ytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdc1 * 1 1003 7898593 c W95 FAT32 (LBA)

En caso de que como en nuestro caso tengamos una partición FAT32 y queramos usar más de 2047MB de persistencia o diferenciar home y sistema, podemos usar fdisk para eliminarla y crear una partición (Ext2 o Ext3). Una vez tengamos nuestro pendrive preparado, accedemos a la carpeta donde hayamos descargado la imagen del LiveCD de CentOS (usando cd en la consola o usando el menú contextual y seleccionando "Abrir en un terminal" si estáis usando Nautilus) y asumiendo que sea la versión 6.3 la que hayamos descargado ejecutamos el siguiente comando:

sudo livecd-iso-to-disk --overlay-size-mb 3072 --home-size-mb 3072 --unencrypted-home CentOS-6.3-i386-LiveCD.iso /dev/sdc1

Con él vamos a crear dos archivos diferenciados, ambos de 3072MB, para el sistema (--overlay-size-mb 3072) y los archivos del usuario (--home-size-mb 3072). En éste caso los archivos del usuario no van a ir cifrados, pero si queremos que lo estén no hay más que eliminar la opción "--unencrypted-home" y en el proceso nos pedirá la contraseña que queremos utilizar.

Verifying image...
/home/usuario/Descargas/Linux/CentOS-6.3-i386-LiveCD.iso: 334db41bb8e4f515563d59eb5ea7baa9
Fragment sums: 754749ab34a1786df2c394898e937f84a985d89b7a3a669dac327af2d5aa
Fragment count: 20
Press [Esc] to abort check.
Checking: 100.0%

The media check is complete, the result is: PASS.

It is OK to use this media.
Partition isn't marked bootable!
You can mark the partition as bootable with
# /sbin/parted /dev/sdc
(parted) toggle N boot
(parted) quit
Cleaning up to exit...

En ésta primera pasada nos ha comprobado que la imagen que tenemos es válida para crear nuestro pendrive, pero nos informa de que la partición no está marcada como arrancable, por lo que vamos a hacer lo que nos dice para solucionarlo. Tened en cuenta que N hace referencia al número de la partición (en nuestro caso la 1).

sudo /sbin/parted /dev/sdc
GNU Parted 2.1
Usando /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) toggle 1 boot
(parted) quit
Información: You may need to update /etc/fstab.

El comando anterior nos modifica la partición para que podamos arrancar desde ella, y con ello ya estamos listos para terminar. Volvemos a ejecutar livecd-iso-to-disk y esta vez nos copiará la imagen a la partición que le indicamos, por lo que tardará un poco más en finalizar.

sudo livecd-iso-to-disk --overlay-size-mb 3072 --home-size-mb 3072 --unencrypted-home CentOS-6.3-i386-LiveCD.iso /dev/sdc1
Verifying image...
/home/usuario/Descargas/Linux/CentOS-6.3-i386-LiveCD.iso: 334db41bb8e4f515563d59eb5ea7baa9
Fragment sums: 754749ab34a1786df2c394898e937f84a985d89b7a3a669dac327af2d5aa
Fragment count: 20
Press [Esc] to abort check.
Checking: 100.0%

The media check is complete, the result is: PASS.

It is OK to use this media.
Copying live image to USB stick
squashfs.img
707973120 100% 3.70MB/s 0:03:02 (xfer#1, to-check=0/1)

sent 708059617 bytes received 31 bytes 3858635.68 bytes/sec
total size is 707973120 speedup is 1.00
osmin.img
8192 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)

sent 8265 bytes received 31 bytes 16592.00 bytes/sec
total size is 8192 speedup is 0.99
Updating boot config file
Initializing persistent overlay file
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1,0476e-05 s, 0,0 kB/s
Initializing persistent /home
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1,3899e-05 s, 0,0 kB/s
Formatting unencrypted /home
mke2fs 1.41.12 (17-May-2010)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
Stride=0 blocks, Stripe width=0 blocks
196608 nodos-i, 786432 bloques
39321 bloques (5.00%) reservados para el superusuario
Primer bloque de datos=0
Número máximo de bloques del sistema de ficheros=805306368
24 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
8192 nodos-i por grupo
Respaldo del superbloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912

Escribiendo las tablas de nodos-i: hecho
Creating journal (16384 blocks): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho

Este sistema de ficheros se revisará automáticamente cada 32 montajes o
180 días, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.
tune2fs 1.41.12 (17-May-2010)
Se pone la cuenta de montajes máxima a -1
Se pone el intervalo entre revisiones en 0 segundos
Installing boot loader
/media/usbdev.ev6Y2w/syslinux is device /dev/sdc1
USB stick set up as live image!

Una vez que lo haga ya podremos arrancar nuestro sistema usando el pendrive (siempre que tengamos la BIOS configurada para ello, pero eso es otra historia...).

Más información