ich verwende schon einige Jahre lang einen standalone grub, auf der (einzigen) EFI System Partition und habe ihn von meinem normalen, laufenden Debian aus installiert, allerdings mit einigen anderen Optionen als @grubenlicht es vorgeschlagen hat (ESP wieder unter »/mnt« gemountet):
Code: Alles auswählen
grub-install --target=x86_64-efi --no-uefi-secure-boot --bootloader-id=grub --efi-directory=/mnt --boot-directory=/mnt
- normalerweise wird grub in das UEFI Bootmenü eingetragen, also in den nichtflüchtigen Speicher des Mainboards und wenn man das ganze von Debian aus macht, mit dem Namen „Debian“. Um dem Eintrag einen anderen Namen zu geben gibt es die Option --bootloader-id.
Das ganze passiert aber nur, wenn das Debian bereits im UEFI-Modus gebootet ist/wird. - wird Debian noch nicht im UEFI-Modus gebootet, können die Optionen --removable oder --force-extra-removable helfen. Dann wird das grub-Image auf der ESP nach »/boot/efi/EFI/BOOT/BOOTX64.efi« kopiert, von wo grub dann üblicherweise auch manuell erstellten Booteintrag booten können.
- das --boot-directory unterscheidet sich bei mir auch von grubenlichts Variante. In dem Unterverzeichnis »grub« dieses Verzeichnisses werden die weiteren Dateien (Konfigurationsdatei, grub-Module, u. s. w.) gespeichert.
(Bei grubenlicht wie bei mir liegt alles von grub auf der ESP, nur eben bei mir in »/mnt/grub« und bei grubenlicht in »/mnt/boot/grub«.)
In der Konfigurationsdatei trage ich dann übrigens nicht direkt das Kernelimage wie /boot/vmlinuz-6.5.0-0.deb12.4-amd64 und die initrd ein sondern den symbolischen Link, der in / darauf erstellt wird (/vmlinuz und /initrd.img). Dann muss die Konfiguration nicht bei jedem Kernelupdate angepasst werden und mit dem Zusatz .old gibt es auch noch passende Links für den vorigen Kernel.
Die Konfigrationsdatei »/mnt/grub/grub.cfg« kann dann recht übersichtlich aussehen:
Code: Alles auswählen
insmod all_video
insmod part_gpt
insmod ext2
insmod gfxterm
insmod gettext
set locale_dir=$prefix/locale
set gfxmode=1920x1200
set gfxpayload=keep
set timeout=2
terminal_output gfxterm
loadfont $prefix/fonts/unicode.pf2
set uuid=uuid_des_/_Dateisystems
menuentry 'Debian GNU/Linux (bookworm)' --class debian {
search --no-floppy --fs-uuid --set=root $uuid
linux /vmlinuz root=UUID=$uuid ro quiet loglevel=2
initrd /initrd.img
}
menuentry 'Firmware setup' {
insmod efifwsetup
fwsetup
}
menuentry 'Reboot system' --class system {
reboot
}