====== 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 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