Saludos.
Pequeño manual para instalar Arch en un stick usb externo, con la partición de root cifrada:
-Arrancamos el live cd de Arch como normalemente haríamos, con el usb enchufado.
-Una vez cargado, nos logueamos como root, y si queremos eliminar completamente restos de datos que estuviesen ahí, escribimos ceros (también conocido como formateo a bajo nivel, o eso creo) en el usb, de una de las siguientes formas (la primera es más aleatoria, la segunda algo menos, pero comprueba sectores defectuosos):
dd if=/dev/zero of=/dev/sda bs=1M
badblocks -c 10240 -w -t random -s -v /dev/sda
Por supuesto, cambiamos sda por nuestro dispositivo usb, si tenemos un disco duro enchufado seguramente sea /dev/sdb
-Particionamos el usb, usando la utilidad cfdisk
cfdisk /dev/sda
El esquema de particiones quedará como sigue
/dev/sda1 -> /boot
/dev/sda2 -> /
-Cargamos los módulos necesarios para crear el sistema cifrado
modprobe dm-crypt
modprobe aes-i586
-Ahora crearemos la partición encriptada, y su correspondiente contraseña, para después montarla. Nótese que sólo cifraremos / puesto que /boot ha de estar sin cifrar para que el sistema arranque:
cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2
Enter passphrase: mypassword
Verify passphrase: mypassword
-Abrimos la partición creada
cryptsetup luksOpen /dev/sda2 root
Enter any LUKS passphrase: mypassword
key slot 0 unlocked.
Command successful.
Nos pedirá la contraseña que antes especificamos, y una vez introducida, tendremos un dispositivo en /dev/mapper/root, en el cual todo lo que escribamos, irá a parar a /dev/sdb2, con la particularidad de que quedará cifrado.
-Ahora, simplemente iniciamos el instalador de Arch
/arch/setup
Y vamos instalandolo como normalmente haríamos, hasta el punto de "Prepare hard drive". Vamos directamente a la opción "Set Filesystem Mountpoints". Si hemos seguido bien el tutorial hasta ahora, swap no tendrá punto de montaje (o materemos al pendrive con tanta escritura, recordad que tienen unos ciclos limitados), y cuando seleccionemos el punto de montaje de /, deberíamos poder seleccionar /dev/mapper/root. NUNCA seleccionaremos /dev/sdb2. Continuamos con la instalación, hasta llegar a "Configure System". Aquí lo más importante es poner bien el array de hooks en /etc/mkinitcpio.conf, puesto que suele dar problemas el arranque cuando se hace desde usb encriptado, os pongo como es el mio, ya que con él conseguí arrancar y funciona bien:
HOOKS="base udev usb encrypt autodetect ide pata scsi sata filesystems"
-Cuando salgamos de este paso, y se reconstrulla la imagen del kernel, estaremos atentos comprobando si todos los hooks se ejecutan en el orden del array especificado por nosotros.
-Aquí cabe hacer un inciso: Cuando terminemos de instalar y configurar todo, al arrancar, el hook usb SIEMPRE ha de ejecutarse antes que encrypt, y encrypt SIEMPRE antes que filesystems. Si cuando se lanza el hook usb, no carga nuestro dispositivo usb, obtendremos seguramente un kernel panic. Para ver posibles soluciones:
http://bugs.archlinux.org/task/11571-Continuemos. En /etc/rc.conf, es posible que necesitemos activar el soporte lvm2 (no estoy seguro de ello, pero creo que es necesario)
USELVM="yes"
-Instalando Grub. Cuando configuremos el /boot/grub/menu.lst, tendría que quedar similar a esto:
# (0) Arch Linux
title Arch Linux
root (hd0,0)
kernel /vmlinuz26 root=/dev/disk/by-uuid/numeros-de-identificacion-de-particion-sdb2-del-usb ro
initrd /kernel26.img
-Importante: Hemos cambiado (hd1,0) (lo que casi seguro veriamos originalmente) por lo que vemos en el code, (hd0,0), esto es así porque al iniciar desde el usb siempre la partición de arranque estará en hd0,0. Originalmente, también ponia root=/dev/mapper/root, lo hemos cambiado por la partición de / en el usb, identificada por su uuid, para saber cual és, es tan sencillo como ir a otra vc (alt+f2) y teclear
blkid | grep sdb2
Apuntamos el uuid y es el que debemos poner en numeros-de-identificacion-de...
-Instalamos el grub en /dev/sdb (Como haríamos normalmente como un disco duro).
Salimos de la instalación de arch, reiniciamos, y si todo ha funcionado bien, y tenemos configurado el arranque desde usb en la bios (o seleccionamos usb como dispositivo de arranque) Veremos el grub, y a continuación, cargará Arch Linux, en el hook usb cargará nuestro dispositivo usb informándonos de sus particiones (algo así como sdb sdb1 sdb2), cargará el hook encrypt, el cual nos pedirá la clave que especificamos al hacer la partición encriptada con luks, y cargará los demas hooks. Si todo ha salido bien tendremos por fin nuestro Arch Linux corriendo en usb externo, además de con la partición de / encriptada para salvaguardar nuestros datos privados.
Esta guía ha sido elaborada por mi (Phyrok) usando como base esta página de la wiki de Arch
http://wiki.archlinux.org/index.php/LUKS . Guía bajo la licencia Creative Commons, al ser sido posteada en
www.elotrolado.net.
Requiescat In Pain.