/home in andere Partition verschieben

Hallo,

ich habe bei der Installation des Betriebssystems die Standard-Partitionierung übernommen und würde nun gerne /home auf eine andere Partition verschieben.
Wie müsste ich das machen?
Meine Idee ist:

  1. /home komplett auf externe Platte sichern (rsync -abuv /home /externePlatte…)
  2. vorhandene große Partition verkleinern
  3. neue Partition anlegen
  4. neue Partition einhängen unter /hometemp
  5. logout
  6. mit der Konsole unter root anmelden
  7. alle Daten von /home nach /hometemp kopieren (rsync -abuv /home /hometemp)
  8. /home umbennen in /homealt (mv /home /homealt)
  9. /hometemp umbenennen in /home (mv /hometemp/ /home)
  10. neu starten.

Soweit okay?

Gruß

Dein Absicht ist nicht ganz klar.

Du möchtest /home auf eine andere Partition verschieben. Anscheinend gibt es aber mehr zu tun, weil du redst von “vorhandene große Partition verkleinern”. Welche Partition, wo und was?

Sowieso fehlt jede Information darüber was du jetzt hast. Also wenigstens

fdisk -l

mit Erklärung welche Partition für was im Moment benutzt wird, und wie das in der neuse Situation ausschauen soll.

Gehe bitte davon aus das wir nichts wissen wie es bei dir ausschaut wegen nicht hellsehend.

Moin,

mal ohne die fehlenden Informationen:

/home zuerst auf eine externe Platte sichern macht definitiv Sinn.

rsync -abuv

Bists Du sicher, dass Du dann immer noch jedesmal ein Backup anlegen willst? Das ist doch die -b Option, oder?

vorhandene große Partition verkleinern

…wenn das Dateinsystem es zulässt.

  1. /home umbennen in /homealt (mv /home /homealt)
  2. /hometemp umbenennen in /home (mv /hometemp/ /home)

Einfaches Umbenennen wird hier nicht reichen. Du musst die Mountpoints in der fstab anpassen. (Ich mache das mit dem YaST Partinionierer.)

Warum nicht gleich von der heutige Partition auf die Neue kopieren. /etc/fstab anpassen, Fertig für boot!

Übrigens würde ich für das kopieren tar benutzen (mit cp geht auch) Im diesen Fall nicht ein typische rsync Geschichte.

@kasi042

rsync -abuv: Stimmt, rsync -auv oder rsync -av würde reichen.

Einfaches Umbenennen wird hier nicht reichen. Du musst die Mountpoints in der fstab anpassen. (Ich mache das mit dem YaST Partinionierer.)

Kann man das von der Konsole aus machen? Oder würde ich das System normal starten, dann die Änderung in YaST vornehmen, und dann wieder runter- und wieder hochfahren?

@ hcvv

$fdisk -l
Gerät          Anfang       Ende   Sektoren Größe Typ
/dev/sda1        2048    1026047    1024000  500M EFI-System
/dev/sda2     1026048 1074767871 1073741824  512G Linux-Dateisystem
/dev/sda3  1949329408 1953525134    4195727    2G Linux Swap


$ cat /etc/fstab
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /                       btrfs  defaults                      0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /.snapshots             btrfs  subvol=/@/.snapshots          0  0
UUID=3da44995-82eb-448a-8ae2-3ac4a5635338  swap                    swap   defaults                      0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /var                    btrfs  subvol=/@/var                 0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /usr/local              btrfs  subvol=/@/usr/local           0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /tmp                    btrfs  subvol=/@/tmp                 0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /srv                    btrfs  subvol=/@/srv                 0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /root                   btrfs  subvol=/@/root                0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /opt                    btrfs  subvol=/@/opt                 0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /home                   btrfs  subvol=/@/home                0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
UUID=56214020-bdb6-4876-8b5c-96c717ba5d88  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
UUID=0F84-5F01                             /boot/efi               vfat   defaults                      0  2





Das geht von der Konsole aus, aber ich bin da nicht fit, mit diesen Editoren habe ich es nicht so. Das können die anderen hier besser.
:wink:
Aber YaST hat auch einen Textmodus. Einfach als root:

yast

Auch wenn du keine einzige Erklärung hinzufügst, kann man schon jetzt sagen das /home überhaupt keine eingen Partition hat. Es ist Btrfs root partition integriert und dort zufällig als subvolume gemacht worden.

Was, und warum, willst du den eigentlich erreichen?

Und kennst du dieses Dokument: https://www.qlipso.com/de/wie-man-fragen-richtig-stellt/
(und besonders Beschreibe das Ziel, nicht einen Schritt)

Übrigens ist das Dokument nicht 100% auf die openSUSE Forums passend, aber viel doch.

Noch was. Ich habe das nicht klar gesagt, aber

fdisk -l

sollte man eigentlich als root tun. Jetzt fehlt die Größe der Platte. Ich nehme aber an das es kein freier Platz mehr gibt.

Also, wie ich jetzt verstehe möchtest du /home auf einen separaten Partition legen, aber auf die gleiche Platte.

Dazu brauchst du, wie schon vermutet. einen extra Datenspeicher rmit genügend Platz. Darauf legt man dann ein Dateisystem an, kann z.B. ext4 od Zfs sein (gegt über YaST) und ankuppel z.B. in /mnt.

Jetzt all Benutzer abmelden. Auf die richtige Console gehen (Ctrl-Alt-f1) und anmelden als root (eine der wenige Ausnahmen wo das sein muß).

Kopiere Alles innerhalb /home dahin, auf Dateiebene, also mit rsync oder tar oder cp. Achte dabei darauf das alle Eigner/Permissionen behalten bleiben.

Wenn das 100%ig gut gegangen ist (bestens du hast sowieso die Daten irgenwo gesichert) alles in /home löschen (mit das rm Kommando).

Jetzt kommt für mich das schwierigste, Ich habe keine Btrfs Kenntnisse und bin eher alergisch fü Dateisystem vergrösserungen/-verkleinerungen. Auch muß das Subvolume verschwinden, da habe ich keine Idee.
Da es sich um / handelt und man das nicht abkuppeln kan, muß du das von ein Life/Rescue System machen.
Hier müßen Anderen Hilfe leisten.

Nachdem das gelungen ist und wieder gebootet, wieder von der Console. Jetzt, wie schon gesagt

yast

und mit Tastatur (braucht einige Gewönung) im freigekommenen Platz ein Partition mit Dateisystem (Zfs oder ext4) anlegen, anzukuppeln in /home.

Dann noch die Dateien von den Zwischenspeicherplatz zurückkopieren. Und fertig.

Das ist was ich was ich, mit die Kenntnisse die ich jetzt habe, vorschlage.

Kann sein oder auch nicht. Ohne einen guten Grund ist das Bewegen von Daten mühsam und fruchtlos. Ich würde das lieber bleiben lassen.