Diese Anleitung benötigt einen Stub-Kernel wie in B.2 beschrieben !
C.1 Rescue Boot von USB-Stick (evtl. IMA Measure)
Wir könnten für C.3 und C.4 einen bootfähigen USB-Stick benötigen - außerdem ist ein Rescue Boot-Stick nie verkehrt
Diesen erstellen wir jetzt vorab und prüfen auch gleich, ob dieser auch wirklich bootet. Wenn wir den exakt gleichen Kernel (den wir bereits haben) auf diesen Stick kopieren, können wir evtl. gar nicht überprüfen, ob auch wirklich von diesem gebootet wurde. Mir ist das passiert ! Ich habe mich nämlich beim File-Namen "bootx64.efi" vertippt und versehentlich einen "bootx46.efi" rüberkopiert. Das Ergebnis war: UEFI versuchte vom Stick zu booten, hat nichts gefunden und bootete meinen Kernel von der SSD (weil dieser in der Boot-Reihenfolge halt dann an zweiter Stelle war). Das ging so schnell, dass ich es nicht einmal gemerkt habe. (Absolut unwichtige Details findest Du in: https://forums.gentoo.org/viewtopic-t-1 ... ight-.html).
Wir werden also testen, ob wir wirklich von diesem gebootet haben. Dazu werden wir den jetzigen Kernel minimal ändern indem wir in der bestehenden Kernel Command Line den Parameter "loglevel=8" hinzufügen:
Code: Select all
Processor type and features --->
[*] Built-in kernel command line
(root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro loglevel=8) Built-in kernel command stringCode: Select all
- connect your USB stick
# lsblk
! check if /dev/sdb is really your stick; (probably it is /dev/sdc or /sdd if you have more than one hd or ssd; then use this instead of sdb1 in the next command)
# parted -a optimal /dev/sdb
> mklabel gpt
> unit mib
> mkpart primary 1 128
> name 1 usbboot
! setting "boot on" is important to get the ESP flag for this partition, so UEFI can find the kernel in it
> set 1 boot on
> q
# mkfs.fat -F 32 /dev/sdb1Jetzt der zweite Teil:
Code: Select all
# mkdir -p /mnt/stick
! again: check if sdb1 is correct for you
# mount -t vfat /dev/sdb1 /mnt/stick
# mkdir -p /mnt/stick/EFI/BOOT
# cd /usr/src/linux
# make menuconfig
! add parameter "loglevel=8" as described above
# make
! If you have done B.3 SecureBoot use this to copy your kernel
# sbsign --key /etc/MY/efikeys/DB.key --cert /etc/MY/efikeys/DB.crt --output /mnt/stick/EFI/BOOT/bootx64.efi arch/x86/boot/bzImage
(! OR - without SecureBoot - use this to copy)
(# cp arch/x86/boot/bzImage /mnt/stick/EFI/BOOT/bootx64.efi)
# umount /mnt/stickCode: Select all
# dmesg | grep -i command
[ 0.000000] Command line:
[ 0.026354] Kernel command line: root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro loglevel=8Code: Select all
# cat /proc/cmdlineVorerst dient Dir dieser Stick nur als Rescue-Stick. Später können wir ihn auch für IMA Measurement verwenden (ist aber kein Muss).
