class: center, middle ![img33r](pinguin-krank.webp) ## Linux-Bootprobleme beheben ### Hauke Goos-Habermann #### https://weisheit.goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - *"Nicht der Weisheit letzter Schluß"* mit **beruflichen** oder **privaten Projekten** auf
tube.tchncs.de/c/ndwls
und
youtube.com/@nichtderweisheit
- Repariert gelegentlich Linux-System mit Bootproblemen. --- ### Vorbereitung 1 * Live-Linux booten (z.B.
Knoppix
) und bei Knoppix direkt beim Startbildschirm ```bash knoppix 2 ``` (Textmodus) eingeben. Bei anderen Live-Linuxen (z.B. Live-Installationsmedium) eine root-Shell starten. * Nun die richtige HDD/SSD mit der Partition des Betriebssystems ermitteln: ```bash parted -l ``` * Die Partition des Betriebssystems (z.B. an Größe und dem Dateisystem (ext3, ext4, ...) zu erkennen) finden. Der komplette Gerätename der Partition setzt sich aus ***/dev/[Festplattengerät][Partitionsnummer]*** zusammen. Also z.B. ***/dev/sda1*** oder ***/dev/nvme0n1p1***. * Im Live-Linux ein Verzeichnis zum Einhängen anlegen: ```bash mkdir /mnt/linux ``` --- ### Vorbereitung 2 * Die Partition im Verzeichnis einhängen: z.B. ```bash mount /dev/sda2 /mnt/linux mount /dev/nvme0n1p2 /mnt/linux ``` * In das gemountete Verzeichnis wechseln: ```bash cd /mnt/linux ``` * Pseudodateisysteme einbinden: ```bash mount -o bind /dev dev; mount -o bind /sys sys; mount -t proc /proc proc ``` * Das aktuelle System wechseln: ```bash chroot /mnt/linux ``` * BASH starten: ```bash bash ``` --- ### Vorbereitung 3 * Sicherstellen, daß das (neue) root-Dateisystem wirklich beschrieben werden kann: ```bash mount -o remount,rw / ``` * Bei UEFI-Systemen muß zusätzlich noch die EFI-Partition gemountet werden: ```bash mount /dev/sda1 /boot/efi mount /dev/nvme0n1p1 /boot/efi ``` --- ### grub-Bootmenü Hiermit kann die **grub-Konfiguration** neu erstellt werden. Je nach Distribution werden auch die anderen Partitionen/Platten nach weiteren Betriebssysteme durchsucht und diese ins **grub-Bootmenü** aufgenommen. ```bash update-grub ``` --- ### grub-Pakete neu installieren Welche grub-Pakete sind installiert? Ist **os-prober** installiert? ```bash dpkg --get-selections | grep grub dpkg --get-selections | grep os-prober ``` Pakete erneut installieren bei **UEFI-Systemen** z.B.: ```bash apt-get --reinstall install grub-common grub-efi-amd64 grub-efi-amd64-bin\ grub-efi-amd64-signed grub2-common ``` Pakete erneut installieren bei **BIOS-Systemen** z.B.: ```bash apt-get --reinstall install grub-common grub-pc os-prober ``` --- ### grub neu installieren Ggf. muß grub auch noch erneut an der richtigen Stelle installiert werden: ```bash grub-install ``` Oder mit Angabe der Zielfestplatte/-SSD: ```bash grub-install /dev/sda grub-install /dev/nvme0n1 ``` --- ### Wenn es noch immer nicht klappt... Bei UEFI-Systemen mit ```bash efibootmgr ``` die Einträge des EFI-Bootmenüs auflisten und ggf. anpassen. Anpassungsmöglichkeiten über ```bash efibootmgr --help ``` auflisten. Weitere Informationen: https://wiki.archlinux.org/title/GRUB --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de