====== Bootloader ======
===== Kernel Bootparameter ändern =====
Z.B. Kernel Argument ''nomodeset'' setzen:
==== grub2-mkconfig ====
=== openSuSE 12.3 ===
''/etc/default/grub'' :
Zeile ''GRUB_CMDLINE_LINUX_DEFAULT'' anpassen
''/boot/grub2/grub.cfg'' neu erstellen:
grub2-mkconfig --output=/boot/grub2/grub.cfg
=== debian (ab 6.0) ubuntu (14.04) ===
''/etc/default/grub'' :
Zeile ''GRUB_CMDLINE_LINUX_DEFAULT'' anpassen
''/boot/grub/grub.cfg'' neu erstellen:
grub-mkconfig --output=/boot/grub/grub.cfg
==== grubby ====
=== CentOS (bis 7) ===
Anzeigen der Konfiguration des Bootmanagers
grubby --info=ALL
Eine Option zum Default-Kernel hinzufügen (hier: SELinux ausschalten)
grubby --args="enforcing=0" --update-kernel="$(grubby --default-kernel)"
Optionen vom Default-Kernel entfernen (hier: Unterdrückung der Kernel-Meldungen ausschalten)
grubby --remove-args="rhgb quiet" --update-kernel="$(grubby --default-kernel)"
=== CentOS (8) ===
Unter Centos 8 aktualisiert ''grubby'' nur noch die Konfigurationsdateien von Fedoras Variante der BootLoaderSpec (BLS) in ''/boot/loader/entries''. Das bedeutet, dass die Änderungen keine Auswirkung haben, wenn
…
GRUB_ENABLE_BLSCFG=false
…
gesetzt ist. (( siehe auch https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault ))
===== grub2 =====
==== Grub2 in den MBR installieren ====
=== CentOS 7 ===
yum install grub2
=== Debian (ab 6.0) Ubuntu (ab 14.04) ===
apt-get install grub-pc
update-grub2
grub-install /dev/sda
=== openSuSE 12.2 ===
update-bootloader
grub2-install /dev/sda
==== Grub2 mit Passwort absichern ====
=== Root Passwort ändern ===
Grub Bootprompt: ''init=/bin/bash'' als Parameter zum Linux Kernel hinzufügen, evtl. ''ro'', ''quiet'' und ''splash=silent'' entfernen. (( siehe
man bootparam
))
Kernel mit ''strg+x'' booten
mount -o remount,rw /
passwd
++++ bei Systemem mit SELinux |
touch /.autorelabel
++++
exec /sbin/init
=== Grub absichern ===
(( Weitere Absicherungsmöglichkeiten:
http://0pointer.net/blog/unlocking-luks2-volumes-with-tpm2-fido2-pkcs11-security-hardware-on-systemd-248.html
))
== Passwort-Hash erzeugen ==
CentOS (ab 7), Rocky, openSuSE Leap (ab 15.1):
grub2-mkpasswd-pbkdf2
Debian (ab 7), Ubuntu (ab 14.04):
grub-mkpasswd-pbkdf2
== Grub-Configdatei mit Passwort Hash anlegen ==
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.FF73A777C6793E117430446F4D12F00D25DA53515B5048B1DAAA0688743550226CD05AD661EBDCA2AA1997AEBDC0C35C74CA48C9309FBED1C201C5875E3AD2E8.292A1642CB109860054562756A5AE950975B586A8DFDE535F566D1ADDCC6747349406E84862FFD9258F64268A36E63EF25A41A3CC0CD6291E63D98CEDDF00FE6
chmod +x /etc/grub.d/45_password
Alternativ einfach in /boot/grub/custom.cfg (in diesem Fall muss danach kein update-grub ausgeführt werden):
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.FF73A777C6793E117430446F4D12F00D25DA53515B5048B1DAAA0688743550226CD05AD661EBDCA2AA1997AEBDC0C35C74CA48C9309FBED1C201C5875E3AD2E8.292A1642CB109860054562756A5AE950975B586A8DFDE535F566D1ADDCC6747349406E84862FFD9258F64268A36E63EF25A41A3CC0CD6291E63D98CEDDF00FE6
== Auswahl ermöglichen, editieren absichern (Standard auf Rocky)==
...
CLASS="--class gnu-linux --class gnu --class os --unrestricted"
...
== grub Konfigurationsdatei neu erzeugen ==
Für BIOS-Systeme:
Debian (ab 6), Ubuntu (ab 14.04):
grub-mkconfig -o /boot/grub/grub.cfg
# oder
update-grub
CentOS (ab 7), Rocky, openSuSE (ab Leap 15.1):
grub2-mkconfig -o /boot/grub2/grub.cfg
Für UEFI-Systeme:
Debian, Ubuntu, openSuSE: wie bei BIOS-Systemen
CentOS (8)
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
Rocky
grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
== testen ==
Debian (ab 6), Ubuntu (14.04), CentOS (ab 7):
grep -E 'superusers|password_pbkdf2' /boot/grub*/grub.cfg
reboot
=== Doku ===
* https://www.gnu.org/software/grub/manual/html_node/Security.html
==== Grub2 ohne Konfigurationsdatei von Hand starten ====
Notfall: der Rechner bootet nicht, sondern begrüßt uns mit einem freundlichen ''grub> _''
Weist Du noch, welche Dateisysteme Dein System verwendet? (Im Zweifel einfach alle Dateisystem-Module laden)
insmod ext2
insmod xfs
Welche Storage Verwaltung verwendet Dein System? (Im Zweifel einfach alle laden)
insmod lvm
insmod mdraid09
insmod mdraid1x
Laufwerke anzeigen, die grub jetzt sieht:
ls
Partition/Laufwerk finden, auf dem Kernel (''vmlinuz…'') und Initrd liegen. Tab-Taste hilft ...
ls (hd0,msdos1)/
Grub-root setzen:
set root=(hd0,msdos1)
Partition/Laufwerk finden, auf dem das Linux root-Dateisystem liegt (''etc/'', ''bin/'', …). Tab-Taste hilft ...
ls (lvm/centos-root)/
Kernel zum Boot vorbereiten:
linux /vmlinuz-… root=/dev/mapper/centos-root ro
Initrd zum Boot vorbereiten:
initrd /initramfs-…
Booten:
boot
===== grub =====
==== Grub in den MBR installieren ====
=== Debian ===
grub-install /dev/sda
oder
grub
device (hd0) /dev/sda
root (hd0,0)
setup (hd0)
quit
update-grub
=== SuSE ===
grub-install /dev/sda
oder
grub
device (hd0) /dev/sda
root (hd0,0)
setup (hd0)
quit
==== Neuen Kernel testen ====
System rebooten, und einmalig den 3. Eintrag ( grub fängt bei 0 an zu zählen ... ) aus ''/boot/grub/menu.lst'' verwenden:
SuSE:
grubonce 2
Debian:
grub-reboot 2
==== Grub mit Passwort absichern ====
=== Root Passwort ändern ===
Grub Bootprompt: ''init=/bin/bash'' hinzufügen
Kernel mit ''b'' booten
mount -o remount,rw /
passwd
mount -o remount,ro /
exec /sbin/init
=== Grub absichern ===
/sbin/grub-md5-crypt
''/boot/grub/menu.lst'' :
password --md5 $1$ZkniA/$2EBU5eSONAj.i2KIhhtWA0
===== Bootloader im MBR löschen =====
dd if=/dev/zero of=/dev/sda bs=$((512-64)) count=1
===== Dokus & Links =====
* http://wiki.ubuntuusers.de/grub_2/konfiguration