Erweiterte Nutzung der "Rettungskonsole" (Rescue System) mittels "Changeroot"

Status
Für weitere Antworten geschlossen.

Rain_Maker

Administrator
Teammitglied
Erweiterte Nutzung der "Rettungskonsole" (Rescue System) mittels "Changeroot"

Hallo zusammen,

Im folgenden, kleinen HowTo möchte ich vorstellen, wie man mittels des "Rescue Systems" (oder auch einer LIVE-CD wie Knoppix) seine SuSE wieder auf die Beine bekommt, wobei ich auch eine sehr elegante Methode vorstellen möchte, wie man an einen funktionierenden Yast herankommt.

Diese Methode sollte vom Prinzip her auch auf jedem beliebigen anderen (Linux)-System funktionieren, ich werde mich aber auf das Booten von der SuSE Installations-CD/DVD und auf das Starten von Yast nach einem "Changeroot" konzentrieren.
Diese Vorgehensweise stellt eine wertvolle Ergänzung zur automatischen Systemreparatur von der CD/DVD dar und ermöglicht bei geringem Mehraufwand deutlich mehr Optionen.

Der "Auslöser" zu diesem HowTo kann hier nachgelesen werden,

http://www.pc-forum24.de/showthread.php?t=861

es kann aber auch bei Problemen mit dem Bootloader einem vergessenen Root-Passwort oder ähnlichen "Missgeschicken" von großem Nutzen sein.

Teile dieses HowTos sind aus obigem Thread kopiert (ich bin schließlich keine Tippse *g*).

1. Das Prinzip:

1.1. Booten eines minimalen Linuxsystems, bei dem wir einfach zu root werden können.

1.2. Einbinden der Root-Partition ( "/" ) der installierten SuSE im Minimalsystem als root des Minimalsystems.

1.3. Sogenanntes "Changeroot", d.h. wir sagen dem laufenden Minimalsystem als root es solle ab sofort eine andere Partition als Root-Partition verwenden.

1.4. Nun sind wir root auf unserer SuSE und können einen textbasierten Yast aufrufen und das jeweilige Missgeschick beseitigen.

1.5. Nach dem Schliessen von Yast machen wir wieder ein Changeroot auf unser Minimalsystem und hängen brav die Root-Partition von SuSE aus, damit alles seine Richtigkeit hat.

1.6. Reboot und (wenn man alles richtig gemacht hat) ist alles wieder in Ordnung.

2. Vorarbeiten:

2.1. Herausfinden, welche Hardwareadresse die Root-Partiton hat, es geht um /dev/irgendwas, die braucht man UNBEDINGT ...


Code:
cat /etc/fstab
.. und die entsprechende Adresse notieren.

Beispiel (meine Kiste, SuSE 10.0 läuft hier gerade):

Code:
cat /etc/fstab
/dev/hda5       /       reiserfs        acl,user_xattr 1 1
/dev/hda6       /home   reiserfs        defaults 1 2
..........
Wie man sieht, ist die Root-Partition meiner 10.0 /dev/hda5.

Sollte SuSE nicht mehr lauffähig sein, dann kann man Knoppix (o.ä.) booten und nach Mounten der entsprechenden Partition bei Punkt 3.5. weitermachen oder sich dort die /etc/fstab anzeigen lassen und wieder von vorne beginnen.

2.2. Dieses HowTo griffbereit haben (Ausdruck oder auf einem anderen Rechner anzeigen lassen) falls man noch nicht so "fit" in der shell ist.

3. Und los gehts:

3.1. Rechner mit der Installations-CD/DVD von SuSE Booten (es muss nichtmal die CD/DVD der installierten Version sein, aber das nur mal am Rande).

3.2. Bei der Auswahl nimmt man Rescue System.

blog.stefanreisinger.net » Bilder

und bootet die Kiste.

3.3. Am Rescue-Login tippt man als Nutzerkennung root ein, es wird kein Passwort verlangt.

3.4. Nun hat man ein Minimalsystem, welches aber a) "nur" die wichtigsten shell-Tools hat (das ist allerdings ne ganze Menge, nur mal so am Rande) und b) (und das ist der eigentliche Punkt) nur im RAM bzw. von CD/DVD läuft und deshalb zunächst keinen Zugriff auf die Festplatte bietet. Das ändern wir jetzt, indem wir die Root-Partition mounten. Wenn man

Code:
ls
eingibt, dann sieht man, daß ein Ordner /mnt vorhanden ist, diesen verwenden wir jetzt als Mountpunkt.

Anmerkung: Wahrscheinlich hat man eine amerikanische Tastaturbelegung, / liegt auf der "-" Taste, während y und z vertauscht sind.

Code:
mount /dev/[i]HardwareadresseDeinerRootpartition[/i] /mnt
Nun sollte die Root-Partition unter /mnt gemountet worden sein, am besten man kontrolliert das, nicht, daß man die falsche Partition gemountet hat.

Code:
cd /mnt

ls
Es müsste nun der Inhalt der Root-Partiton zu sehen sein. (/bin /boot /usr usw.)

WICHTIG: Liegt /usr auf einer EXTRA-Partition, so ist diese als /mnt/usr/ zu mounten.

Gegebenenfalls muss hierzu noch der Ordner /mnt/usr/ erstellt werden..


Code:
mkdir /mnt/usr/
Noch ist das aber nur eine Datenpartition und theoretisch könnte man nun mit einem Texteditor in den config-Files rumfummeln, aber das wird sehr wahrscheinlich schief gehen, deshalb machen wir jetzt den wichtigsten Schritt.

3.5. Changeroot zu /mnt.

Code:
chroot /mnt
Ab sofort sieht unser Minimalsystem /mnt als Root-Partition an und wir können die dort vorhandenen Tools verwenden, wie z.B. auch Yast.
Da allerdings beim Start in das Rescue-System nur ein Minimalkernel läuft, sollte man sich auf ein reines Arbeiten in der shell beschränken.

Es könnte sein, daß man ab sofort eine deutsche Tastaturbelegung hat, also aufgepasst.

Anmerkung: Nun versteht der geneigte Leser vielleicht auch, warum ich geschrieben habe, daß das prinzipiell auch mit Knoppix oder einer anderen Live-CD geht, es müsste sogar möglich sein, durch ein Changeroot in einem laufenden Linux-System auf ein anderes, installiertes Linux-System "umzuschalten".

3.6. Aufrufen des "Kommandozeilen-Yast"

Code:
yast
Dieser Yast funktioniert GENAUSO wie der graphische "yast2", nur ist man eben auf Pfeil- Tab- und Leertaste angewiesen, da es keine Mausunterstützung gibt.

Trotzdem ist es eine sehr komfortable Lösung und sicher gerade für einen Newbie einfacher als das "Herumfrickeln" in Config-Files mittels Texteditor.

3.7. Nun kann man in Yast sich an das Reparieren des jeweiligen "Missgeschicks" machen.

Nach Änderung der Konfiguration(en) Yast beenden und nachsehen, ob er "SuSEconfig" ausführt, wenn man sich nicht sicher ist, dann selbst ausführen:
Code:
SuSEconfig
3.8. Raus aus dem Chroot und zurück auf das Minimalsystem.

Code:
exit
3.9. Aushängen der Root-Partition.

Code:
umount /dev/[i]HardwareadresseDeinerRootpartition[/i]
Anmerkung:

- Hier könnte ein umount /mnt sogar funktionieren, aber da bin ich mir nicht sicher, über die Hardwareadresse WIRD es funktionieren.

- Um noch einmal kurz die "Power" der shell zu zeigen: Ich habe das ja ausprobiert und ich habe den Befehl oben NICHT vollständig abgetippt, sondern bin mit der "Pfeil nach Oben"-Taste in der sogenannten "Bash-History" so weit zurück gegangen, bis ich den Mount-Befehl aus Punkt 4 hatte und dann mit der Taste "Pos1" bzw. der "Pfeil nach links"-Taste an den Anfang und einfach das "u" davor gesetzt.


3.10. Runterfahren/Neustart des Systems.

Code:
shutdown -h now
-h steht für "halt" --> Runterfahren.

oder

Code:
shutdown -r now
-r steht für Reboot, das "now" steht übrigens für unverzüglich (Surprise, Surprise).

Auch ein

Code:
halt
oder ein

Code:
reboot
würden funktionieren (ich denke ich muss hier NICHT erklären, was die beiden Befehle machen, oder?).

4. Ist das nicht eine Sicherheitslücke?

Prinzipiell ja, wenn auch nur eine "lokale", denn man muss dazu ja physikalischen Zugriff haben (mit anderen Worten "an der Kiste sitzen") und des weiteren, gilt das ja für JEDES installierte System, welches mir ermöglicht, von einem externen Medium zu booten. Wenn man ein System gegen diesen "Angriff" absichern möchte, dann muss man sowohl die Möglichkeit des Bootens von CD/DVD/USB verhindern und ausserdem auch den Bootloader mit einem Passwort sichern (das geht übrigens). Der Haken an der Sache ist, daß die meisten BIOS nur Passwörter von 8 Zeichen erlauben, welche dementsprechend schnell geknackt sind. Ein richtig "sicherer" Rechner, der dies nicht ermöglicht ist meist gegen den physikalischen Zugriff gesichert und/oder hat keine Laufwerke für das Booten von externen Medien. Das ist dann auch vom eigentlich installierte System unabhängig.

Sollten irgendwelche Windows-"Spezialisten" meinen, unter ihrem OS könnte das nicht passieren, dann dürfen mir diese gerne 15 Minuten mit ihrem Rechner und einer Knoppix-CD geben und sich anschliessend an das Wiederherstellen ihres Systems machen *g*.
Der entscheidende Unterschied besteht darin, daß ich ein installiertes Linux-System mit dieser Methode meist retten kann, während man bei einem "artfremden" System noch maximal die wichtigen Daten retten kann, sofern der Linux-Kernel das verwendete Dateisystem unterstützt.

([Trollmode]By the way, kann Windows eigentlich nativ ext2/3 oder reiserfs zumindest lesen? [/Trollmode] ;) ).

So, nun viel Spaß beim Nachfrickeln.

Greetz,

RM

P.S. Thx@Tron für Hilfe/Erklärungen
 
Status
Für weitere Antworten geschlossen.
Oben