Por que meu volume LVM criptografado (dispositivo LUKS) não é montado no momento da inicialização?

10

Estou tentando configurar um volume criptografado seguindo este este guia

Tudo está configurado, mas a montagem do volume criptografado falha no momento da inicialização com o erro:

fsck.ext4: No such file or directory while trying to open /dev/mapper/safe_vault Possibly non-existent device?

Esta é minha configuração:

crypttab

$ sudo cat /etc/crypttab
safe_vault  /dev/disk/by-uuid/d266ae14-955e-4ee4-9612-326dd09a463b  none    luks

NOTA:

O uuid vem de:

$ sudo blkid /dev/mapper/<my_logical_group>-safe_vault 
/dev/mapper/<my_logical_group>-safe_vault: UUID="d266ae14-955e-4ee4-9612-326dd09a463b" TYPE="crypto_LUKS" 

fstab

$ sudo cat /etc/fstab | grep safe_vault
/dev/mapper/safe_vault      /safe-vault     ext4    defaults    0 2

O que eu fiz ...

Então eu fui ao site do devoper e na FAQ de problemas comuns eles dizem :

Check that you have the device mapper and the crypt target in your kernel. The output of "dmsetup targets" should list a "crypt" target. If it is not there or the command fails, add device mapper and crypt-target to the kernel.

Então eu fiz, acontece que eu não tenho um alvo crypt :

$ sudo dmsetup targets
striped          v1.4.1
linear           v1.1.1
error            v1.0.1

O problema é que eu não sei como adicionar um alvo.

Eu acho que isso (não tendo o crypt target) talvez fazendo com que a configuração crypttab seja ignorada no momento da inicialização e, assim, tentar montar a entrada em fstab falhará porque cryptsetup não mapeou minha criptografia volume para /dev/mapper/safe_vault .

NOTA:

O volume criptografado pode ser mapeado, montado e escrito manualmente:

$ sudo cryptsetup luksOpen /dev/mapper/<my_logical_group>-safe_vault safe_vault
Enter passphrase for /dev/mapper/<my_logical_group>-safe_vault: 

$ sudo mount /dev/mapper/safe_vault /safe_vault

É assim que fica após mapear e montá-lo:

$ sudo lsblk -o name,uuid,mountpoint
NAME                                  UUID                                   MOUNTPOINT
sda                                                                          
├─sda1                                28920b00-58d3-4941-889f-6249357c56ee   
├─sda2                                                                       
└─sda5                                uhBLE7-Kcfe-RMi6-wrlX-xgVh-JfAc-PiXmBe 
  ├─<my_logical_group>-root (dm-0)       1bed9027-3cf7-4f8d-abdb-28cf448fb426   /
  ├─<my_logical_group>-swap_1 (dm-1)     a40c16c4-7d0c-46d7-afc8-99ab173c20bb   [SWAP]
  ├─<my_logical_group>-home (dm-2)       e458abb7-b263-452d-8670-814fa737f464   /home
  ├─<my_logical_group>-other (dm-3)      0a1eec42-6534-46e1-8eab-793d6f8e1003   /other
  └─<my_logical_group>-safe_vault (dm-4) d266ae14-955e-4ee4-9612-326dd09a463b   
    └─safe_vault (dm-5)               9bbf9f47-8ad8-43d5-9c4c-dca033ba5925   /safe-vault
sr0  

UPDATE

  • Acontece que tenho a meta crypt , mas para ela aparecer com dmsetup targets , tive que primeiro cryptsetup luksOpen <my-device>
  • Tentei usar UUID s, de acordo com a resposta de @Mikhail Morfikov, mas ela ainda falha em tempo de inicialização.

Ainda acho que o problema é que, de alguma forma, o volume criptografado não está sendo mapeado (aberto com cryptsetup luksOpen ) no tempo de inicialização, portanto, não há /dev/mapper/<safe_vault or UUID> , e tentar montá-lo (fstab) falha.

UPDATE 2

Acontece que eu não tinha os scripts necessários para montar no momento da inicialização. Veja a nota na resposta do @ MikhailMorfikov.

    
por pgpb.padilla 04.01.2014 / 10:28

1 resposta

10

Você precisa prestar atenção aos UUIDs. Por exemplo, esta é minha configuração:

# lsblk -o name,uuid,mountpoint
├─sda2                         727fa348-8804-4773-ae3d-f3e176d12dac
│ └─sda2_crypt (dm-0)          P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi
│   ├─debian_crypt-swap (dm-1) 3f9f24d7-86d1-4e21-93e9-f3c181d05cf0   [SWAP]
│   ├─debian_crypt-tmp (dm-2)  93fc8219-f985-45fb-bd5c-2c7940a7512d   /tmp
│   ├─debian_crypt-home (dm-3) 12e8566c-8f0f-45ec-8524-6d9d9ee91eae   /home
│   └─debian_crypt-root (dm-4) 9685570b-4c9e-43ea-815e-49d10dc7a1bf   /

Eu tenho uma partição criptografada (sda2) com 4 volumes (LVM). O que eu preciso é definir dois UUIDs nos arquivos corretos. O sda2 UUID vai para /etc/crypttab e o volume UUID (por exemplo debian_crypt-root) vai para /etc/fstab .

Então, seria:

# cat /etc/crypttab
sda2_crypt              UUID=727fa348-8804-4773-ae3d-f3e176d12dac   none        luks

# cat /etc/fstab
UUID=9685570b-4c9e-43ea-815e-49d10dc7a1bf       /               ext4    defaults,errors=remount-ro              0 1

Depois de alterar o arquivo /etc/crypttab , você precisa reconstruir o initramfs:

# update-initramfs -u -k all

OBSERVAÇÃO

O pacote cryptsetup precisa ser instalado porque possui scripts de inicialização que fornecem suporte para a montagem automática de volumes criptografados na inicialização.

Por que se preocupar em mencionar isso? Bem, se você configurar o LVM durante a instalação, o Debian Wheezy instala os pacotes cryptsetup-bin , libcryptsetup4 e lvm2 mas não cryptsetup , assim você tem as ferramentas para configurar o LVM & Dispositivos LUKS, mas não os scripts necessários para montar dispositivos LUKS no momento da inicialização. Aqueles vêm no pacote cryptsetup .

    
por 04.01.2014 / 19:04