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.
Inhaltsverzeichnis
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):
fdisk -l
In meinem Fall wäre dies die Partition „/dev/nvme0n1p2„. Handelt es sich um das Dateisystem „btrfs“ gilt es, das entsprechende Subvolume zu ermitteln:
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:
mount /dev/nvme0n1p2 /mnt/
Mit einem BRTFS-Dateisystem:
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.):
mount /dev/sda1 /mnt/boot
Im Falle eines EFI-(UEFI-)Systems:
mount /dev/sda1 /mnt/boot/efi
Auf RAID-Systemen ermitteln Sie zu Beginn die Partitionen mit (Paket „mdadm„):
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:
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):
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:
apt update
apt install -f
apt upgrade
Sie können natürlich auch einen defekten oder überschriebenen Bootloader reparieren oder neu installieren:
grub-install /dev/sda1
update-grub
(sda1 ist nur ein Beispiel). Bei UEFI-Systemen:
grub-install
update-grub
Bei Fehlern:
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:
umount /mnt
Erstveröffentlichung: Sa 28. Aug 2021, 08:58
Noch keine Reaktion