heads-up
- gptboot rewrite for technical boot
current - FreeBSDにはnextboot(8)というコマンドがあります。これは次に起動する時にどのカーネルを使うか、
どのオプションを使用するかを指定するものです。たとえばmake installworldを実施するために次の起動だけはシングルユーザモードで起動してほしい場合、 次のようにnextboot(8)コマンドを実行します。 コマンドを実行すると次のようなファイル/boot/
nextboot. confが作成され、 次の起動はシングルユーザモードになります。端末の前で選択画面を待つ必要がなく便利です。この機能は一回のみ有効で、 次に起動したときには/boot/ nextboot. confは削除され、 以降の再起動には影響を与えません。 ZFSの移植者でありGEOMプロバイダ、
GPT周りの開発で知られるPawel Jakub Dawidek氏が、 こうした操作をブートローダのレベルで実現したいとして、 gptbootまわりを大幅に書き換えたことを紹介しています。パッチはhttp:// people. で提供されています。freebsd. org/~pjd/ patches/ gptboot. patch まずPawel Jakub Dawidek氏はシステムを2つのパーティションに分けておき、
システムのアップグレードに利用するシーンを紹介しています。起動しているパーティションでアップグレードされたイメージを作成し、 dd(1)でもうひとつのパーティションへ上書き。次はdd(1)で書き込んだ方から起動し、 成功すればそのパーティションを基本パーティションに、 従来のパーティションをdd(1)でアップグレード版を書き込むパーティションとして使用する方法を紹介しています。dd(1)したパーティションからの起動に失敗した場合は、 従来のパーティションから再起動するという仕組みです。この仕組みは継続的で安全なアップグレードを実施する方法として組み込み機器などで使われています。Chrome OSも同様の仕組みを採用しています。 gptbootまわりの大幅変更はこれを実現するためのもので、
まず次の新しいGPT属性値を導入したことが紹介されています。 - bootme - ブート可能パーティション
- bootonce - 一度だけブートするパーティション
- bootfailed - このパーティションからのブートには失敗したことを示す
こうした属性の使用例として次のコマンドもサンプルとして掲載されています。
これら変更はすでに9-CURRENTにマージされています。