Hetzner - DokuWiki

Hetzner Rescue-System

Inhaltsverzeichnis

Was ist das Hetzner Rescue-System?

Das Rescue-System ist ein minimales Linux-System, das bei Bedarf von einem Hetzner-Bootserver im Netzwerk gestartet werden kann. Es läuft vollkommen ohne Verwendung der lokalen Festplatten im Arbeitsspeicher Ihres Servers, so dass man den vollen Zugriff auf die Festplatten hat und z.B. Dateisysteme reparieren oder ein neues Betriebssystem installieren kann. Das Rescue-System basiert auf Debian Linux und enthält viele nützliche Werkzeuge die u.a. zur Reparatur eines beschädigten Systems nötig sind. Darüber hinaus können im Rescue-System ganz einfach beliebige Debian-Pakete nachinstalliert werden.


Wie startet man das Rescue-System?

Das Rescue-System wird aus dem Hetzner Robot aktiviert. Dort wählt man in der Serverübersicht (Menüpunkt "Server" -> Klick auf den gewünschten Server) den Menüpunkt "Rescue" aus. Dort kann man dann das Rescue System für jeden eigenen Server aktivieren. Nachdem man das Rescue-System aktiviert hat, bekommt man ein automatisch generiertes Passwort mitgeteilt. Dieses unbedingt merken, denn dies ist das root-Passwort für das Rescue System.

Wenn man allerdings ein 64-Bit System hat und in dieses "chroot"-en will (unten beschrieben), so sollte man dazu das 64-Bit-System auswählen.

Danach muss man noch einen Reboot ausführen, der Server bootet dann das Rescue-System vom Netzwerk anstatt von der Festplatte.

Das geht

  • entweder über die Console mit dem Befehl "shutdown -r NOW" oder einfach "reboot"
  • oder über das Reboot-Interface im Hetzner Robot
  • oder über einen manuellen Reboot durch einen Techniker von Hetzner (rund um die Uhr in allen Rechenzentren außer RZ6 und 7, hier nur innerhalb der Geschäftszeiten, zur Zeit: Montag bis Freitag zwischen 06:30 und 22:45 Uhr und Samstag zwischen 10:00 und 17:00 Uhr)


Nach dem Reboot kann man sich dann über die normale IP-Adresse des Servers mit dem Rescue-System verbinden und sich als Benutzer root mit dem vorher notierten Passwort einloggen.


Wenn Sie mit der Console gut vertraut sind, werden Sie die folgenden Tipps vermutlich nicht benötigen.

Wie kommt man an die Daten des Servers?

Um die Festplatte wieder zu mounten tut man nun Folgendes (Beispiel an einem EQ Server:
Achtung! Bei Servern, die noch die alten IDE-Treiber statt libata verwenden bzw. kein Software-RAID haben, muss es /dev/hda2 statt /dev/md2 heißen! Bei einem vServer und Servern ohne Software-RAID aber mit SATA Festplatten sollte es /dev/sda3' (bei älteren Installation /dev/sda2) sein.

  cd /mnt
  mkdir rescue
  mount -o ro /dev/md2 /mnt/rescue

beziehungsweise

  mount -o ro /dev/sda3 /mnt/rescue

nun ist die Festplatte "readonly" gemountet, man kann also nicht darauf schreiben. Wenn man auf der Festplatte aber schreiben muss, muss man sie statt dessen folgendermaßen mounten:

  mount /dev/md2 /mnt/rescue

beziehungsweise

  mount /dev/sda3 /mnt/rescue

Wenn man nicht nur an die Daten auf der Festplatte gelangen möchte, sondern am Kernel oder so etwas ändern möchste sollte man zusätzlich /dev und /proc nach /mnt/rescue mounten:

  mount --bind /dev /mnt/rescue/dev/
  mount --bind /proc /mnt/rescue/proc/
  mount --bind /sys /mnt/rescue/sys/
  # oder kürzer (mittels skript)
  chroot-prepare /mnt/rescue

nun kann man auch über

  chroot /mnt/rescue /bin/bash

direkt das gemountete Filesystem als Wurzel des Verzeichnisbaums ( / ) benutzen.

Wie führt man eine Überprüfung des Dateisystems ("filesystem check") durch?

Wenn Fehlermeldungen über das Dateisystem im Syslog stehen, oder einfach der Verdacht auf ein Problem des Filesystems besteht, kann man das Dateisystem überprüfen lassen. Dies sollte man aber im ungemounteten Zustand der Partitionen durchführen, da es sonst zu Datenverlust kommen kann. Folgendermaßen startet man den die Überprüfung (wieder Beispiel: EQ Server)

  fsck -C0 /dev/md2

Das -C0 zeigt Ihnen eine Fortschrittsbalken an. Für jeden Fehler, der repariert werden kann, werden Sie gefragt, ob die Korrektur ausgeführt werden soll. Falls sämtliche Korrektur automatisch ausgeführt werden soll, so kann die option -y verwendet werden:

  fsck -C0 -y /dev/md2


Um ganz auf der sichern Seite zu sein, kann man fsck auch direkt für den entsprechenden Dateisystemtyp aufrufen, zum Beispiel:

  fsck.ext3 /dev/md2
  fsck.ext2 /dev/md2
  ...

Anmerkung: Falls fsck mit "exited signal 11" abbricht, kann es helfen, die fsck Version des eigenen Systems und nicht des Rescue-Systems zu benutzen. Dazu die Root-Partition des Servers mounten und die Dateien für fsck in ein neues Verzeichnis des Rescue-Systems kopieren. Nicht vergessen, die Partition vor dem Filesystem Check mit "umount" wieder abzuhängen!

Die fsck Versionen für die verschiedenen Dateisysteme direkt aus dem neuen Verzeichns aufrufen, da ein Aufruf auch von "./fsck" die Versionen des Rescue-Systems startet. Also zum Beispiel:

  ./fsck.ext3 /dev/md2

Wie installiert man einen neuen Server aus dem Rescue-System heraus?

Hetzner bietet dafür ein komfortables, menügesteuertes Script mit dem Namen installimage zur Verfügung. Näheres kann man hier nachlesen: Betriebssystem Images installieren

Wie sichere ich die Partitionen meines Servers als Images verschlüsselt auf einen anderen Server?

Diese Kurzanleitung beschreibt, wie Partitionen mittels Rescue-System, sshfs und partimage auf einen anderen Server als Image kopiert werden.

Um ein fremdes Verzeichnis auf einem anderen Server via ssh zu mounten, muss auf dem Rescue-System sshfs installiert und das fuse-Modul geladen werden.

Vorgehensweise:

apt-get update
apt-get install sshfs
modprobe fuse

Jetzt kann ein Verzeichnis auf dem fremden Server verschlüsselt gemountet werden.

sshfs  username@remote.host:/verzeichnis/auf/remote/server/  /mnt

Eine Variante zur Absicherung der Partitionen ist partimage, welches auf dem Rescue-System schon vorinstalliert ist:

partimage

Das Programm partimage ist einfach aufgebaut und nahezu selbsterkärend. Oben wählt man die zu sichernde Partition aus, in der Mitte Imagedatei und Pfad, für dieses Beispiel also /mnt/irgendeinverzeichnis/1part für die erste Partition.

Alternativ zu sshfs kann, auch ein nfs- oder smbfs-Mount gewählt werden. Da auf einem Unix / Linux-Webserver selten Samba oder NFS installiert sind, ist sshfs wohl die beste Wahl, zumal verschlüsselt.

Statt mit partimage einzelne Partitionen zu kopieren, kann die gesamte Festplatte mit dd kopiert werden. Hierbei ist folgendes zu beachten: dd kopiert blockweise, bei fehlerhaften Blöcken bricht das Programm ab (sollte das der Fall sein, kann man dd_rescue verwenden). Wer if= und of= verwechselt, überschreibt versehentlich seine Daten. Zudem werden hier viel mehr (unnoetige) Daten kopiert, da dd auch unbenutzte Bereiche der Festplatte mitkopiert.

(Feedback bitte an gb@bramhoff.net, Gregor Bramhoff)

Root Passwort vergessen und nun?

Mit dem Rescue System kann ein neues Root Passwort vergeben werden.

Zuerst auf die eigene Platte mounten

 cd /mnt
 mkdir rescue
 mount /dev/md2 /mnt/rescue

Bei vServern mit einer Standardinstallation muss /dev/hda3 verwendet werden.

Dann root auf eigene Platte legen

 chroot /mnt/rescue

Nun

passwd

eingeben und neues Root Passwort vergeben. Dannn neu starten.

Wie mounte ich ein Softwareraid im Rescue-System?

Der Befehl

cat /proc/mdstat

zeigt die verfügbaren Softwareraid-Arrays an. Unter openSUSE 11.0 ist es u.U. möglich, dass einzelne Software-RAID-Partitionen manuell eingerichtet werden müssen, da Debian unter openSUSE 11.0 erstellte Software-RAID-Partitionen nicht ordentlich erkennt. Hierfür können Sie folgenden Befehl verwenden, den Sie nur noch entsprechend anpassen müssen:

mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1

Gemountet werden kann dann z.B. /dev/md0 wie folgt:

mount /dev/md0 /mnt

Alternative Rescue-Systeme

Zusätzlich zu dem Linux Rescue-System werden auch Rescue-Systeme für folgende Betriebssysteme angeboten:



© 2020. Hetzner Online GmbH. Alle Rechte vorbehalten.