https://wiki.archlinux.de/api.php?action=feedcontributions&user=Baerbeisser&feedformat=atomwiki.archlinux.de - Benutzerbeiträge [de]2024-03-28T10:47:30ZBenutzerbeiträgeMediaWiki 1.41.0https://wiki.archlinux.de/index.php?title=Chroot_(Arch_reparieren)&diff=21468Chroot (Arch reparieren)2019-11-23T20:02:51Z<p>Baerbeisser: This is from https://forum.manjaro.org/t/howto-restore-an-unbootable-system-after-an-interrupted-kernel-update/33085. Without /dev/pts mounted, mkinitcpio overwrites the init of the Parent-OS.</p>
<hr />
<div>{{achtung|Verschlüsselte Dateisysteme können in einer Chrootumgebung nicht genutzt werden. Auch funktionieren hier einige systemd Dienste wie localectl und timedatectl nicht, da sie eine aktive dbus Verbindung benötigen.}}<br />
<br />
Startet das System nicht mehr oder ist das Root-Passwort abhanden gekommen, benötigt man den Zugriff von außen um es reparieren zu können.<br />
Dies kann von einem Installationsmedium oder von einem zweiten Linuxsystem aus erfolgen. Dazu wird das zu reparierende System mit dem mount Befehl auf einem laufenden System eingehängt.<br />
Nach dem "Chrooten" arbeitet man auf dem ursprünglichen System und kann hier die notwendigen Korrekturen durchführen.<br />
Die Grundlagen für den [[mount]] und den [[chroot]] Befehl können in den weiterführenden Artikeln nachgelesen werden.<br />
<br />
== Mounten und Chrooten ==<br />
Die Abbildung zeigt die Situation. Der Pc ist vom Medium B gestartet worden. Das zu reparierende System A wird mit seinem Dateisystem auf B eingehängt (gemountet).<br />
Nach einem Chrooten kann dann wie gewohnt auf System A mit der Konsole gearbeitet und die nötigen Reparaturen vorgenommen werden.<br />
<br />
Sind die Systemordner des Systems A auf mehrere Partitionen verteilt, müssen diese ebenfalls mit {{ic|mount /dev/sdXY /mnt/Verzeichnis}} eingebunden werden. Mit Ausnahme von /home betrifft dies alle Partitionen die auch bei einem normalen Systemstart mit eingebunden worden wären. Gibt ein {{ic|fdisk -l}} nicht genügend Aufschluss, kann man sich die jeweiligen Einhängepunkte in der {{ic|/etc/fstab}} Datei ansehen. Diese ist nach dem Mounten des Wurzelverzeichnisses einsehbar. Eine Swap-Partition wird mittels {{ic|swapon /dev/sdXY}} eingebunden.<br />
<br />
[[Datei:Doppel-filesystem-mit-eingehängten-partitionen.png |right|System A wird in System B eingehängt.]]<br />
mount /dev/sdXY /mnt (obligat: Das root (/) vom root-file-system meistens /dev/sda1)<br />
mount /dev/sdXY /mnt/Verz. (optional nur bei zusätzlich eingehängten System Partitionen nötig.)<br />
mount -t proc proc /mnt/proc<br />
mount -t sysfs sys /mnt/sys<br />
mount -o bind /dev /mnt/dev<br />
mount -t devpts /dev/pts /mnt/dev/pts/<br />
swapon /dev/sdXY (optional: Empfohlen bei geringem Arbeitsspeicher)<br />
<br />
chroot /mnt /bin/bash<br />
<br />
Nach dem die erforderlichen Arbeiten (siehe unten) abgeschlossen sind, ist die Chrootumgebung mit {{ic|exit}} zu verlassen und die Ordner und Laufwerke wieder auszuhängen.<br />
Dies geschieht in umgekehrter Reihenfolge. Die Swap-Partition braucht dabei nicht extra ausgehängt zu werden.<br />
<br />
exit<br />
<br />
umount /mnt/dev/pts<br />
umount /mnt/dev<br />
umount /mnt/sys<br />
umount /mnt/proc<br />
umount /mnt/Verzeichnis (optional bei zusätzlich eingehängten System Partitionen)<br />
umount /mnt<br />
<br />
== arch-chroot ==<br />
arch-chroot ist Teil der {{paket|arch-install-scripts}}, gehört zur Grundinstallation und ist auf jedem Arch-Installationsmedium verfügbar.<br />
Das Skript automatisiert die Einbindung der api Verzeichnisse proc, sys und dev und chrootet danach. Zusätzlich macht es /etc/resolv.conf für die Chrootumgebung zugänglich, das für eine Netzwerkanbindung benötigt wird. Somit reduziert sich das Mounten auf die einzubindenden Partitionen. Der einfachste Fall wäre:<br />
<br />
mount /dev/sda1 /mnt<br />
arch-chroot /mnt<br />
<br />
Nach den erforderlichen Reparaturen, wird die "arch-chroot" mit dem {{ic|exit}} Befehl verlassen und die Partitionen werden in geeigneter Reihenfolge, erst alle Subdir's dann die Dir's (siehe oben) ausgehängt.<br />
<br />
exit<br />
umount /mnt<br />
<br />
== Arch reparieren ==<br />
=== Root Passwort vergessen ===<br />
Zum Erstellen des neuen Passwortes ist der Befehl {{ic|passwd}} anzuwenden.<br />
<br />
=== Fehlende Gruppenmitgliedschaften ===<br />
Hat sich der admin selbst ausgesperrt, können die fehlenden Gruppenzugehörigkeiten mit dem {{ic|adduser <user> <group>}} Befehl wieder hergestellt werden.<br />
<br />
=== Abgebrochenes Paketupdate ===<br />
Wurde dabei auch die Paketdatenbank beschädigt, solle diese gleich nach dem Mounten mit {{ic|rm /mnt/var/lib/pacman/db.lck}} gelöscht werden.<br />
Beschädigte core Pakete können mit dem Befehl {{ic|pacstrap /mnt base}} erneuert werden.<br />
Danach kann in die Chroot gewechselt werden und mit {{ic|pacman -Syyu}} das update durchgeführt werden. Wurde beim update der Kernel erneuert ist anschließend ein {{ic|mkinitcpio -p linux}} durchzuführen.<br />
<br />
=== Bootloader reparieren ===<br />
Zur Wiederherstellung des Bootloader wird auf die Artikel [[Grub]] und [[Syslinux]] verwiesen.<br />
* Hinweis: Meist befindet sich der Bootmanager auf einer eigenen Partition ([[UEFI]], [[gpt]]). Diese wird vor dem Chrooten mit eingebunden.<br />
<br />
== "Sauberes" Verlassen der Chroot ==<br />
Treten beim Unmounten Fehlermeldungen auf, sollte man alles erneut Mounten. Die Chrootumgebung erneut starten um die evt. hier noch laufenden Prozesse zu beenden.<br />
<br />
== Siehe auch ==<br />
* [[mount]]<br />
* [[chroot]]<br />
<br />
== Weblinks ==<br />
* [https://help.ubuntu.com/community/BasicChroot BasicChroot]{{sprache|en}}<br />
* [https://help.ubuntu.com/community/LiveCdRecovery LiveCDRecovery]{{sprache|en}}<br />
* [http://www.archlinux.org/packages/?q=schroot schroot] {{sprache|en}} – {{ic|chroot}} ohne root-Rechte haben zu müssen.<br />
* [http://linuxwiki.de/chroot chroot im LinuxWiki] {{sprache|de}}<br />
* [http://hp.kairaven.de/scpsftp/ssh-rssh-sftp.html SSH (scp) im Chroot] {{sprache|de}}<br />
<br />
[[Kategorie:Grundlagen]]<br />
[[Kategorie:Systemverwaltung]]<br />
[[Kategorie:Konsole]]<br />
[[Kategorie:Befehle]]<br />
[[en:Change Root]]</div>Baerbeisser