Zum Inhalt springen

Ein defektes Linux-System mit Chroot über eine Live-CD/ISO beheben

23. Oktober 2024 durch
Christian Lisec
ACHTUNG! Das Ausführen jeglicher Befehlszeilen in diesem Beitrag erfolgt auf eigene Gefahr und ist keine Garantie dafür, dass ihre Daten unbeschädigt bleiben!

Vielleicht hattest du eine Hardware-Panne, hast versehentlich etwas kaputt gemacht, oder ein fehlerhaftes Update hat das System gestört? Oft können diese Probleme behoben werden, indem du von einem funktionierenden Linux-System aus mit Chroot in das beschädigte System gelangst und die notwendigen Schritte unternimmst (wie z.B. Grub neu installieren, Kernel neu installieren, initramfs neu erstellen etc.).

Um in das defekte System zu gelangen, stelle zuerst sicher, dass dessen Dateisystem von deinem funktionierenden System zugänglich ist. Dies erreichst du oft am besten, indem du von einer Live-CD/USB/ISO bootest. Verwende am besten das gleiche Betriebssystem wie das des defekten Systems.

Vorbereitung

1. Stelle sicher, dass das defekte Dateisystem zugänglich ist, indem du es mit einem laufenden Linux-System verbindest.

2. Identifiziere die richtige erkannte Festplatte und dessen Partitionen zum Mounten. Verwende `fdisk -l`, um alle verbundenen Partitionen mehrerer Festplatten anzuzeigen.

Device             Start       End   Sectors   Size Type
/dev/nvme1nXp1      2048 109398015 109395968  52,2G Linux filesystem
/dev/nvme1nXp2 109408256 109524991    116736    57M EFI System
/dev/nvme1nXp3 109406208 109408255      2048     1M BIOS boot
/dev/nvme1nXp4 109524992 126138367  16613376   7,9G Linux swap
/dev/nvme1nXp5 126138368 976773119 850634752 405,6G Linux filesystem

In diesem Beispielfall ist die defekte Platte "/dev/nvme1nX" und das /home-Verzeichnis in der Partition /dev/nvme1nXp5 sowie die restlichen Root-Verzeichnisse in der Partition /dev/nvme1nXp1. Normalerweise sind alle benötigten Root-Verzeichnisse ausschließlich in einer Partition mit dem Typ "Linux filesystem" vorhanden.

Wenn du dir unsicher bist, welche Festplatte die richtige ist, kannst du mit folgendem Befehl herausfinden welche Festplatten bereits gemountet sind:

mount | grep ^/dev

3. Erstelle ein Mount-Verzeichnis und mounte das beschädigte Dateisystem.

mkdir /rescue
mount /dev/nvme1nXp5 /rescue
mount /dev/nvme1nXp1 /rescue

4. Mounte spezielle Verzeichnisse für die Chroot-Umgebung. Hier bitte beachten, dass je nach Live-CD andere Namen der speziellen Verzeichnisse vorhanden sind. (proc, sysfs und devpts)

mount -t proc proc /rescue/proc
mount -t sysfs sys /rescue/sys
mount -o bind /dev /rescue/dev
mount -t devpts pts /rescue/dev/pts

Chroot Ausführen

Greife nun in das defekte System zu

chroot /rescue

Behebe im Anschluss die Probleme nach deinen Möglichkeiten. Sobald du zufrieden bist, verlässt du die Chroot-Umgebung mit folgendem Befehl

exit

Unmounten

Wenn du den Rechner neustartest, ist kein manuelles Unmounten nötig, da alle Mounts beim Herunterfahren automatisch ausgehängt werden sollten. Alternativ hängst du die Verzeichnisse manuell in umgekehrter Reihenfolge aus

umount /rescue/dev/pts
umount /rescue/dev
umount /rescue/sys
umount /rescue/proc
umount /rescue


Christian Lisec 23. Oktober 2024
Diesen Beitrag teilen
Ihr dynamisches Snippet wird hier angezeigt ... Diese Meldung wird angezeigt, weil Sie weder einen Filter noch eine Vorlage zur Verwendung bereitgestellt haben