Evidentemente, não criei um arquivo /etc/crypttab
. Crie um e, em seguida, update-initramfs -u
para corrigir o problema.
Eu criei uma partição raiz criptografada usando o LUKS que contém algumas partições do LVM. Não consigo inicializar e obter a seguinte saída na inicialização:
Begin mounting root file system ... Begin: Running /scripts/local-top ... /scripts/local-top/cryptroot: line 1: /sbin/cryptsetup: not found
Ainda me pede a senha:
Unlocking the disk /dev/sda5 (macbookcrypt)
Enter passphrase: *******************************
cryptsetup: cryptesetup failed, bad password or options?
/scripts/local-top/cryptroot: line 1: /sbin/cryptsetup: not found
No entanto, falha sempre.
Minha linha de comando de inicialização é:
vmlinuz-3.13.0-37 generic ro root=/dev/mapper/macbooklvm-root cryptopts=target=macbookcrypt,source=/dev/sda5,lvm=macbooklvm recovery initrd=\initrd.img-3.13.0-37-generic
Adicionei " dm_crypt
" a /etc/modules
e, em seguida, usei update-initramfs
para gerar novamente com dm_crypt
incluído. Eu estou no Ubuntu 14.04 pelo caminho.
No shell initramfs, parece que não consigo localizar cryptsetup
em qualquer lugar:
(initramfs) cat /proc/modules | grep crypt
dm_crypt 23177 0 - Live 0xffffffffa0006000
(initramfs) find / -iname "cryptsetup"
(initramfs)
Parece que o módulo dm_crypt
está carregado ', o que é bom, mas o cryptsetup não está presente aqui. Como faço para instalá-lo na minha inicialização do Linux? Ele precisa ser incluído nos arquivos initrd
, vmlinuz
ou System
de alguma forma? Eu sou novo neste hackery.
No Ubuntu 14.04 eu estava faltando o módulo do kernel xts de
/etc/initramfs-tools/modules
Outros módulos que você pode perder podem ser:
raid1
raid456
aes-x86_64
sha512-ssse3
xts
dm-mod
dm-crypt
Eu encontrei a causa raiz adicionando à linha de comando do grub (linux) esta opção:
break=mount
essa força cai para o busybox. Depois disso consegui copiar por pendrive (de outra máquina) esses arquivos nos ramfs:
mkdir /boot
mount /dev/sdc1 /boot
cp cryptsetup /sbin/cryptsetup
cp libcryptsetup.so.4.0.0 /lib/libcryptsetup.so.4
cp libpopt.so.0.0.0 /lib/libpopt.so.0
cp libgcrypt.so.11.7.0 /lib/libgcrypt.so.11
cp libgpg-error.so.0.8.0 /lib/libgpg-error.so.0
/boot/cryptsetup luksOpen /dev/md10 root
(Eu também tenho root no software raid, no LVM) que deu o erro do módulo ausente.
Uma boa idéia que veio em minha mente depois seria copiar os arquivos cryptsetup acima na partição / boot antecipadamente, para que você não tenha que mexer com um pendrive. Outra maneira é descomprimir a imagem do initramfs uma vez (antecipadamente) em, e. / boot / tmp:
gzip -d < ../initrd.img-3.13.0-62-generic | cpio --extract --verbose --make-directories --no-absolute-filenames
para que você tenha todas as bibliotecas de funcionamento e cryptsetup disponíveis, mesmo se o seu update-initramfs -k all -c
falhou após alguma atualização do kernel.
Outro problema que me deu a mensagem de erro acima, mas após a investigação (conforme especificado acima), recebi esta mensagem de erro mais específica:
cryptsetup luksOpen /dev/md10 cryptroot
device-mapper: table: 252:0: crypt: unknown target type
ioctl: error adding target to table
Solução: Verifique se o nome do dispositivo raiz / etc / crypttab (cryptroot) corresponde às configurações de /etc/initramfs-tools/conf.d/mdadm. Eu tinha "cryptroot" em outro e "root" em outro, depois de sincronizar os nomes dos dispositivos de destino, o boot funcionava como um sonho!
Depois de corrigir as configurações, execute
update-initramfs -c -k all