[linux-l] Linux-Installation klonen
Lutz Willek
willek at gmx.de
Sa Jul 29 19:47:11 CEST 2006
Frank Lehmann wrote:
>>> Tach zusammen,
>>>
>>> ich würde gerne das Dateisystem meiner Linux-Distribution ändern,
[...]
> Ok. Meine Konfiguration ist wie folgt: Die Installation ist auf /dev/hda2, die home-Partition ist auf /dev/hda7 gemountet und Platz für die Kopie ist auf /dev/hda6. Dann beschränkt sich der Vorgang doch auf:
>
> mkdir /mnt/daten && mkdir /mnt/debian
> mount /dev/hda6 /mnt/daten
> mount /dev/hda2 /mnt/debian
> tar cjvf /mnt/hda6/Temp/debian-backup.tar.bz2 /mnt/debian
Im Prinzip ja, da ist nur eine kleine Falle... lies weiter
[...]
>> o Dann, tu, was immer Du willst: mkfs, cfdisk, ...
> mkfs.xfs /dev/hda2
> "Partition hda2 hat bereits ein anderes Dateisystem. Wollen Sie wirklich...?"
> Will ich wirklich?
Ja, Du willst. Ist ja schließlich der tiefere Sinn der ganzen Aktion
>> auf /dev/hda8. Zurückspielen geht so:
> Dann sollte das ja bei mir noch einfacher sein, da sich hoffentlich nichts verschoben hat. Also nur:
>
> tar xjvf /mnt/daten/Temp/debian-backup.tar.bz2
>
> Woher weiß tar, wohin es die Datei entpacken soll? Oder so?
>
> tar xjvf /mnt/daten/Temp/debian-backup.tar.bz2 /mnt/debian
Ne. Hier würde dann die Falle zuschnappen. Also tar packt normalerweise
relativ zum Verzeichnis aus, beim Einpacken entfernt es das erste / vor
den Dateien. Das klingt blöd, ist aber unheimlich nützlich. Ein Beispiel
ist hier besser, also du hast eine Datei "/home/benutzer/datei". Diese
Datei packen wir jetzt in ein tar, entpacken sie wieder und schauen was
dabei raus kommt:
benutzer at schneewittchen:~$ pwd
/home/benutzer
benutzer at schneewittchen:~$ touch datei
benutzer at schneewittchen:~$ ls -l
insgesamt 0
-rw-r--r-- 1 benutzer benutzer 0 2006-07-29 18:46 datei
## Wir sind also "benutzer" in unserem /home/benutzer und alles ist
friedlich. Wir beginnen mit unserer "Sicherung"
benutzer at schneewittchen:~$ tar cf /home/benutzer/datei.tar /home/benutzer/
tar: Removing leading `/' from member names
## Ha, das ist interressant! aus der Datei /home/benutzer/datei ist
jetzt home/benutzer/datei geworden, und die im tar
/home/benutzer/datei.tar gesichert wird.
tar: /home/benutzer/datei.tar ist das Archiv; nicht gesichert.
## Nicht weniger interressant: GNU/tar merkt, das hier das zu
erstellende Archiv innerhalb der zu sichernden Daten liegt und lässt es
aus. Sehr schön, wir können also jederzeit unsere Daten sichern und
wieder zurückspielen, ohne einen extra Ablageort zu brauchen. Das kann
übrigens nicht jedes tar. In Deinen Fall hilft uns das auch nicht
weiter, bei Dir ist ja das ganze System zwischenzeitlich weg. Aber doch
gut zu wissen, oder? Rekursionen sind also nicht möglich. So, zufrieden
mit unserer Aktion schauen wir uns das Ergebnis an:
benutzer at schneewittchen:~$ ls -l
insgesamt 20
-rw-r--r-- 1 benutzer benutzer 0 2006-07-29 18:46 datei
-rw-r--r-- 1 benutzer benutzer 20480 2006-07-29 18:47 datei.tar
## Alles bestens, das Original kann weg, wir haben ja eine Sicherung,
die wir wieder zurück spielen. Los gehts:
benutzer at schneewittchen:~$ rm datei
benutzer at schneewittchen:~$ tar xf datei.tar
benutzer at schneewittchen:~$ ls -l
insgesamt 24
-rw-r--r-- 1 benutzer benutzer 20480 2006-07-29 18:47 datei.tar
drwxr-xr-x 3 benutzer benutzer 4096 2006-07-29 18:49 home
## HILFE!!! WO IST MEINE DATEI ??? Und was macht dieses home hier? Was
ist passiert??? Panisch vor Verzweiflung schauen wir in dieses Verzeichnis:
benutzer at schneewittchen:~$ ls -l home/
insgesamt 4
drwxr-xr-x 2 benutzer benutzer 4096 2006-07-29 18:47 benutzer
benutzer at schneewittchen:~$ ls -l home/benutzer/
insgesamt 0
-rw-r--r-- 1 benutzer benutzer 0 2006-07-29 18:46 datei
benutzer at schneewittchen:~$
So, alles ging schief. Meine datei ist noch da, liegt aber jetzt in
/home/benutzer/home/benutzer/datei. Was ist passiert?
tar hat das Archiv relativ zu unserem jetzigen Verzeichnis ausgepackt.
Aber warum tut es das?
Weil wir so eine Sicherung an verschiedene Orte ablegen können. Wir sind
also nicht mehr starr an den ursprünglichen Speicherort der Datei
gebunden und können die Sicherung auspacken, ohne die eventuell
vorhandenen Originaldateien zu überschreiben. Und das ist gut so.
Ja, aber ich _wollte_ doch alles so, wie es vorher war. Wie mache ich es
nun richtig?
Indem du Dich relativ zu dem im Archiv gespeicherten Pfaden befindest.
Also drehen wir das Zeitrad zurück und machen es richtig:
benutzer at schneewittchen:~$ pwd
/home/benutzer
benutzer at schneewittchen:~$ ls -l
insgesamt 20
-rw-r--r-- 1 benutzer benutzer 20480 2006-07-29 18:47 datei.tar
benutzer at schneewittchen:~$ cd /
benutzer at schneewittchen:/$ tar xf /home/benutzer/datei.tar
benutzer at schneewittchen:/$ cd
benutzer at schneewittchen:~$ ls -l
insgesamt 20
-rw-r--r-- 1 benutzer benutzer 0 2006-07-29 18:46 datei
-rw-r--r-- 1 benutzer benutzer 20480 2006-07-29 18:47 datei.tar
Merke: Schon beim erstellen der Sicherung sollte man einen Gedanken auf
das spätere Auspacken verschwenden, weil die Pfade zu den Dateien
mitgesichert werden. Deshalb ist es oft besser, ein Phantasieverzeichnis
zu erstellen und die zu sichernden Partitionen darin zu mounten. Also
eben nicht /mnt benutzen, sondern etwas eigenes erstellen. Damit umgehst
Du elegant die erste Falle: eine unendliche Schleife von sich
entpackenden Archiven. Und gleichzeitig sicherst Du Dich gegen
versehentliches Überschreiben von anderen Partitionen und Dateien ab,
weil ja immer wieder in Dein Phantasieverzeichnis entpackt wird.
Merke2: Beim entpacken eines Archives wird relativ zum jetzigen
Verzeichnis entpackt. In Deinen Fall bedeutet das: "cd /"
>> o eigentlich fertig, aber der Bootloader fehlt noch.
[...]
> An meinem Bootloader sollte sich eigentlich nix ändern, da sich /boot ja nicht geändert hat.
Wenn Du /boot auf einer extra Partition hast kannst Du das
bootloadergeraffel ganz auslassen, es betrifft Dich nicht. Ansonsten
empfehle ich einen Blick in die info- Seiten von Grub. XFS und grub
mögen sich nicht sonderlich, aber das geht jetzt hier zu weit...
> Vielleicht müsste ich vorher nochmal gucken, ob die Partition nach der Neuformatierung noch "bootbar" ist.
Nein. Du verwendest Partitionierung und Formatierung als Synonym, so ist
es aber nicht. Da Du nicht partitioniert hast ist Dein /boot nicht
betroffen. Aber auch das geht zu sehr vom Thema weg. Kurz: Nein, musst
du nicht.
> Oh man, deine Anleitung ist ja wirklich für den kompliziertesten Fall gemacht!
Mir geht es darum das Du die Zusammenhänge verstehst. Erst dann machts
richtig Spaß.
> Erstens hab ich die Grundidee dahinter verstanden,
...Und es scheint zu funktionieren, was mich freut.
> und zweitens weiß ich jetzt endlich warum Informatiker immer so viel Kaffee trinken.
Sehr gut. Durch das Verstehen der tieferen Zusammenhänge wirst Du somit
ganz nebenher befähigt Zusammenhänge zu erkennen, die weit über die
eigentliche Aufgabenstellung hinaus gehen... Es wirkt schon... ;-)
> Danke! :-)
> Gruß,
> Frank
>
Lutz
Mehr Informationen über die Mailingliste linux-l