Nicht mehr funktionierende Linux-Systeme retten

Firewalls, Virenscanner, ... zusätzliche Sicherheit
Benutzeravatar
robertgoedl
Administrator
Beiträge: 904
Registriert: Sa 10. Jul 2021, 01:47
Wohnort: Graz
Has thanked: 37 times
Been thanked: 453 times
Kontaktdaten:

Nicht mehr funktionierende Linux-Systeme retten

Beitrag von robertgoedl »

Ein nicht mehr funktionierendes Linux-System kann so einige Gründe haben. Man hat tief im System eine Konfiguration falsch vorgenommen, Microsoft Windows hat den Bootloader von Linux überschrieben, bei einem Update ist etwas gröber schiefgegangen (experimentelle Distributionen) oder ein Update wurde während seiner Ausführung abgebrochen, ...

Mit einem Live-System oder daneben installierten Linux-System lässt sich jedoch alles wieder zurechtbiegen. Dabei kann es sich um jede beliebige Linux-Distribution handeln, Sie können also mit openSUSE Debian retten, mit PCLinuxOS Gentoo und so weiter und so fort.

Um ein nicht mehr funktionierendes Linux-System zu retten, startet man also das gewünschte Live-System oder die daneben installierte Linux-Distribution und greift mittels "chroot" auf das nicht mehr lauffähige System zu.

Nötige Partitionen einhängen

Um auf einem nicht mehr funktionierenden Linux-System so arbeiten zu können wie, wenn es noch funktionieren würde, gilt es erst einmal die wichtigen Partitionen in das laufende System einzuhängen. Die wichtigste Partition ist natürlich die Systempartition "/" - also das Wurzelverzeichnis. Sie können die Bezeichnung als Administrator auf dem Terminal ermitteln (alle Befehle als root):

Code: Alles auswählen

fdisk -l
rescue.jpg
In meinem Fall wäre dies die Partition "/dev/nvme0n1p2". Handelt es sich um das Dateisystem "btrfs" gilt es das entsprechende Subvolume zu ermitteln:

Code: Alles auswählen

btrfs subvolume list PARTITION
Statt "PARTITION" geben Sie die entsprechende Partition an. Wurde die Systempartition ermittelt gilt es diese im laufenden System im Systemverzeichnis "/mnt" einzuhängen - zu mounten:

Code: Alles auswählen

mount /dev/nvme0n1p2 /mnt/
Mit einem BRTFS-Dateisystem:

Code: Alles auswählen

mount -o subvol=@ /dev/nvme0n1p2 /mnt/
Damit können wir auf das Dateisystem des nicht mehr funktionierenden Systems zugreifen. Geht es um die Reparatur oder die Neuinstallation des Bootloaders GRUB müssen Sie noch ein oder zwei weitere Partitionen einhängen - gibt es eine extra Partition namens "/boot" - hier ohne spezielle Angaben (btrfs, etc.):

Code: Alles auswählen

mount /dev/sda1 /mnt/boot
Im Falle eines EFI-(UEFI)-Systems:

Code: Alles auswählen

mount /dev/sda1 /mnt/boot/efi
Auf RAID-Systemen ermitteln Sie zu Beginn die Partitionen mit (Paket "mdadm"):

Code: Alles auswählen

mdadm --assemble --scan
Wir können nun auf die Dateisysteme zugreifen, um jedoch auch darauf arbeiten zu können wie in einem installierten System gilt es noch einige Verzeichnisse des aktuell laufenden Systems einzuhängen - die dazu nötigen Befehle können Sie übernehmen:

Code: Alles auswählen

mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys
mount -t proc /proc /mnt/proc
cp /proc/mounts /mnt/etc/mtab
Reparatur starten

Nun sind alle nötigen Verzeichnisse eingebunden, Sie können in das nicht laufende System wechseln (ebenfalls als root):

Code: Alles auswählen

chroot /mnt /bin/bash
Sie befinden Sie nun auf dem Terminal als Administrator im eigentlich nicht laufenden System, Sie brauchen also nicht mit "su" zu root (zum Administrator) werden oder mit "sudo" administrative Befehle starten.

Je nach Art der Reparatur gilt es nun die entsprechenden Befehle zu starten, Sie können sich etwa erst einmal die Log-Dateien anzeigen lassen via Systemd. Sie können die Reparatur defekter Pakete oder der Paket-Verwaltung anstoßen:

Code: Alles auswählen

apt update
apt install -f
apt upgrade
Sie können natürlich auch einen defekten oder überschriebenen Bootloader reparieren oder neu installieren:

Code: Alles auswählen

grub-install /dev/sda1
update-grub
(sda1 ist nur ein Beispiel). Bei UEFI-Systemen:

Code: Alles auswählen

grub-install
update-grub
Bei Fehlern:

Code: Alles auswählen

grub-install --recheck /dev/sda1
update-grub
(auch hier ist sda1 nur ein Beispiel). Wie gesagt, Sie können arbeiten wie, wenn das System wirklich laufen würde. Mittels Strg+d verlassen Sie das unter "chroot" laufende System. Zuletzt gilt es die eingehängten Partitionen auszuhängen:

Code: Alles auswählen

umount /mnt
Windows lässt sich mit einem U-Boot vergleichen - mach ein Fenster auf und die Probleme beginnen ...