Ändern Sie die ZFS-Mountpoint-Eigenschaft, ohne sie erneut zu mounten

Ändern Sie die ZFS-Mountpoint-Eigenschaft, ohne sie erneut zu mounten

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=nonedas alte Dateisystem zu verwenden, versucht ZFS, es auszuhängen, was jedoch fehlschlägt, da Dateien verwendet werden. Folglich kann ich mountpoint=/datadas neue Dateisystem nicht verwenden, da dort etwas gemountet ist. Die mountpointEigenschaften 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 mountpointEigenschaften 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 -uFlag.

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; /datazeigt immer noch auf zpool/data1, aber nach einem Neustart wird es sein zpool/data2.

verwandte Informationen