Dateisystem wechseln

Post Reply
Message
Author
gogo

Dateisystem wechseln

#1 Post 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

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post 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
Last edited by Janka on 30. Jul 2006 21:48, edited 2 times in total.
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#3 Post 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?
When all else fails, read the instructions .

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#5 Post 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.

gogo

Dateisystem wechseln

#6 Post by gogo »

Hi,

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

Grüße
gogo

petameta
prolinux-forum-admin
Posts: 1294
Joined: 14. Feb 2003 13:19

#7 Post 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.

Post Reply