Montar automáticamente un disco USB cifrado en el arranque

Montar automáticamente un disco USB cifrado en el arranque

he seguidoestos pasospara configurar un disco duro USB cifrado en Lubuntu 13.10, yestospara desbloquearlo con un archivo de claves en lugar de una frase de contraseña. Ahora tengo un disco /dev/disk/by-uuid/32f692ec-e22c-49d3-b6cf-f90e605a5b48 que es el dispositivo cifrado sin formato, /dev/backup/backup que es el disco de texto sin formato y /mnt/backup donde está el sistema de archivos esta montado. El disco es un disco duro SATA normal conectado mediante un adaptador USB3.

No tengo problemas para usar o montar el disco; el problema viene al intentar montarlo automáticamente en el arranque. Lo agregué a mi fstab y crypttab como sugiere el artículo:

$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/sda2_crypt /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=8afa992c-9174-4a70-b9a0-1ac25b42dbaf /boot           ext2    defaults        0       2
/dev/mapper/sdb2_crypt /home           ext4    defaults        0       2
/dev/mapper/sdb1_crypt /var            ext4    defaults        0       2
/dev/backup/backup     /mnt/backup     ext4    defaults        0       3

$ cat /etc/crypttab
sda2_crypt UUID=6450d0e6-539b-4fa0-a9e1-f06edfbb5ba9 none luks
sdb1_crypt UUID=f30e6efe-8e58-42b6-aed0-dc7999510744 /root/keyfile luks
sdb2_crypt UUID=17f1f107-8f05-4dbd-8172-4d595411d874 /root/keyfile luks
backup     UUID=32f692ec-e22c-49d3-b6cf-f90e605a5b48 /root/keyfile luks

(¿Quizás "copia de seguridad" no sea el nombre correcto en /etc/crypttab? No tengo /dev/sda2_crypt.)

Con esto, simplemente se bloquea al arrancar y dice "el disco para /mnt/backup no está listo o no está presente".

Pensé que tal vez el disco no estuviera listo para entonces, así que intenté montarlo en /etc/rc.local:

$ cat /etc/rc.local 
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

logger Mounting backup disk...
ls -l /dev/disk/by-uuid/ > /home/rena/disk-uuid.txt
stat /root/keyfile >> /home/rena/disk-uuid.txt
whoami >> /home/rena/disk-uuid.txt
cryptsetup --verbose --key-file=/root/keyfile luksOpen /dev/disk/by-uuid/32f692ec-e22c-49d3-b6cf-f90e605a5b48 backup
logger Unlocked OK.
mount /dev/backup/backup /mnt/backup/
logger Mounted OK.

exit 0

Puedo ver en la salida de syslog que se desbloquea correctamente, pero nunca se monta. Parece que todo el script rc.local acaba de morir cuando llega a esa línea. También puedo ver en ls, stat y whoami que el disco está presente en la lista, que se puede acceder al archivo de claves y que el script se ejecuta como root. Entonces no sé por qué fallaría el montaje.

La parte más extraña es si elimino todo esto de rc,local y simplemente ingreso los comandos en una terminal después del arranque:

sudo cryptsetup --verbose --key-file=/root/keyfile luksOpen /dev/disk/by-uuid/32f692ec-e22c-49d3-b6cf-f90e605a5b48 backup
sudo mount /dev/backup/backup /mnt/backup/

Se monta bien. Entonces, ¿por qué falla en rc.local y en fstab/crypttab?

información relacionada