[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