
Ich möchte ein ZFS-Dateisystem (Volume in einem Pool) durch ein anderes ZFS-Dateisystem (ein anderes Volume im selben Pool) ersetzen. Ein Neustart ist in Ordnung, aber ich möchte den Einzelbenutzermodus vermeiden.
Wenn ich versuche, mountpoint=none
das alte Dateisystem zu verwenden, versucht ZFS, es auszuhängen, was jedoch fehlschlägt, da Dateien verwendet werden. Folglich kann ich mountpoint=/data
das neue Dateisystem nicht verwenden, da dort etwas gemountet ist. Die mountpoint
Eigenschaften werden auch nicht in die Dateisysteme geschrieben.
Wenn ich neu starte, ist das alte Dateisystem immer noch gemountet, Dienste beginnen, dort vorhandene Dateien zu verwenden, und ich kann es nicht mehr unmounten. Gibt es eine Möglichkeit, die mountpoint
Eigenschaften der Dateisysteme zu schreiben, ohne tatsächlich etwas Gemountetes zu ändern, und dann neu zu starten, sodass das neue Dateisystem verwendet wird, wenn das System wieder hochfährt?
Antwort1
In neueren Versionen von OpenZFS gibt es das zfs set -u
Flag.
zfs set -u mountpoint=/data-old zpool/data1
zfs set -u mountpoint=/data zpool/data2
Jetzt werden die Eigenschaften geändert, an den aktuellen Einhängepunkten wird jedoch nichts geändert; /data
zeigt immer noch auf zpool/data1
, aber nach einem Neustart wird es sein zpool/data2
.