2 つのオペレーティング・システムを使用する代替 ZFS プール

2 つのオペレーティング・システムを使用する代替 ZFS プール

以前のUbuntuインストールから新しいインストールに切り替えています。移行時に古いオペレーティングシステムと新しいオペレーティングシステムで同じプールを使用できることを願っています。

新しいオペレーティングシステムは別のディスクにあります。起動時にオペレーティングシステムを選択します。指定された時間に1つのオペレーティングシステムのみがプールを使用します。

これは可能ですか?データが破損したり、プール全体が失われる危険性はありますか?

答え1

シャットダウン中にプールをエクスポートし、一度に1つのシステムでのみ使用される限り、議論する内容には問題がないはずです。

ZFS本当に本当に本物-o readonly=on読み取り専用モード(与えられた)でも同時に複数のシステムの同じプールを使用するファンではありませんが、zpool importこれはあなたの場合には適用されないようです。

2つのバージョン間の互換性を維持するには、次のことを確実にする必要があります。いいえ最新のインストールで実行するzpool upgradeか、特に実行してください。zfs upgradeこれらのうちの1つは、以前のインストールを実行するとプールまたはファイルシステムへのアクセスが失われる可能性がありますが、アップグレードされたZFSディスクバージョンをサポートするシステムを実行してもプールまたはファイルシステムは失われません。

アップグレードが完了したら、必要に応じてzpool upgradeプールを最新のディスク形式および機能として使用および/またはアップグレードできますzfs upgrade

答え2

プールでシステムルートを実行するのではなく、プールをデータストアとして使用することについて話しているとします。

現在、2つのシステムがインストールされています。 1つはEXT4パーティションに、もう1つはEXT4パーティションにありますsudo zfs set mountpoint=/ tank/my/dataset。 EXT4システムからこのプールにアクセスすることは、ルートディレクトリにマウントする方法がない
ため難しいです。zfs mount -aだから、3つの方法を提示します。

どちらの方法もプールを自動的にマウントせずにインポートする必要があります。

sudo zpool import tank -N

ア) 属性の修正

sudo mkdir /mnt/mydataset
sudo zfs set mountpoint=/mnt/mydataset tank/my/dataset
sudo zfs mount tank/my/dataset
# [do stuff in /mnt/mydataset]
# ...
sudo zfs unmount tank/my/dataset
# restore mountpoint so that the other system is able to boot from it
sudo zfs set mountpoint=/ tank/my/dataset

B)避けなさいzfs mount

マウントポイントを前後に設定するのが面倒な場合は、次の方法も効果があることがわかりました。これがどのくらいハッキングされているかは保証できません。

sudo mkdir /mnt/mydataset
sudo mount -t zfs -o zfsutil tank/my/dataset /mnt/mydataset
# [do stuff in /mnt/mydataset]
# ...
sudo umount /mnt/mydataset

このオプション B) chroot を使用してから、他のシステムで zfs コマンドを使用する場合、いくつかの/mnt/mydataset問題があることに注意してください。これらの質問が関連しているかどうかわかりません。そんなことをしないと大丈夫だと思います。

C)代替筋

altrootプールの属性を指定できます。

代替ルート
代替ルートディレクトリ。設定されている場合、このディレクトリはプールのマウントポイントの前に追加されます。この機能は、マウントポイントを信頼できない不明なプールを確認するとき、または一般的なパスが無効な代替ブート環境で使用できます。
altroot永続的な属性ではありません。システムの起動時にのみ有効です。 altroot設定はデフォルトでを使用するように設定されていますが、cachefile = noneこれは明示的な設定に上書きできます。

関連情報