Page 1 of 1

Dateisystem wechseln

Posted: 30. Jul 2006 21:06
by gogo
Hi,

ich möchte das Dateisystem meiner Linux-Installation wechseln (die Partition bei der Gelegenheit gleich mit).

Das hier müsst doch eigentlich schon ausreichen ....?!

Code: Select all

# cd /
# cp --archive * /mnt/new_system/
Habt ihr eine bessere Lösung? Könnte es Probleme geben?

Danke!
gogo

Posted: 30. Jul 2006 21:34
by Janka
Ja, es kann Probleme geben, denn Dateien mit Hardlinks werden so zu zwei (oder noch mehr) getrennten Dateien.
Solch problematische Kandidaten findet man *vor* dem Kopieren mittels

Code: Select all

find / ! -type d -links +1
heraus. Dann mittels "ls -i" heraussuchen, welche Dateinamen zur selben Inode gehören, und diese dann in der Kopie mit rm und ln (ohne -s) wieder richtig zusammenbasteln.

Achso: Außerdem kopierst du so wie du es vorgeschlagen hast evtl. vorhandene die .*-Dateien im Hauptverzeichnis nicht mit.

Nachtrag: Der folgende Einzeiler vereinfacht die Suche etwas.

Code: Select all

find / -xdev ! -type d -links +1 -printf "%i %p\n" | sort
Janka

Posted: 30. Jul 2006 21:36
by klopskuchen
Befindet sich alles auf einer Partition? Dann geht es mit cp -a /alt /neu schmerzlos.
Auf der neuen Partition muß dann der Eintrag für das root-Dateisystem in der Datei /etc/fstab und die Konfigurationsdatei des Bootloaders angepasst werden. (Wenn du mit lilo bootest, muß der neu geschrieben werden.)

MfG, Klopskuchen

edit
@Janka
Danke für den Hinweis. An so etwas hab ich nie gedacht und ich hab schon einiges zwischen Partitionen umhergeschaufelt. Habs gerade mal probiert, ein Verzeichnis mit einer Datei die zwei Namen (also Links) hat auf eine andere Partition kopiert. Ergebnis: Zwei Links-> eine Inode. Hast du schon andere Ergebnisse bekommen?

Posted: 30. Jul 2006 21:58
by Janka
Hm. "Früher ging das nicht"(tm).

Kann sein, dass cp über --preserve=links es inzwischen selbst herausfinden kann, wenn eine normale Datei mehrere Hardlinks hat, und vor allem welche Dateinamen alle dazugehören. Dazu muss cp während des Kopierens selbst Buch über die Inodes der Problemkandidaten führen.

Das klappt demnach auch nur, wenn man alle Dateinamen in einen einzigen cp -a-Lauf erwischt. Also aufpassen!

Janka

Posted: 31. Jul 2006 8:01
by Lateralus
Warum nicht ein

Code: Select all

tar -cO --exclude /mnt/new_system / | tar -x -C /mnt/new_system
(oder so in der Art - hab's jetzt nicht getestet)? Das erledigt sämtliche Probleme mit Links.

Dateisystem wechseln

Posted: 31. Jul 2006 21:00
by gogo
Hi,

danke für eure Vorschläge, ich werde es damit versuchen!

Grüße
gogo

Posted: 01. Aug 2006 9:32
by petameta
Ich hatte bei der "cp -a"-Methode noch nie Probleme, obwohl ich schon viele root-Partitionen verschoben habe. Ich werde mir trotzdem den Tip mit tar mal merken, vielen Dank !

Nur ne kleine Anmerkung: Das sollte man nicht im laufenden Betrieb machen, sondern besser von ner Live-CD booten und die alte und neue root-Partition mounten und dann kopieren.