Você está recebendo o prompt de senha dupla porque sua partição /boot
está criptografada. Primeiro, o GRUB solicita senha porque precisa carregar o kernel do /boot
criptografado. Em seguida, o kernel solicita novamente a senha para descriptografar /
.
Existem duas abordagens para este problema:
-
Não use criptografado
/boot
. O GRUB não pedirá senha. Isso permitirá que qualquer pessoa mexa nos arquivos kernel e initramfs . Por exemplo, pode-se substituir o kernel por um malicioso que acesse seu/
criptografado depois que você inserir a senha. -
Crie uma chave de descriptografia e adicione-a a um slot LUKS livre em
/
e insira essa chave em initramfs. Isso permitirá que o kernel acesse/
sem senha.
A configuração para o # 2 é bastante complicada, então vou com a abordagem anterior. Estou digitando isso do topo da minha cabeça, sem nenhum teste. Faça backups e prossiga com cuidado. Não sou responsável por qualquer perda de dados e outros problemas causados por este processo.
Você precisará de uma mídia inicializável do Linux com cryptsetup
e resize2fs
. Eu recomendo usar o flash drive do Ubuntu. Você também pode substituir o último com partclone
. Você também precisará de cerca de 500 MB de espaço livre em disco para armazenar a imagem /boot
descriptografada intermediária.
Inicialize a partir de sua mídia Linux. Acesse o LVM (honestamente, eu nunca lidei com isso, então não tenho idéia se são necessárias etapas adicionais - existe a possibilidade de o Ubuntu lidar com isso automaticamente). Abra o /boot
criptografado:
cryptsetup open /dev/<boot> cryptboot
Crie uma imagem de inicialização não criptografada: (para ver o progresso use pv
em vez de cat
)
cat /dev/mapper/cryptboot > /media/ubuntu/<someExternalStorage>/boot.img
Fechar /boot
:
sync
cryptsetup close cryptboot
Escreva /boot
não criptografado na partição e ajuste o tamanho do sistema de arquivos:
cat /media/ubuntu/<someExternalStorage>/boot.img > /dev/<boot>
resize2fs /dev/<boot>
Obtenha um UUID de /boot
(tome nota disso):
blkid /dev/<boot>
Abra e monte /
, atualize fstab
:
cryptsetup open /dev/<root> cryptroot
mkdir -p /mnt/root
mount /dev/mapper/cryptroot /mnt/root
cd /mnt/root
vi etc/fstab
Ajuste a linha que monta /boot
para usar o novo UUID em vez de /dev/mapper/...
entry. Você também pode ter que remover /boot
line de etc/crypttab
.
Atualize o initramfs (este pode ser quebrado no Ubuntu se o seu SO principal for o Arch ... Não tenho certeza, portanto, tenha cuidado):
cd /mnt/root
mount -t sysfs sysfs sys
mount -t tmpfs tmp tmp
mount -t proc proc proc
mount --bind /dev dev
mount /dev/<boot> boot
mount --bind /boot/efi boot/efi
chroot
update-initramfs -u -k all
exit
Tanto quanto me lembro, isso deveria ser suficiente. Você também pode simplificar a configuração do GRUB desabilitando a inicialização criptografada em seus arquivos de configuração. Pode acelerar a inicialização, mas não é necessário.
Limpar depois de você:
umount boot/efi boot dev proc tmp sys
cd ..
umount root
cryptsetup close cryptroot