Estou tentando configurar um volume criptografado seguindo este guia
Tudo está configurado, mas a montagem do volume criptografado falha no momento da inicialização com o erro:
fsck.ext4: Não existe esse arquivo ou diretório ao tentar abrir / dev / mapper / safe_vault Possivelmente dispositivo inexistente?
Esta é a 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 desenvolvedor e no FAQ de Problemas Comuns eles dizem:
Verifique se você possui o mapeador de dispositivos e o destino de criptografia no seu kernel. A saída de "destinos dmsetup" deve listar um destino "criptografia". Se não estiver lá ou se o comando falhar, adicione o mapeador de dispositivo e o crypt-target ao kernel.
Então eu fiz, acontece que não tenho um crypt
alvo:
$ sudo dmsetup targets
striped v1.4.1
linear v1.1.1
error v1.0.1
O problema é que não sei como adicionar um alvo.
Eu acho que isso (não ter o crypt
destino) talvez faça com que a crypttab
configuração seja ignorada no momento da inicialização e, portanto, tente montar a entrada com fstab
falha porque cryptsetup
não mapeou meu volume criptografado /dev/mapper/safe_vault
.
NOTA:
O volume criptografado pode ser mapeado, montado e gravado 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 ele é mapeado e montado:
$ 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
ATUALIZAR
- Acontece que eu tenho o
crypt
alvo, mas para que ele apareçadmsetup targets
eu tive que primeirocryptsetup luksOpen <my-device>
- Tentei usar
UUID
s de acordo com a resposta de @Mikhail Morfikov, mas ainda falha no momento da inicialização.
Ainda acho que o problema é que, de alguma forma, o volume criptografado não está sendo mapeado (aberto com cryptsetup luksOpen
) no momento da inicialização, portanto, não /dev/mapper/<safe_vault or UUID>
existe, e a tentativa de montá-lo (fstab) falha.
ATUALIZAÇÃO 2
Acontece que eu não tinha os scripts necessários para montar no momento da inicialização. Veja a nota na resposta de @ MikhailMorfikov.
fonte
luksOpen
? Eu esperaria que, se não estivesse lá, o luksOpen também falharia.sudo cryptsetup luksOpen
dois novos destinos aparecerem parasudo dmsetup targets
:error
ecrypt
. Eu acho que preciso de mudar a pergunta então .../dev/mapper/<my-logical-volume>-safe_vault
é um volume lógico criado com o LVM e/dev/mapper/safe_vault
é o dispositivo para o qual ele é mapeadocryptsetup luksOpen /dev/mapper/<my-logical-volume>-safe_vault
. Você sabe secrypttab
funciona com volumes LVM?/boot
). Tudo montado na inicialização sem nenhum problema. Tem certeza de que atualizouinitramfs
após a edição/etc/crypttab
? Você pode mostrar a saída delsblk -o name,uuid,mountpoint
quando tudo está montado e funciona como deveria?Respostas:
Você deve prestar atenção aos UUIDs. Por exemplo, esta é minha configuração:
Eu tenho uma partição criptografada (sda2) com 4 volumes (LVM). O que eu preciso é definir dois UUIDs nos arquivos corretos. O sda2 UUID
/etc/crypttab
acessa e o volume UUID (por exemplo debian_crypt-root) acessa/etc/fstab
.Então, seria:
Após alterar o
/etc/crypttab
arquivo, você deve reconstruir o initramfs:NOTA
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ãocryptsetup
, então você tem as ferramentas para configurar dispositivos LVM & LUKS, mas não os scripts necessários para montar dispositivos LUKS no momento da inicialização. Aqueles vêm no pacote de criptografia .fonte
UUID
mas recebo o mesmo erro. Vou atualizar a pergunta com detalhes.Parece que a resposta de @Mikhail Morfikov cobre a montagem durante o estágio initramfs . Uma alternativa (se não for o sistema de arquivos raiz) é descriptografar e montar a partição automaticamente via systemd , após o carregamento do kernel linuz. Claro que isso só é possível se você estiver executando o systemd . Vou explicar o método aqui:
A
/etc/crypttab
entrada:Aqui
noauto
está uma instrução para não tentar descriptografar o disco durante o estágio initramfs .Acima,
e412-blahblah
é o UUID da partição que contém o sistema luks, no meu caso, uma partição/dev/sdb2
:Durante a inicialização do kernel linuz, o systemd lerá o
/etc/crypttab
arquivo e criará um arquivo de serviço de tempo de execução/run/systemd/generator/[email protected]
. No entanto, esse serviço não é executado automaticamente. Você pode executá-lo manualmentemas para descriptografá-lo e montá-lo durante a inicialização,
/etc/fstab
pode ser necessário da seguinte maneira:Aqui
x-systemd.automount
está uma instrução para o systemd montar/media/crypt-data
, e[email protected]
é uma instrução para o systemd cuja descriptografiacrypt2
é necessária antes que isso seja possível.No systemd, ele não monta o diretório até a primeira vez que é acessado, por exemplo
ls /media/crypt-data
, ele monta na hora certa e aparece a partir de então/proc/mounts
.Relacionado
Você pode perguntar "* por que ter um disco de dados criptografados com a chave no sistema de arquivos raiz?". Isso ocorre porque o sistema de arquivos raiz também é criptografado, portanto a chave está segura. O sistema de arquivos raiz é descriptografado durante o estágio de inicialização do initramfs , como resposta de Mikhail. Eu tenho outra entrada no
/etc/crypttab
arquivo para isso:e eu descrevo configurar isso e um usb de inicialização aqui
fonte