Atualiza o grub em um ambiente chroot com root em um volume luks criptografado

1

Eu quero mover um sistema (todos os sistemas que estou usando são baseados no Ubuntu 16.04) de uma partição não criptografada para uma luks criptografada (no mesmo disco).

Para isso, criei um volume lógico criptografado LUKS que contém uma partição raiz e de swap. Então eu copiei o conteúdo da partição existente para a nova partição raiz usando dd . Verifiquei que essa nova raiz contém a estrutura de diretórios adequada e realizei uma varredura de disco da partição.

O plano era fazer o chroot para o novo sistema e atualizar o grub daí.

Em detalhes, estou tentando o seguinte (que é uma combinação das páginas de ajuda do Ubuntu e Como reinstalar o grub de um liveUSB se a partição / for criptografada e houver uma partição / boot separada? ):

# Unlock crypto file system
sudo cryptsetup luksOpen /dev/sda2 lukslvm 

sudo vgscan 
sudo vgchange -ay
sudo svscan

# Mount root file system
sudo mount /dev/mapper/vgubuntu-root /mnt
# Mount boot filesystem
sudo mount /dev/sda1 /mnt/boot
# Mount required internal file systems
sudo mount -o rbind /dev /mnt/dev
sudo mount -t proc proc /mnt/proc
sudo mount -t sysfs sys /mnt/sys
## Additional LVM directories (for older systems)
sudo mount -o rbind /run/lvm /mnt/run/lvm
sudo mount -o rbind /run/lock/lvm /mnt/run/lock/lvm
# Enable DNS resolution
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
# Change to the encrypted system
sudo chroot /mnt /bin/bash

# Install required software
sudo apt-get install cryptsetup lvm2

# Edit /etc/crypttab
sudo printf "lukslvm\tUUID=%s\tnone\tluks\n" "$(cryptsetup luksUUID /dev/sda2)" | tee -a /etc/crypttab

# /etc/modules editieren
sudo echo "dm-crypt" >> /etc/modules

# Update kernel initramfs
sudo update-initramfs -u -k all

echo "Edit /etc/default/grub as GRUB_CMDLINE_LINUX_DEFAULT=\"kopt=root=/dev/mapper/vgubuntu-root\""
sudo vi /etc/default/grub

sudo update-grub

# Leave chroot environment
exit
# Write buffers to disk
sudo sync
# Unmount file systems
sudo umount /mnt/run/lvm
sudo umount /mnt/run/lock/lvm
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot
#
sudo swapoff -a

Infelizmente, isso não funciona assim, pois update-grub parece não encontrar o sistema instalado na partição criptografada. Ele só encontra a instalação existente em uma partição diferente /dev/sda3 .

O que estou perdendo?

    
por highsciguy 02.06.2017 / 14:30

1 resposta

1

Parece que você esqueceu de criar um arquivo / etc / mtap apropriado

sudo cp /proc/mounts /mnt/etc/mtab

Veja link

    
por Simon Sudler 02.06.2017 / 14:54