FreeBSD Daily Topics

2010年12月6日GPTのすべての機能を実装、gptboot改善

2010Q3 FreeBSD Status Reportが公開されました。報告されている中から興味深い話題を紹介します。

gptboot Improvements

Pawel Jakub Dawidek氏からgptbootの追加開発が実施され、GPTのすべての機能が実装されたことが報告されています。主な変更点は次のとおりです。

  • GPTのすべての機能を実装
  • エラーメッセージにブートプログラムを印字するように改善。このためどこで問題が発生しているのかが以前よりもわかりやすくなった
  • 起動できない場合、これまで5秒ごとにブートプロンプトを表示していたが、1回だけ表示されるように変更
  • 新しいGPT属性(bootme、bootonce、bootfailed)の追加

新しく追加された属性はそれぞれ次の意味を持っていると説明があります。

  • bootme - ブート可能パーティションであることを指定
  • bootonce - 一度だけこのパーティションから起動することを指定
  • bootfailed - このパーティションからの起動に失敗したことを指定

それぞれの属性が起動時にどのような優先順位で処理されるかは次のとおりです。

  1. bootmeおよびbootonceが指定されているパーティションから起動
  2. bootmeが指定されているパーティションから起動
  3. bootmeが指定されたパーティションが見つからない場合、最初に見つかったUFSパーティションから起動

bootonceに関する処理は次のとおりです。

  1. bootonceが指定されbootmeが指定されていないパーティションを発見した場合、bootonce属性を削除してbootfailedを設定する
  2. bootmeとbootonceが両方指定されたパーティションを探す
  3. bootme属性を削除
  4. /boot/loaderまたは/boot/kernel/kernelの実行を試みる。成功した場合にはここで終了
  5. 失敗した場合にはbootonceを削除し、bootfailedを設定する
  6. 2番へ飛んで処理を繰り返す

新しく追加された属性は組み込みデバイスにFreeBSDを採用する際の安全なシステムアップデートのための仕組みや、ダウンタイムを最小限に抑えたいシステム更新時の自動処理などに活用できます。2TB以上のサイズのディスクを扱う場合はGPTを使う必要があります。

おすすめ記事

記事・ニュース一覧