4.5. パーティションの書き換え

いくつかの Linux 以外のオペレーティングシステムは、それらのパーティション の情報(たとえばそれらにとってのルートファイルシステムなど)をパーティション テーブルから取得します。もしそのようなオペレーティングシステムが一つの PC に 複数インストールされたら、それらがパーティションテーブルの内容の解釈に混乱を きたすかもしれません。これらの問題は、ブートされるオペレーティングシステムに 応じて、パーティションテーブルを変更することで避けることができます。

パーティションテーブルの変更内容は、各オペレーティングシステムのセクションの CHANGE セクションに指定します。CHANGE セクションは、ビルド時に REWRITE_TABLE オプションを指定した場合のみ有効になることに注意してください。

CHANGE セクションは、更新されるべきテーブルエントリに該当する、それぞれの パーティションのためのサブセクションを含みます。各パーティションは以下の ように設定します。

PARTITION=<デバイス名>

変更は設定ファイル上に記述された順序で適用されます。以前の変更を繰り返したり、 後でその結果を変更するような、不要な変更を含んだ構成は無効で、マップインス トーラによって拒否されます。

内部的には、全ての変更は、場所(パーティションテーブル内にあるディスクと オフセット)、その場所が変更前に持っていた値、今度設定されるべき値を指定 する一種のルールとして表現されます。安全のため、以前の値が違っていたら、 このルールは無視されます。

4.5.1. パーティションのアクティブ化

このオプションは、パーティションテーブルのアクティブフラグを検査してブート パーティションを決定するようなシステムをブートするために用意されました。 フラグは、ACTIVATE によって有効になり、DEACTIVATE によって無効になります。 該当のパーティションにのみ有効であることに注意してください。LILO は自動的に 他のパーティションのアクティブフラグを変更したりはしません。ですから、複数 のパーティションが同時にアクティブになることもあり得ます。

Example 4-8. パーティションのアクティブ化の例

other = /dev/sda4
  label = sco
  change
    partition = /dev/sda4
      activate
    partition = /dev/sda3
      deactivate

4.5.2. パーティションタイプの変更ルール

パーティションタイプの変更とは、2 つの取りうる値の相互変換を指します。典型的な 慣習としては、``非表示''にするためにパーティションタイプの上位ニブルの最下位 ビットを立て(つまり 0x10)、``表示''にするために、同ビットをクリアすること です。LILO はこの変更をルールの設定に基づいて遂行します。それぞれのルールは パーティションタイプの名称、通常の値、及び非表示の場合の値を定義します。この ルールは設定ファイルのオプションセクションに定義します。それらを定義する セクションは、CHANGE-RULES で始まります。

RESET

前に定義されているルールを全て削除します。これは予め定義されたルール を使いたくない場合に使用します。

TYPE=<名称>

指定された名称のタイプをルールに加えます。タイプ名称は大文字 小文字を区別しません。値は、NORMAL=<値> と HIDDEN=<値> という形で定義を します。値は、10 進数、または、0x で始めることで 16 進数で指定することも 可能です。もしいずれかしか指定されていない場合、他の値は、同じ数値で、 もっともそれらしいビットを反転させたものであると想定します。

LILO は DOS パーティションの 3 つのパーティションタイプをあらかじめ定義して います。以下の例は、そのあらかじめ定義されたルールを削除して、再び定義した ものです。

Example 4-9. パーティションタイプの再定義

change-rules
  reset
  type = DOS12
    normal = 0x01
    hidden = 0x11
  type = DOS16_small
    normal = 4 # hidden is 0x14
  type = DOS16_big
    hidden = 0x16

4.5.3. パーティションタイプの変更

パーティションタイプの変更は、パーティションセクションに、SET=<名称>_< 状態>という形で指定します。<名称> はパーティションタイプの名称で、< 状態> はその状態、つまり NORMAL か HIDDEN です。

Example 4-10. パーティションタイプの変更

other = /dev/sda3
  label = dos
  change
    partition = /dev/sda2
      set = dos16_big_normal
    partition = /dev/sda3
      activate
      set = DOS16_big_normal

SET 変数は、パーティションセクションにつき一つしか指定できません。あまりない とは思いますが、もし一つ以上の SET 変数を使いたい場合は、パーティションセク ションを増やしてください。