Como evitar o prompt de senha de partição de boot criptografada no LVM-arch linux

0

Estou usando o LVM com o Arch Linux. Por favor, encontre a estrutura do disco abaixo.

NAME              MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                 8:0    0   50G  0 disk  
|-sda1              8:1    0  512M  0 part  
| '-cryptboot     254:3    0  510M  0 crypt 
|   '-vgboot-boot 254:4    0  508M  0 lvm   /boot
'-sda2              8:2    0 49.5G  0 part  
  '-cryptlvm      254:0    0 49.5G  0 crypt 
    |-vgos-swap   254:1    0    4G  0 lvm   [SWAP]
    '-vgos-root   254:2    0 45.5G  0 lvm   /
sr0                11:0    1  560M  0 rom   

Quando inicializo em meu sistema, recebo uma solicitação de senha para a partição de inicialização porque ela é criptografada. Mas eu quero evitar este prompt de senha e também minha partição de boot deve residir em lvm. Por favor, deixe-me saber se alguém fez isso.

Se você ver o diagrama acima, minha raiz também reside em lvm. depois de selecionar o kernal, ele também solicita a senha. Mas isso não é um problema.

    
por Vipin 20.05.2018 / 14:11

1 resposta

0

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:

  1. 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.

  2. 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
    
por 20.05.2018 / 14:47