149 lines
4.2 KiB
Markdown
149 lines
4.2 KiB
Markdown
## Fixing Debian/Ubuntu UEFI boot manager with Debian/Ubuntu Live
|
||
|
||
source : [Code Bites](https://emmanuel-galindo.github.io/en/2017/04/05/fixing-debian-boot-uefi-grub/)
|
||
|
||
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 :
|
||
|
||
~~~
|
||
$ dmesg | grep -i efi
|
||
~~~
|
||
|
||
~~~
|
||
$ ls -l /sys/firmware/efi | grep vars
|
||
~~~
|
||
|
||
### Mount broken system (via chroot)
|
||
|
||
Mounting another system via chroot is the usual procedure to recover broken system’s. Once the chroot comand is issues, Debian Live will treat the broken system’s “/” (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.
|
||
|
||
~~~
|
||
zpool import -f -R /mnt rpool
|
||
~~~
|
||
|
||
~~~
|
||
zpool import bpool
|
||
~~~
|
||
|
||
Here system will tell you he can't mount it because /boot is in use. We don't wanted to mount it here, we will do it inside the chroot.
|
||
|
||
~~~
|
||
zfs mount rpool/ROOT/ubuntu_myid
|
||
~~~
|
||
|
||
I'm in the case where ny zpool is encrypt !
|
||
|
||
see : [zfs trouble encrypt zpool](zfs-trouble-live-boot-solution)
|
||
|
||
#### My system is not ZFS
|
||
|
||
Mount root partition (for example an lvm)
|
||
|
||
~~~
|
||
# mount /dev/volumegroup/logicalvolume /mnt
|
||
~~~
|
||
|
||
Mount boot partition (F.e. in drive sda)
|
||
|
||
~~~
|
||
# mount /dev/sda2 /mnt/boot
|
||
~~~
|
||
|
||
Mount the EFI System Partition (usually in /dev/sda1)
|
||
|
||
~~~
|
||
# mount /dev/sda1 /mnt/boot/efi
|
||
~~~
|
||
|
||
### Prepare chroot env
|
||
|
||
Mount the critical virtual filesystems with the following single command:
|
||
|
||
~~~
|
||
# for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
|
||
~~~
|
||
|
||
Mount all zfs file system on rpool.
|
||
|
||
~~~
|
||
# zfs mount -a
|
||
~~~
|
||
|
||
Chroot to your normal (and broken) system device
|
||
|
||
~~~
|
||
# chroot /mnt
|
||
~~~
|
||
|
||
Then here mon bpool zfs vol.
|
||
|
||
~~~
|
||
inside chroot # zfs mount -a
|
||
~~~
|
||
|
||
Mount your EFI partition:
|
||
|
||
~~~
|
||
inside chroot # mount -a
|
||
~~~
|
||
|
||
You should see :
|
||
|
||
* all your rpool zfs vol
|
||
* /boot from your bpool.
|
||
* Your efi partition.
|
||
|
||
~~~
|
||
inside chroot # 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/nomad_43xnpb 280G 12G 269G 5% /home/nomad
|
||
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
|
||
|
||
~~~
|
||
inside chroot # apt-get install --reinstall grub-efi
|
||
~~~
|
||
|
||
~~~
|
||
inside chroot # grub-install /dev/sda
|
||
~~~
|
||
|
||
~~~
|
||
inside chroot # update-grub
|
||
~~~
|