Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
lpi1:bootloader [2019/10/31 09:59] 127.0.0.1 Externe Bearbeitung |
lpi1:bootloader [2025/07/23 12:57] (aktuell) |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Bootloader ====== | ====== Bootloader ====== | ||
| - | ===== Bootloader löschen ===== | + | ===== Kernel Bootparameter ändern ===== |
| - | dd if=/dev/zero of=/dev/sda bs=$((512-64)) count=1 | + | |
| - | + | ||
| - | ===== 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 | + | |
| - | + | ||
| - | ==== Kernel Bootparameter ändern ==== | + | |
| Z.B. Kernel Argument ''nomodeset'' setzen: | Z.B. Kernel Argument ''nomodeset'' setzen: | ||
| + | ==== grub2-mkconfig ==== | ||
| === openSuSE 12.3 === | === openSuSE 12.3 === | ||
| ''/etc/default/grub'' : | ''/etc/default/grub'' : | ||
| Zeile 25: | Zeile 9: | ||
| ''/boot/grub2/grub.cfg'' neu erstellen: | ''/boot/grub2/grub.cfg'' neu erstellen: | ||
| + | grub2-mkconfig | grub2-script-check | ||
| grub2-mkconfig --output=/boot/grub2/grub.cfg | grub2-mkconfig --output=/boot/grub2/grub.cfg | ||
| Zeile 35: | Zeile 20: | ||
| grub-mkconfig --output=/boot/grub/grub.cfg | grub-mkconfig --output=/boot/grub/grub.cfg | ||
| - | === centos (ab 7) === | + | ==== grubby ==== |
| - | siehe [[#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 | ||
| + | <file txt /etc/default/grub> | ||
| + | … | ||
| + | GRUB_ENABLE_BLSCFG=false | ||
| + | … | ||
| + | </file> | ||
| + | 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 ==== | ==== Grub2 mit Passwort absichern ==== | ||
| === Root Passwort ändern === | === Root Passwort ändern === | ||
| - | Grub Bootprompt: ''init=/bin/bash'' als Parameter zum Linux Kernel hinzufügen | + | 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 | Kernel mit ''strg+x'' booten | ||
| Zeile 46: | Zeile 64: | ||
| passwd | passwd | ||
| + | ++++ bei Systemem mit SELinux | | ||
| touch /.autorelabel | touch /.autorelabel | ||
| + | ++++ | ||
| - | ((nur bei Systemen mit aktiviertem SELinux notwendig)) | ||
| - | |||
| - | mount -o remount,ro / | ||
| exec /sbin/init | exec /sbin/init | ||
| === Grub absichern === | === Grub absichern === | ||
| - | == Passwort Hash erzeugen == | + | (( Unter Rocky Linux (ab 9) geht das einfacher: |
| - | Debian 6, CentOS 7: | + | grub2-setpassword |
| + | |||
| + | Bei anderen Distributionen: | ||
| + | |||
| + | <file txt /boot/grub/custom.cfg> | ||
| + | set superusers="root" | ||
| + | password_pbkdf2 root grub.pbkdf2.sha512.10000.FF73A777C6793E117430446F4D12F00D25DA53515B5048B1DAAA0688743550226CD05AD661EBDCA2AA1997AEBDC0C35C74CA48C9309FBED1C201C5875E3AD2E8.292A1642CB109860054562756A5AE950975B586A8DFDE535F566D1ADDCC6747349406E84862FFD9258F64268A36E63EF25A41A3CC0CD6291E63D98CEDDF00FE6 | ||
| + | </file> | ||
| + | |||
| + | In diesem Fall muss danach kein update-grub ausgeführt werden | ||
| + | |||
| + | |||
| + | |||
| + | 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 | grub2-mkpasswd-pbkdf2 | ||
| Zeile 61: | Zeile 96: | ||
| grub-mkpasswd-pbkdf2 | grub-mkpasswd-pbkdf2 | ||
| - | == Passwort Hash eintragen == | + | == Grub-Configdatei mit Passwort Hash anlegen == |
| <file txt /etc/grub.d/45_password> | <file txt /etc/grub.d/45_password> | ||
| #!/bin/sh | #!/bin/sh | ||
| Zeile 74: | Zeile 109: | ||
| chmod +x /etc/grub.d/45_password | chmod +x /etc/grub.d/45_password | ||
| - | == grub Konfigurationsdatei neu erzeugen == | + | == Auswahl ermöglichen, editieren absichern (Standard auf Rocky)== |
| - | Debian (ab 6), Ubuntu (14.04): | + | |
| - | grub-mkconfig -o /boot/grub/grub.cfg | + | |
| - | + | ||
| - | CentOS (7): | + | |
| - | grub2-mkconfig -o /boot/grub2/grub.cfg | + | |
| - | + | ||
| - | == Auswahl ermöglichen, editieren absichern == | + | |
| <file txt /etc/grub.d/10_linux> | <file txt /etc/grub.d/10_linux> | ||
| ... | ... | ||
| Zeile 87: | Zeile 115: | ||
| ... | ... | ||
| </file> | </file> | ||
| + | |||
| + | == 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 | grub2-script-check | ||
| + | grub2-mkconfig -o /boot/grub2/grub.cfg | ||
| + | |||
| + | Für UEFI-Systeme: | ||
| + | |||
| + | Debian, Ubuntu, openSuSE: wie bei BIOS-Systemen | ||
| + | |||
| + | Rocky (ab 9) (( | ||
| + | ''--update-bls-cmdline'' passt ''/etc/kernel/cmdline'' und ''/boot/loader/entries/*.conf'' an | ||
| + | )) | ||
| + | grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline | ||
| == testen == | == testen == | ||
| - | Debian (ab 6), Ubuntu (14.04): | + | Debian (ab 6), Ubuntu (14.04), CentOS (ab 7): |
| - | grep password /boot/grub/grub.cfg | + | grep -E 'superusers|password_pbkdf2' /boot/grub*/grub.cfg |
| - | reboot | + | |
| - | CentOS (7): | + | |
| - | grep password /boot/grub2/grub.cfg | + | |
| reboot | reboot | ||
| Zeile 99: | Zeile 145: | ||
| * https://www.gnu.org/software/grub/manual/html_node/Security.html | * https://www.gnu.org/software/grub/manual/html_node/Security.html | ||
| - | ===== grubby ===== | + | ==== Grub2 ohne Konfigurationsdatei von Hand starten ==== |
| - | Anzeigen der Konfiguration des Bootmanagers | + | Notfall: der Rechner bootet nicht, sondern begrüßt uns mit einem freundlichen ''grub> _'' |
| - | grubby --info=ALL | + | |
| - | Eine Option zum Default-Kernel hinzufügen (hier: SELinux ausschalten) | + | Weist Du noch, welche Dateisysteme Dein System verwendet? (Im Zweifel einfach alle Dateisystem-Module laden) |
| - | grubby --args="enforcing=0" --update-kernel="$(grubby --default-kernel)" | + | insmod ext2 |
| + | insmod xfs | ||
| - | Optionen vom Default-Kernel entfernen (hier: Unterdrückung der Kernel-Meldungen ausschalten) | + | Welche Storage Verwaltung verwendet Dein System? (Im Zweifel einfach alle laden) |
| - | grubby --remove-args="rhgb quiet" --update-kernel="$(grubby --default-kernel)" | + | 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 ===== | ||
| ==== Grub in den MBR installieren ==== | ==== Grub in den MBR installieren ==== | ||
| Zeile 158: | Zeile 226: | ||
| password --md5 $1$ZkniA/$2EBU5eSONAj.i2KIhhtWA0 | password --md5 $1$ZkniA/$2EBU5eSONAj.i2KIhhtWA0 | ||
| </file> | </file> | ||
| + | |||
| + | ===== Bootloader im MBR löschen ===== | ||
| + | dd if=/dev/zero of=/dev/sda bs=$((512-64)) count=1 | ||
| ===== Dokus & Links ===== | ===== Dokus & Links ===== | ||
| * http://wiki.ubuntuusers.de/grub_2/konfiguration | * http://wiki.ubuntuusers.de/grub_2/konfiguration | ||