3.8 KiB
Raw Permalink Blame History

Fixing Debian/Ubuntu UEFI boot manager with Debian/Ubuntu Live

source : Code Bites

Steps summary:

  • Boot Debian Live
  • Verify Debian Live was loaded with UEFI
  • Review devices location and current configuration
  • Mount broken system (via chroot)
  • Reinstall grub-efi
  • Verify configuration
  • Logout from chroot and reboot

Verify Debian Live was loaded with UEFI :

FromLive $ dmesg | grep -i efi 
FromLive $ ls -l /sys/firmware/efi | grep vars

Mount broken system (via chroot)

Mounting another system via chroot is the usual procedure to recover broken systems. Once the chroot comand is issues, Debian Live will treat the broken systems “/” (root) as its own. Commands run in a chroot environment will affect the broken systems filesystems and not those of the Debian Live.

My system is full ZFS

You have to add -f to force import because zfs think he should be on an other system.
-R is to use an altroot path.

FromLive $ sudo su
FromLive # zpool import -f -R /mnt rpool
FromLive # zfs mount rpool/ROOT/ubuntu_myid

I'm in the case where ny zpool is encrypt !

see : zfs trouble encrypt zpool

Prepare chroot env

Mount the critical virtual filesystems with the following single command:

FromLive # for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

Mount all zfs file system on rpool.

FromLive # zfs mount -a

Chroot to your normal (and broken) system device

FromLive # chroot /mnt

import also bpool but do not mount it -N :

InsideChroot # zpool import -N bpool

Mount your EFI partition:

InsideChroot # mount -a

You should see :

  • all your rpool zfs vol
  • /boot from your bpool.
  • Your efi partition.
InsideChroot # df -h
Sys. de fichiers                                 Taille Utilisé Dispo Uti% Monté sur
udev                                                16G       0   16G   0% /dev
tmpfs                                              3,2G    1,8M  3,2G   1% /run
rpool/ROOT/ubuntu_19k4ww                           272G    3,7G  269G   2% /
bpool/BOOT/ubuntu_19k4ww                           1,2G    270M  929M  23% /boot
rpool/USERDATA/yourlogin_43xnpb                    280G     12G  269G   5% /home/yourlogin
rpool/USERDATA/root_43xnpb                         269G    640K  269G   1% /root
rpool/ROOT/ubuntu_19k4ww/srv                       269G    128K  269G   1% /srv
rpool/ROOT/ubuntu_19k4ww/var/lib                   269G     34M  269G   1% /var/lib
rpool/ROOT/ubuntu_19k4ww/var/log                   269G     47M  269G   1% /var/log
rpool/ROOT/ubuntu_19k4ww/var/spool                 269G    128K  269G   1% /var/spool
/dev/nvme0n1p1                                     511M     16M  496M   4% /boot/efi
rpool/ROOT/ubuntu_19k4ww/var/games                 269G    128K  269G   1% /var/games
rpool/ROOT/ubuntu_19k4ww/var/snap                  269G    128K  269G   1% /var/snap
rpool/ROOT/ubuntu_19k4ww/var/mail                  269G    128K  269G   1% /var/mail
rpool/ROOT/ubuntu_19k4ww/usr/local                 269G    256K  269G   1% /usr/local
rpool/ROOT/ubuntu_19k4ww/var/www                   269G    128K  269G   1% /var/www
rpool/ROOT/ubuntu_19k4ww/var/lib/AccountsService   269G    128K  269G   1% /var/lib/AccountsService
rpool/ROOT/ubuntu_19k4ww/var/lib/NetworkManager    269G    256K  269G   1% /var/lib/NetworkManager
rpool/ROOT/ubuntu_19k4ww/var/lib/apt               269G     77M  269G   1% /var/lib/apt
rpool/ROOT/ubuntu_19k4ww/var/lib/dpkg              269G     41M  269G   1% /var/lib/dpkg
/dev/nvme0n1p1                                     511M     16M  496M   4% /boot/efi

Reinstall grub-efi

InsideChroot # apt-get install --reinstall grub-efi
InsideChroot # update-grub