Repair Grub in EFI

Mit Supergrub ins installierte Linux System booten. Bei OpenSUSE mit Yast -> bootloader reparieren. In Debian Systemen in der Konsole als root:

mkdir /boot/efi
mount /dev/sda2 /boot/efi

sda2 ist die Windows EFI Partition

apt install --reinstall grub-efi
grub-install
update-grub

check:

file /boot/efi/EFI/debian/grubx64.efi

Mit LUKS verschlüsselte Festplatten:

Das Fogebeispiel bezieht sich auf OpenSUSE ab Version 15.3 und die Knoppix Version ist die „Kleine“, wenn die DVD-Version genutzt wird, ist wahrscheinlich nichts nach zu installieren wie „efibootmgr“

## in knoppix nachträglich installieren
apt install efibootmgr
modprobe efivars
modprobe -v dm-multipath
######################################################
## partition erstellen
fdisk /dev/sdb
mit "n" neue partition erstellen - erklärt sich selbst...
mit "w" auf Platte schreiben und beenden.

cryptsetup luksFormat /dev/sdX5
## Dateisystem auf verschlüsselter Partition erstellen 

cryptsetup luksOpen /dev/sdX5 cryptwhatever
mkfs.ext4 /dev/mapper/cryptwhatever

######################################################
## Partition entschlüsseln und einbinden
cryptsetup luksOpen /dev/nvme0n1p4 cr_root
mount /dev/mapper/cr_root /home/knoppix/mntoo/

cryptsetup luksUUID /dev/mapper/cr_root

mount /dev/nvme0n1p1 /home/knoppix/mntoo/boot/efi/
mount -o bind /proc /home/knoppix/mntoo/proc
mount -o bind /dev /home/knoppix/mntoo/dev
mount -o bind /sys /home/knoppix/mntoo/sys
chroot /home/knoppix/mntoo/ /bin/bash

lsinitrd /boot/initrd -f /etc/crypttab
vi /etc/crypttab
mkinitrd

grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/nvme0n1

fsck bei jedem booten erzwingen

ich habe bei einem bestimmten virtuellen Server im Dauerbetrieb das Problem, dass die virtuellen Festplatten – aus welchen Gründen auch immer – Fehler im Dateisystem erzeugen und ich nur vor Ort mit knoppix gebootet das Dateisystem reparieren kann. Durch folgende Einträge in Grub wird bei jedem Start das Überprüfen und reparieren des Dateisystems erzwungen:

nano /etc/default/rcS
# be more verbose during the boot process
#VERBOSE=no
VERBOSE=yes
# automatically repair filesystems with inconsistencies during boot
#FSCKFIX=no
FSCKFIX=yes
nano /etc/default/grub

hier wird auch noch ipv6 serverweit abgeschaltet und die Nachrichten beim Bootvorgang vermehrt:

#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="nosplash fsck.mode=force fsck.repair=yes"
GRUB_CMDLINE_LINUX="ipv6.disable=1"

Wichtig! Nach den Änderungen:

update-grub

OpenSUSE: Zweite Passworteingabe nach GRUB verhindern

Hierzu muss ein Key erstellt, der verschlüsselten Partition zugeordnet und an Grub übergeben werden.

touch /.root.key
chmod 600 /.root.key
dd if=/dev/urandom of=/.root.key bs=1024 count=1

## check what's on
mount | grep " / "
cryptsetup status cr_root

cryptsetup luksAddKey /dev/nvme0n1p4 /.root.key

# nano /etc/crypttab
cr_root  UUID=XYZ-XYZ-XYZ-XYZ-XYZ- none  x-initrd.attach /root.key

# nano /etc/dracut.conf.d/99-root-key.conf
install_items+=" /.root.key " # die Leerzeichen sind wichtig!!

# nano /etc/permissions.local
/boot/ root:root 700

chkstat --system --set

mkinitrd