• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Inhalte vom alten Homeverzeichnis in neues kopieren mit rsync.

Hallo, ich möchte einige Verzeichnisse aus /home wie z.B. Dokumente und Downloads von meiner alten Installation von Festplatte 1 auf meine neue Installation auf Festplatte 2 mit rsync kopieren. Die Dateien der alten Installation sollen dabei NICHT gelöscht werden und die Dateiattribute sollen so erhalten bleiben, daß ich den gewohnten Zugriff darauf behalte. Aktuell meldet Dolphin "Der Ordner ist leer", wenn ich mir das alte /home von meiner neuen Installation aus ansehen will.
 
Tja... ehrlich gesagt weiß ich das nicht. Das ist eine ganz normale Leap 15.3 Installation gewesen, ohne irgendwelche manuellen Eingriffe. Seit der Einführung von btrfs habe ich den Überblick über die Partitionen verloren.
 
Das alte /home-Verzeichnis ist noch so auf der alten Platte, wie es vom Installer angelegt wurde. Und nun möchte ich einige Verzeichnisse von dort in das neue /home-Verzeichnis kopieren. Ich habe mir zu diesem Zweck einmal grsync installiert aber da sind so viele Einstellungen möglich, deren Sinn ich teilweise nicht überschaue und das ist mir zu riskant. Deshalb würde ich mich über einen passenden Konsolenbefehl eines Experten freuen.
 
Das alte /home-Verzeichnis ist noch so auf der alten Platte, wie es vom Installer angelegt wurde. Und nun möchte ich einige Verzeichnisse von dort in das neue /home-Verzeichnis kopieren
Warum nicht die alte Festplatte anschließen, mounten und per Dateimanager kopieren?

Denn das neue /home/USERNAMEneu gehört dem USERneu mit der ID xxxxx, das alte /home/USERNAMEalt gehört dem USERalt mit der ID yyyy

So hab ich das immer gehandhabt, angeschlossenen, gemountet und per Dateimanager kopiert, nicht verschoben
 
Die alte Festplatte ist noch angeschlossen. Diese Festplatte kann ich in Dolphin auch mounten. Aber das /home-Verzeichnis ist angeblich leer. Sollte es eine eigene Partition sein, hätte ich eine entsprechende Meldung wie eine Aufforderung zum Mounten erwartet.
Wenn ich mit einem einfachen Kopieren auch die Rechte übernehme und die kopierten Dateien auch verifiziert werden, dann wäre es natürlich damit auch getan.
 

susejunky

Moderator
Teammitglied
Das alte /home-Verzeichnis ist noch so auf der alten Platte, wie es vom Installer angelegt wurde
Wenn das "alte" /home-Verzeichnis ein Subvolumen Deines ehemaligen "/"-Verzeichnisses war (d.h. in Deiner "alten" /etc/fstab findet sich eine Zeile mitUUID=xxxxxx /home btrfs subvol=/@/home) und Du das "alte" Subvolume /home in Deinen aktuellen Verzeichnisbaum eingebunden hast (z.B. unter /mnt/Altes_Home), dann kannst Du mit cd /mnt/Altes_Home in Dein "altes" /home-Verzeichnis wechseln und mit
Code:
cp -a ...
Dateien und/oder Verzeichnisse in Deinen aktuellen Verzeichnisbaum kopieren (siehe man cp für die Option "-a").

Ähnliche Optionen für rsync wären:
Code:
-r ... rekursiv durch Unterverzeichnisse

-l ... kopiere symbolische Links

-H ... erhalte Hard-Links

-o ... erhalte den Besitzer

-g ... erhalte die Gruppe

-p ... erhalte die Zugriffsrechte

-t ... erhalte Änderungszeit

-U ... erhalte Zugriffszeiten

-N ... erhalte Erstellungszeit
oder man rsync für weitere Optionen.

Diese Festplatte kann ich in Dolphin auch mounten.
Wie hast Du das gemacht?
 
Zuletzt bearbeitet:
Wie hast Du das gemacht?
Bei mir erscheinen in Dolphin links 3 Geräte. Die nicht gemounteten Geräte (=Festplatten) haben ein kleines rotes Symbol. Da klicke ich drauf und es wird eine Legitimierung zum Einhängen abgefragt. Nach Eingabe des Passwortes ist sie gemountet. Beim Anklicken von /home passiert das leider nicht.

Ich habe in die fstab der alten Platte geschaut, danach ist /home tatsächlich ein Subvolume. Da muß ich mich wohl mal einlesen was das bedeutet und wie ich den Inhalt in Dolphin angezeigt bekomme.
 

susejunky

Moderator
Teammitglied
Da muß ich mich wohl mal einlesen was das bedeutet und wie ich den Inhalt in Dolphin angezeigt bekomme.
Das ist sicherlich ein guter Ansatz. Wenn ich das richtig in Erinnerung habe, dann unterscheidet sich die btrfs-Nutzung bei openSUSE allerdings in Details von der allgemein üblichen.

Ohne jegliche Garantie auf Erfolg könntest Du versuchen:
Code:
mount -o subvol=/@/home /dev/xxx /mnt/Altes_Home
Dabei muss /dev/xxx durch den Gerätenamen des Geräts ersetzt werden, auf dem sich Deine alte "/" befindet und /mnt/Altes_Home muss vorhanden sein.

Am Besten wäre es natürlich, wenn sich jetzt ein openSUSE-btrfs-Kundiger hier einbringen würde.
 
Zuletzt bearbeitet:
Ohne jegliche Garantie auf Erfolg könntest Du versuchen:
Code:
mount -o subvol=/@/home /dev/xxx /mnt/Altes_Home
Dabei muss /dev/xxx durch den Gerätenamen des Geräts ersetzt werden, auf dem sich Deine alte "/" befindet und /mnt/Altes_Home muss vorhanden sein.

Ich habe mit "sudo mkdir /mnt/Altes_Home" das Verzeichnis "Altes_Home" auf der neuen Platte angelegt und folgendes ausgeführt:
Code:
sudo mount -o subvol=/@/home /dev/018bb9c1-d496-4194-91ad-0b1f53c768d7 /mnt/Altes_Home
Leider kommt die Meldung
Code:
mount: /mnt/Altes_Home: Spezialgerät /dev/018bb9c1-d496-4194-91ad-0b1f53c768d7 ist nicht vorhanden.
       dmesg(1) könnte nach einem fehlgeschlagenen mount-Systemaufruf
       weitere Informationen liefern.
dmesg sagt am Ende
Code:
BTRFS: device fsid 018bb9c1-d496-4194-91ad-0b1f53c768d7 devid 1 transid 485501 /dev/nvme0n1p2 (259:2) scanned by pool-1 (2363)
[   62.903244] [   T2363] BTRFS info (device nvme0n1p2): first mount of filesystem 018bb9c1-d496-4194-91ad-0b1f53c768d7
[   62.903271] [   T2363] BTRFS info (device nvme0n1p2): using crc32c (crc32c-intel) checksum algorithm
[   62.903278] [   T2363] BTRFS info (device nvme0n1p2): disk space caching is enabled
[   62.903280] [   T2363] BTRFS warning (device nvme0n1p2): space cache v1 is being deprecated and will be removed in a future release, please use -o space_cache=v2
[  625.219287] [     T97] BTRFS info (device sda2): qgroup scan completed (inconsistency flag cleared)

Inzwischen ist mir ein Workaround eingefallen: Das alte /home auf eine USB-Festplatte kopieren und dann im neuen System aufs neue /home kopieren. Das sollte doch klappen.
 

susejunky

Moderator
Teammitglied
"/dev/018bb9c1-d496-4194-91ad-0b1f53c768d7" wie hast Du diesen Gerätenamen ermittelt?

Müsste das nicht "/dev/disk/by-uuid/018bb9c1-d496-4194-91ad-0b1f53c768d7" oder "/dev/disk/by-partuuid/018bb9c1-d496-4194-91ad-0b1f53c768d7" sein?
 
Code:
jsc@localhost:~> ls -al /dev/disk/by-uuid
insgesamt 0
drwxr-xr-x. 2 root root 140 29. Okt 12:27 .
drwxr-xr-x. 7 root root 140 29. Okt 2025  ..
lrwxrwxrwx. 1 root root  10 29. Okt 12:27 1e7ce5f9-162a-4326-af16-24f93b824ed8 -> ../../sda1
lrwxrwxrwx. 1 root root  10 29. Okt 12:27 927b9089-a443-4de4-8ca1-6fd51ea0837c -> ../../sda3
lrwxrwxrwx. 1 root root  10 29. Okt 12:27 b1db7fc4-8fd5-4e3a-9eb0-62cb193cf7fd -> ../../sda2
lrwxrwxrwx. 1 root root  10 29. Okt 12:27 b348525f-1e09-4f08-a611-7a41f2159163 -> ../../sdb1
lrwxrwxrwx. 1 root root  10 29. Okt 12:27 e79a50c4-73e3-4c48-9480-b546bd38c3f7 -> ../../sdb2
jsc@localhost:~>
 
"/dev/018bb9c1-d496-4194-91ad-0b1f53c768d7" wie hast Du diesen Gerätenamen ermittelt?
Sorry, ich dachte, der "Vorspann" gehört nicht dazu. Ich habe in der fstab der alten Platte nachgesehen. Die komplette Zeile lautet
Code:
UUID=018bb9c1-d496-4194-91ad-0b1f53c768d7  /home                   btrfs  subvol=/@/home                  0  0
Ich habe nun folgendes eingegeben:
Code:
test@Leap16PC:~> sudo mount -o subvol=/@/home /dev/UUID=018bb9c1-d496-4194-91ad-0b1f53c768d7 /mnt/Altes_Home
Leider kommt wieder die Meldung "Spezialgerät nicht vorhanden". Gemountet ist die alte Platte aber laut Dolphin.
 

susejunky

Moderator
Teammitglied
"/dev/UUID=018bb9c1-d496-4194-91ad-0b1f53c768d7" auch das ist kein gültiger Gerätenamen!

Bitte zeige das Ergebnis von
Code:
ls -la /dev/disk/by-uuid
und
Code:
ls -la /dev/disk/by-partuuid
 
Code:
test@Leap16PC:~> ls -la /dev/disk/by-uuid
insgesamt 0
drwxr-xr-x. 2 root root 220 29. Okt 2025  .
drwxr-xr-x. 9 root root 180 29. Okt 2025  ..
lrwxrwxrwx. 1 root root  15 29. Okt 2025  018bb9c1-d496-4194-91ad-0b1f53c768d7 -> ../../nvme0n1p2
lrwxrwxrwx. 1 root root  10 29. Okt 2025  0848-4739 -> ../../sda1
lrwxrwxrwx. 1 root root  10 29. Okt 2025  108D-69F6 -> ../../sdb1
lrwxrwxrwx. 1 root root  10 29. Okt 2025  1230915030913C23 -> ../../sdb3
lrwxrwxrwx. 1 root root  15 29. Okt 2025  2585d6be-4a25-40f3-ae6f-27c2403d80fe -> ../../nvme0n1p3
lrwxrwxrwx. 1 root root  15 29. Okt 2025  4DAA-B372 -> ../../nvme0n1p1
lrwxrwxrwx. 1 root root  10 29. Okt 2025  84089BC8089BB81E -> ../../sdb4
lrwxrwxrwx. 1 root root  10 29. Okt 2025  86599bf5-efb7-440a-9c0e-bbebd48187e6 -> ../../sda3
lrwxrwxrwx. 1 root root  10 29. Okt 2025  bff4b00d-c9f5-442f-9e18-5530649a75a1 -> ../../sda2
nvme0 ist die alte Platte
Code:
test@Leap16PC:~> ls -la /dev/disk/by-partuuid
insgesamt 0
drwxr-xr-x. 2 root root 240 29. Okt 2025  .
drwxr-xr-x. 9 root root 180 29. Okt 2025  ..
lrwxrwxrwx. 1 root root  10 29. Okt 2025  0b464c1b-e3f4-45ea-8321-956ab143af9a -> ../../sdb2
lrwxrwxrwx. 1 root root  10 29. Okt 2025  16c386c3-24ec-4ef7-bf6c-dff51130235f -> ../../sdb3
lrwxrwxrwx. 1 root root  10 29. Okt 2025  175abc0c-8bd5-4a99-b913-718f872eee56 -> ../../sda3
lrwxrwxrwx. 1 root root  10 29. Okt 2025  3fab5bde-a2a2-40c5-ae6f-f4f6731b49cc -> ../../sda1
lrwxrwxrwx. 1 root root  10 29. Okt 2025  40362c07-4683-4fe4-9fc0-3e9125e846ce -> ../../sdb4
lrwxrwxrwx. 1 root root  10 29. Okt 2025  4441ea6d-80d2-4c3c-a6d2-10f8916bb5f0 -> ../../sdb1
lrwxrwxrwx. 1 root root  15 29. Okt 2025  4a64ccf0-0212-4f16-b2fb-8d5eb283b219 -> ../../nvme0n1p2
lrwxrwxrwx. 1 root root  15 29. Okt 2025  977e5471-fa89-4255-9d57-8be8c0d2c091 -> ../../nvme0n1p3
lrwxrwxrwx. 1 root root  10 29. Okt 2025  a5aa14b0-47a8-4bc0-bce9-57d0877cf6ca -> ../../sda2
lrwxrwxrwx. 1 root root  15 29. Okt 2025  ce7ed2c5-8d84-4c00-b703-08debac250a0 -> ../../nvme0n1p1
Ich habe es mal mit
Code:
sudo mount -o subvol=/@/home /dev/UUID=4a64ccf0-0212-4f16-b2fb-8d5eb283b219
 /mnt/Altes_Home
versucht aber da kommt die Meldung, daß die Nummer in der fstab nicht gefunden wurde
 
Zuletzt bearbeitet:

susejunky

Moderator
Teammitglied
Bitte führe die folgenden Befehl direkt nacheinander aus (als Benutzer "root")
Code:
mount -o subvol=/@/home /dev/nvme0n1p2 /mnt/Altes_Home
Code:
cat /proc/mount
und zeige jeweils die Befehlszeile sowie alle Ausgaben inkl. der nächsten, leeren Eingabeaufforderung.
 
Code:
test@Leap16PC:~> sudo mount -o subvol=/@/home /dev/nvme0n1p2 /mnt/Altes_Home
[sudo] Passwort für test:
test@Leap16PC:~> sudo cat /proc/mount
cat: /proc/mount: Datei oder Verzeichnis nicht gefunden
test@Leap16PC:~>
 
Oben