- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
*OpenBSDネイティブのアップデートツール [#n9060bb2]
OpenBSDでは、現在、以下のようなアップデートツールが提供されている。
-sysupdate ... リリースの更新時に使用
-sysmerge ... リリース更新時、/etc 以下の更新に使用。更新部分とサイト独自の設定をマージする。現在はsysupdateから自動的に起動される。
-syspatch ... Erattaの適用に使用
-pkg_add -u ... packagesの更新に使用
これらのツールのうち、sysupdateとsyspatchは河豚板では使用できない。~
ファイルシステムのレイアウトとカーネルのconfigがVanilla OpenBSDと異なるため。
Vanilla OpenBSDとは、カーネルの設定とファイルシステムのレイアウトが異なるため。
sysmergeとpkg_addは使用することができる。
*fiupdate - 河豚板のアップデートツール [#c7d8900b]
河豚板は、OpenBSDに追従して年に2回リリースを更新する。~
また、その間にEratta対応(patch適用)や河豚板自身の機能追加・バグフィクスなどがあり、概ね十数回以上のアップデートを行っている。
LiveUSBに対して、このような修正を容易に行うため、fiupdate (FuguIta Update)というツールを作成し、配布物に同梱している。
fiupdateは、LiveUSB中のカーネルとファイルシステム・イメージ体を新しいもので置き換える。そのため、基本的には同一バージョンのOpenBSDがベースになっていれば、任意のリリースに更新することができる。ダウングレードも可能。~
(OpenBSDのsyspatchは、step by stepで1つづつ新しいリリースに更新することが須で、一足飛びに最新リリースに更新することはできない)
LiveDVDについてはコンテンツの上書きが物理的に不可能なため、従来どおり、メディアを最新版に作り直すこととなる。
**fiupdateの実行 [#o29b8c47]
布サイトよりISOイメージファイルとMD5をダウンロードし、fiupdateを実行する。
布サイトよりISOイメージファイルとMD5をダウンロードし、[[fiupdateを実行する>FuguIta/BBS/10#kc657395]]。
# ftp https://jp1.dl.fuguita.org/FuguIta-6.9-amd64-202108131.iso.gz
# ftp https://jp2.dl.fuguita.org/MD5
# fiupdate 202108131
ダウンロードするファイルはLiveUSB用の*.img.gzではなく、LiveDVD用の*.iso.gzファイルであることに注意。
ダウンロードするファイルはLiveUSB用の''*.img.gzではなく''、LiveDVD用の''*.iso.gzファイルである''ことに注意。
fiupdate実行中は、以下のような処理が行われる
- ダウンロードしたファイルのMD5検査
- 実行環境のチェック(起動モード、現行バージョン、対象アーキテクチャなど)
- デーモン類の停止
- ファイルの更新 (カーネルとファイルシステム・イメージ)
- リブート
**設計と実装[#u1c6299d]
***エラー検出 [#i9cdad73]
fiupdateの動作は、基本的には現行のカーネルとファイルシステム・イメージをダウンロードしたISOイメージの中のもので上書きするだけで、原理は非常に単純である。~
ただし、ファイルの上書きが失敗することは致命的であるため、極力避けなければならない。そのため、fiupdateは、大部分がチェックのためのコードとなっている。
***ライブアップデートにした理由 [#if683e32]
アップデートの方法として、現在稼働していない別のメディアに対して適用を行う、というやりかたも考えられるが、以下のようなデメリットがある
--適用対象のデバイスの他に、fiupdateを実行するデバイスを別に用意する必要がある
--対象とするバージョンやアーキテクチャを取り違えて実行するリスクがある
そのため、fiupdateでは「今、動いている」メディアのみを対象としてアップデートを行うこととした。
***ライブアップデートの検討事項[#x7dd5d08]
fiupdateが上書きするファイルシステム・イメージは、OpenBSDのファイルツリー全体が格納されており、上書きされている時もマウントされてアクティブな状態にある。そのため、イメージファイルが上書きされるとシステムはまともに動かなくなる。
-ファイルシステムイメージ自体は、Read Onlyでマウントされている。~
... ファイルシステムに不整合が発生することはない
-実行中のプロセスが正常に稼動しなくなったり、異常終了したりする。~
... ファイル上書き前に、全てのデーモンを停止する
-新たにコマンドが起動できなくなる ~
... fiupdateの実行に必要なコマンドは、あらかじめtmpfsにコピーしておき、そちらを使うようにする
***制限事項[#h103042c]
-Xのセッションやリモートログイン時にfiupdateを実行すると、デーモンが停止した時点でセッションが途切れ、アップデートが失敗する。~
... 制御端末が仮想端末の場合は、アップデートが失敗する旨し、アップデートの中止とコンソールデバイスからの再実行を促す。
-LiveUSBで起動しLiveSDで運用する、というような変則的な運用には未対応 ~
... そういう環境で運用できているユーザは、手動でアップデートできるでしょう... :-)
-*.tar.gz形式で配布している FuguIta/arm64 には未対応