zroot/usr nachträglich einrichten

spectre210

Well-Known Member
zroot ist ist ein zpool eingehangen in /.
Das System ist bereits installiert.
Ich möchte speziell noch zroot/usr und zroot/usr/ports zroot/usr/src einrichten. Das Problem ist, das in usr schon Daten enthalten sind. Ertser Ansatz wäre:
Code:
mv /usr /ousr
zfs create zroot/usr
cp -R /ousr/* /usr/
Nach meiner Meinung werden dabei aber Zugriffsrechte neu gesetzt, eignet sich also nicht.

Zweiter Ansatz
Code:
mv /usr /ousr
zfs create zroot/usr
mv /ousr/* /usr/
Die Zugriffsrechte der Unterordner und Dateien sollten bleiben, ist mir jedoch ein bischen gefährlich, falls es zu Fehlern kommt.

Gibt es da ein besseren Ansatz oder hab ich es mir verbaut?
 
aus einem laufenden System ist das ein wenig tricky, weil Dateien aus /usr in Gebrauch sein könnten. Da würde ich mir dump und restore ansehen.
Ansonsten nehme ich sehr gerne rsync als das viel bessere cp, auch lokal.

Von deinem neuen /zroot/usr brauchst du anschließend noch einen Link in dein System, damit dann /usr auch gefunden wird.

Wenn ich das richtig verstanden habe.
 
Mach mit "zfs create zoot/usr" ohne Mountpoint. Danach ein "usr/port" und "usr/src" normal mit einem Mountpoint. Das sollte gehen, wenn ich dich jetzt richtig verstanden habe.
 
Jau. Und die Daten kann man z.B. mit sysutils/cpdup komfortabel kopieren.
 
Danke euch allen.
Gelöst habe ich dies wie folgt:
Code:
zfs create zroot/ousr
zfs create zroot/ousr/ports
zfs create zroot/ousr/src
zfs set compression=gzip zroot/ousr/ports
zfs set compression=gzip zroot/ousr/src
sudo rsync -a /usr/* /ousr
reboot

Im Boot Menu Single User Mode auswählen:
Code:
mount -u /
mount -a
rm -r /usr
Nicht alles konnte entfernet werden
Problem war, das manche Dateien das schg flag hatten.
Code:
chflag -R noschg /usr
rm -r usr
zfs set mountpoint=/usr zroot/ousr
zfs rename zroot/ousr zroot/usr
reboot

Fertig.
PS: Könnte mir vorstellen, dass es noch einfacher zu bewältigen war ;)
 
Wie wärs mit
Code:
zfs snapshot zroot@snap
zfs create -p zroot/usr/ports zroot/usr/src
cpdup /.zfs/snapshot/snap/usr /usr (oder wie auch immer)
fertig.
 
Zurück
Oben