os:boot_environment
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
os:boot_environment [2019/06/14 17:35] – 作成 yuichiro | os:boot_environment [2021/12/27 10:34] (現在) – backup メインのユースケースに変更 yuichiro | ||
---|---|---|---|
行 5: | 行 5: | ||
どのクローンから起動するのかを自由に切り替えることができます。 | どのクローンから起動するのかを自由に切り替えることができます。 | ||
- | 例えば、新しいリリースまたはパッチを試すために、テスト用のクローンを作成し、 | + | 例えば、新しいリリースまたはパッチを試すために、現在の環境のクローンを作成しバックアップ用に取っておきます。 |
- | クローン上でアップデートを行い、動作を確認します。 | + | |
- | うまく行ったならばクローンをメインに運用すればよく、 | + | その上で、新しいリリースまたはパッチをインストールして、うまくいけばそのまま使い続ければ良いですし、 |
- | うまく行かなかった場合には元のルートファイルシステムから起動すれば元に戻ります。 | + | 何か問題が発生したならば、バックアップ用に取っておいた環境からブートすれば、元に戻ります。 |
- | うまく行った場合、元のルートファイルシステムは破棄しても構いません。 | + | |
また、異なるバージョンの FreeBSD をインストールしておき、切り替えて使うこともできます。 | また、異なるバージョンの FreeBSD をインストールしておき、切り替えて使うこともできます。 | ||
行 89: | 行 87: | ||
Boot Environment を扱うためのツールとして以下の2つがあります。 | Boot Environment を扱うためのツールとして以下の2つがあります。 | ||
- | 1. bectl | + | - **bectl** |
- | + | | |
- | FreeBSD 12.0 から標準搭載されたコマンドラインツールです。 | + | - **beadm** |
- | + | | |
- | 2. beadm | + | |
- | + | ||
- | ports/pkg でインストールできるコマンドラインツールです。 | + | |
- | bectl がない環境でも使うことができます。 | + | |
どちらも機能的にはほとんど変わりません。 | どちらも機能的にはほとんど変わりません。 | ||
行 198: | 行 192: | ||
ルートファイルシステムから jail を作成し、その中で動く sh を起動します。 | ルートファイルシステムから jail を作成し、その中で動く sh を起動します。 | ||
ネットワーク環境はセットアップされません。sh から手動で設定します。 | ネットワーク環境はセットアップされません。sh から手動で設定します。 | ||
+ | |||
+ | ==== ブートローダでの選択 ==== | ||
+ | |||
+ | もし、新しいルートファイルシステムにトラブルがあり、カーネルすら起動できなくなった場合は | ||
+ | ブートローダでルートファイルシステムを選択することができます。 | ||
+ | |||
+ | {{os: | ||
+ | |||
+ | 起動直後の画面で " | ||
+ | |||
+ | {{os: | ||
+ | |||
+ | " | ||
+ | |||
+ | {{os: | ||
+ | |||
+ | 元の環境を選びスペースキーを押すと、その環境でブートします。 | ||
+ | |||
+ | 起動したらアクティブなファイルシステムを切り替えましょう。 | ||
+ | |||
+ | < | ||
+ | bectl activate default | ||
+ | </ | ||
+ | |||
+ | ローダはアクティブなファイルシステムを切り替えてはくれません。 | ||
+ | |||
+ | ==== ユースケース ==== | ||
+ | |||
+ | 実際に freebsd-update を行う場合を例にとると一連の操作の流れは次のようになります。 | ||
+ | |||
+ | === 1. バックアップの作成 === | ||
+ | |||
+ | < | ||
+ | bectl create backup | ||
+ | </ | ||
+ | |||
+ | " | ||
+ | |||
+ | === 2. freebsd-update === | ||
+ | |||
+ | < | ||
+ | freebsd-update fetch install | ||
+ | </ | ||
+ | |||
+ | freebsd-update を実行しシステムを更新します。 | ||
+ | |||
+ | === 3. 再起動 === | ||
+ | |||
+ | < | ||
+ | shutdown -r now | ||
+ | </ | ||
+ | |||
+ | アップデート後に再起動します。 | ||
+ | |||
+ | === 4. 動作確認 === | ||
+ | |||
+ | ps でプロセスを確認するなど、動作を確認します。 | ||
+ | |||
+ | === 5. 切り戻し === | ||
+ | |||
+ | もし、4. の動作確認で問題があれば、" | ||
+ | |||
+ | < | ||
+ | bectl activate backup | ||
+ | shutdown -r now | ||
+ | </ | ||
+ | |||
+ | その後、default を削除し、backup を default にリネームすると元に戻ります。 | ||
+ | |||
+ | < | ||
+ | bectl destroy default | ||
+ | bectl rename backup default | ||
+ | </ | ||
+ | |||
+ | === 6. 古いバックアップの削除 === | ||
+ | |||
+ | < | ||
+ | bectl destroy backup | ||
+ | </ | ||
+ | |||
+ | ある程度安定的に動くことが分かったならば、不要になったバックアップを削除します。 | ||
os/boot_environment.1560501351.txt.gz · 最終更新: 2019/06/14 17:35 by yuichiro