web-dev-qa-db-ja.com

カーネルのアップグレード時にルートファイルシステムの変更が失われないようにするにはどうすればよいですか?

Solarisおよびその亜種では、現在の/ファイルシステムのzfsクローンを作成し、そこに新しいカーネルをインストールします。再起動すると、新しい/が表示されます。

私の場合、私は/scriptsディレクトリを持っているので、前のカーネルに戻る必要がある場合は、/scriptsもロールバックされます。これは、私が使用しているカーネルとは無関係である必要があります。 。

質問

カーネルのアップグレードが完了してからホストが再起動されるまでにファイルシステムに加えられた変更を失う回避するにはどうすればよいですか?

カーネルのアップグレード後に再起動するのが非常に速い場合でも、ログエントリが簡単に作成される可能性があるため、私が知らない手順はありますか。

3
Jasmine Lognnes

説明したのはブート環境(BE)で、システムのアップグレード時に自動的に作成されるか、beadmコマンドを使用して手動で作成されます。

複数の独立したBEを持つことができますが、同時にアクティブにできるのは1つだけです。各BEを個別に更新/変更することもできます。通常、特定のソフトウェアバージョンまたは完全なシステムアップグレードをテストするためにこれを行いますが、これに限定されるものではありません。

From 複数のブート環境を維持する利点

一度にアクティブにできるブート環境は1つだけですが、beadm mountコマンドを使用して非アクティブなブート環境をマウントできます。次に、pkgコマンドを代替ルート(-R)オプションとともに使用して、その環境に特定のパッケージをインストールまたは更新できます。

試してみましたが、beadm mount BeNameはBeNameを/tmpの下の一時ディレクトリにマウントします。これは書き込み可能です。新しいファイルまたは変更されたファイルを古いBEに同期/コピーする、またはその逆の簡単なスクリプトを作成できます。

ドキュメントには、BEでのスナップショットが可能であると記載されています(beadm create BeName@snapshotNamedescriptionを使用)。これは、2つの時点で発生した差異を追跡する場合(zfs diffを使用)に役立つ場合があります。

2
user121391