wiki-system/full-zfs-ecrypt-uefi-boot-trouble.md
2020-09-23 16:21:37 +02:00

150 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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 :
~~~
from live $ dmesg | grep -i efi
~~~
~~~
from live $ 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.
~~~
from live $ sudo su
from live # zpool import -f -R /mnt rpool
~~~
~~~
from live # 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.
~~~
from live # 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)
~~~
from live # mount /dev/volumegroup/logicalvolume /mnt
~~~
Mount boot partition (F.e. in drive sda)
~~~
from live # mount /dev/sda2 /mnt/boot
~~~
Mount the EFI System Partition (usually in /dev/sda1)
~~~
from live # mount /dev/sda1 /mnt/boot/efi
~~~
### Prepare chroot env
Mount the critical virtual filesystems with the following single command:
~~~
from live # for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
~~~
Mount all zfs file system on rpool.
~~~
from live # zfs mount -a
~~~
Chroot to your normal (and broken) system device
~~~
from live # 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/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
~~~
inside chroot # apt-get install --reinstall grub-efi
~~~
~~~
inside chroot # grub-install /dev/sda
~~~
~~~
inside chroot # update-grub
~~~