Backup und Restore mit Knoppix-CD

(1041 Worte insgesamt im Text)
(14307 mal aufgerufen)  Druckerfreundliche Ansicht [1]

Letzte Änderung: 07.01.2008
Die Idee zu diesem Artikel lieferte eine Mail von Michael Wagner in der Mailingliste Schulen-ans-Netz. Mehr dazu in der Vorgeschichte.

Inhalt


Vorgeschichte

Hier in leicht umgeschriebener Form die Email von Michael Wagner. situation

Situation

Ich versuche derzeit für die Grundschule meiner Tochter einen Linuxserver aufzusetzen und probiere verschiedene Client-Versionen aus. Es sind ziemlich viele alte Rechner (teilweise habe ich sie aus Schrott zusammengebaut) und die Lehrer haben einen "ziemlichen Abstand zu PCs". Durch die Hardware läuft auf allen Clients Win98. Ich kenne die PC-Niederungen noch aus DOS-Zeiten ganz gut, bin dann zum Windows-Maus-Schubser geworden, Linux ist für mich Neuland. ziel

Ziel

Zerschossene PCs müssen von Laien mit minimalem Aufwand aus Images vom Server wieder herstellbar sein. Geld darf es nicht kosten, denn die wenigen vorhandenen Euros brauchen wir für die Verkabelung. ansatz

Ansatz

Lösungen mit lokalen Anteilen (z.B. Images auf anderen Partitionen) will ich nicht haben, damit die Lösung auch funktioniert, wenn eine Festplatte kaputt geht (siehe alte Hardware). Außerdem sind die Festplatten teilweise zu klein. Die Images sollen auf dem Server liegen, damit sie auch größer sein können als 700 MB. Auch die Image-Software soll dort liegen, damit Anpassungen, Änderungen nicht auf CDs verteilt werden müssen.

Gedachter Ablauf: Der PC bootet von CD, Hardware und Netzwerk wird automatisch erkannt, Verbindung zu Arktur hergestellt und durch Eingabe eines einfachen Befehls und der PC-Nummer wird der PC schnell wieder hergestellt. stand

Aktueller Stand

Für die Images habe ich auf der zweiten Festplatte ein pc_bkp-Verzeichnis angelegt, das ich über Samba [11] für den User adm freigegeben habe. Beim Export für ein normales mount hatte ich Probleme mit Schreibzugriffen. In dem Verzeichnis liegt partimage, einige Skripte, um die Bedienung einfach zu machen und eine Ebene tiefer die Images.

Kostenlose Windows-basierte Image-Software habe ich nicht gefunden. Damit bleiben auch die Boot-Tools von Bart Lagerweij aussen vor. Auch Acronis' TrueImage kostet Geld, außerdem ist die Hardware-Erkennung schlechter als die von Knoppix. Die Hardware-Erkennung der SysRescueCD (www.sysresccd.org) kam ebenfalls nicht an Knoppix ran.

Also booten mit Knoppicillin (c't-Version), erkennt Hardware und Netzwerk und bekommt eine IP-Adresse via DHCP. Leider hat man immer noch einige Menüpunkte und Tastendrücke, bis man auf der Konsole landet.

Als ImageTool funktioniert partimage am besten. Wenn man das Image-Verzeichnis auf dem Server mountet, kann man auch auf den partimage-Daemon verzichten, der noch einige Macken hat. Es geht ziemlich zügig, ca. 2 min für ImageRestore und ca. 8-10 min für ImageCreate einer normalen Win98-Installation (knapp 500 MB). Partimage komprimiert dabei den belegten Plattenplatz etwa auf die Hälfte. Außerdem läßt es sich prima von der Kommandozeile steuern. zusatz

Zusatzeffekte

Zusammen mit parted kann ich auch eine fertige Installation auf andere, vollkommen unterschiedliche Rechner klonen: Partition mit parted auf knapp oberhalb benötigtem Platz verkleinern, mit partimage als Image sichern, Vorlage-Partition mit parted wieder auf alte Größe zurückstellen, Image auf neuem PC aufspielen, Partition auf vorhandene Plattengröße aufziehen, PC neu booten und evtl. bei der Hardware-Erkennung ein paar Treiber aktualisieren.

Geht tausendmal schneller als jeden Rechner mit allen Programmen neu installieren und alle Konfigurationsschritte nachzuvollziehen. (Ich probiere gerade an Mozilla versus Firefox + Thunderbird auf verschiedenen Rechnern herum, da ist das Gold wert).

Umsetzung

Verwendete Skripte

Das erste Skript lautet iinit und soll notwendige Schritte beim Start durchführen.

#!/bin/bash
echo " Notwendige Initialisierungen "
export PATH=$PATH:/mnt/test
cd /mnt/test
ihelp

Das Skript ruft dann als nächstes die Hilfedatei auf:
echo " Liste der verfuegbaren Befehle "
echo "iinit = Fuehrt die notwendigen Befehle beim Starten durch"
echo "ilist = Listet alle verfuegbaren PC-Images auf"
echo "iinfo ImageName = Zeigt Informationen ueber das Image ImageName an"
echo "iload ImageName = Uebertraegt das Image ImageName auf den PC"
echo "isave ImageName = Sichert die Festplatte des PCs als Image ImageName"
echo "idel ImageName = Loescht das Image ImageName auf dem Server"
echo "ihelp = Diese Hilfe-Datei"
echo " Shift-PageUp blaettert nach oben "

Das Skript ilist:
echo " Liste der verfuegbaren Images " ls -R -A /mnt/test/images echo " Shift-PageUp blaettert nach oben "

Das Skript iinfo:
if [ "$1" = "" ]; then
echo "Bitte geben Sie den Namen des Images an!"
else
if [ -e /mnt/test/images/$1 ]; then
/mnt/test/partimage imginfo /mnt/test/images/$1
else
echo "Kann Image " $1 " nicht finden!"
fi
fi

Das Skript iload:
if [ "$1" = "" ]; then
echo "Bitte geben Sie den Namen des Images an!"
else
if [ -e /mnt/test/images/$1 ]; then
/mnt/test/partimage -f3 -b restore /dev/hda1 /mnt/test/images/$1
else
echo "Kann Image " $1 " nicht finden!"
fi
fi

Das Skript isave:
if [ "$1" = "" ]; then
echo "Bitte geben Sie den Namen des Images an!"
else
if [ -e /mnt/test/images/$1 ]; then
echo "Image " $1 " existiert bereits! Bitte zuerst mit ./idel "$1 "loeschen."
else
/mnt/test/partimage -z1 -b save /dev/hda1 /mnt/test/images/$1
mv /mnt/test/images/$1.000 /mnt/test/images/$1
fi
fi

Das Skript idel:
if [ "$1" = "" ]; then
echo "Bitte geben Sie den Namen des zu loeschenden Images an!"
else
if [ -e /mnt/test/images/$1 ]; then
rm /mnt/test/images/$1
else
echo "Kann Image " $1 " nicht finden !"
fi
fi

Detaillierter Ablauf

Mit Knoppicillin oder Knoppix booten, sich zur dann Shell durchhangeln. Anschließend folgende Befehle als root eingeben:
smbmount //pdc-server/pc_bkp /mnt/test -o username=adm password = xxx /mnt/test/iinit
sh /mnt/test/iinit

Jetzt muss man z.B. nur
sh iload pc022

eingeben, um einen PC wiederzubeleben.


  

[ zurück zu Backup [12] | Index [13] ]

Kommentare

Einen Kommentar hinzufügen


Links
  [1] http://www.linux-schulserver.de/index.php?name=Sections&req=viewarticle&artid=40&allpages=1&theme=Printer
  [2] http://www.linux-schulserver.de/Sections-article40-p1.phtml#vorgeschichte
  [3] http://www.linux-schulserver.de/Sections-article40-p1.phtml#situation
  [4] http://www.linux-schulserver.de/Sections-article40-p1.phtml#ziel
  [5] http://www.linux-schulserver.de/Sections-article40-p1.phtml#ansatz
  [6] http://www.linux-schulserver.de/Sections-article40-p1.phtml#stand
  [7] http://www.linux-schulserver.de/Sections-article40-p1.phtml#zusatz
  [8] http://www.linux-schulserver.de/Sections-article40-p1.phtml#Umsetzung
  [9] http://www.linux-schulserver.de/Sections-article40-p1.phtml#skripte
  [10] http://www.linux-schulserver.de/Sections-article40-p1.phtml#ablauf
  [11] http://www.samba.org/
  [12] http://www.linux-schulserver.de/index.php?name=Sections&req=listarticles&secid=2
  [13] http://www.linux-schulserver.de/index.php?name=Sections