LILO
関連記事
LInux LOader (略して LILO) は Linux 環境向けのレガシーなマルチブートローダーです。かつては標準のブートローダーの地位にありましたが、設定が楽で起動できなくなることが少ない GRUB が登場したことで段々と後退しています。2016年1月現在、LILO の開発はほとんど止まっています [1]。
目次
サポートされているファイルシステム
上流の readme によれば:
- LILO はファイルシステムをどう読み込めばよいかを知りません。その代わりに map インストーラが、カーネルからファイル (カーネルイメージなど) の物理的な場所を取得し、その情報を記録します。これにより、LILO は、Linux によってサポートされているほとんどのファイルシステムで機能します。
実際は、まさにこの方法による制限 (Btrfs、GPT、RAID など) により、LILO の開発は止まってしまっています
インストール
LILO は liloAUR でインストールすることができます。開発版を使う場合、AUR の lilo-gitAUR をインストールしてください。LILO は BIOS 環境でしか動作しません。
(root で) lilo
コマンドを実行することで MBR に LILO がインストールされます。lilo コマンドを実行する前に /etc/lilo.conf
を編集して root エントリを root パーティションに設定してください。root パーティションが /dev/sda1
にある場合、root エントリは次のようになります: root=/dev/sda1
。'arch' と 'arch-fallback' エントリ両方の root 行を変更するようにしてください。
パーティション、またはパーティションレスディスクにインストール
(暗黙の -M
の代わりに) -b
フラグを使用して、パーティションかディスク全体を選択して LILO を MBR ではなく volume boot record (VBR) にインストールすることができます。
lilo(8) や Gentoo forum における Hypnos による回答を見てください。
設定
LILO の設定は /etc/lilo.conf
ファイルを編集することで行います。編集した後は lilo
を実行することで新しい設定を適用します。
カーネルアップグレードをした後は、必ず LILO を実行する必要があるので注意してください。忘れるとシステムが起動できなくなります。
LILO の設定については LILO-mini-HOWTO に詳しい情報が載っています。
設定例
典型的な LILO の設定:
/etc/lilo.conf
# # /etc/lilo.conf # boot=/dev/hda # This line often fixes L40 errors on bootup # disk=/dev/hda bios=0x80 default=Arch timeout=100 lba32 prompt compact image=/boot/vmlinuz-linux label=Arch append="devfs=nomount" vga=788 root=/dev/hda2 read-only image=/boot/vmlinuz-linux label=ArchRescue root=/dev/hda8 read-only other=/dev/hda1 label=Windows # End of file
hwinfo --framebuffer
を使うことで vga モードが使えるかどうか判断できます。
背景に画像を使う
まず背景画像を用意します:
- GIMP で画像を開いて下さい。
- 640x480 にサイズを変更します。
- インデックスモードに変更します (Image-->Mode-->indexed)。
- "Create optimal palette" を選択して16色に設定してください。ディザリングは適当に設定してください。
- "Indexed Palette" ダイアログを開きます。メニューのテキストエントリや時計などに使いたい色を選択してください。
lilo.conf
で、インデックスを使って色を指定することができます。 /boot
ディレクトリに画像を bmp でエクスポートします。エクスポートダイアログの "Do not write color space information" オプションにチェックを入れて下さい。
次に lilo.conf
を編集します。グラフィカルメニューを設定するオプションがあります。詳しくは man lilo.conf
を参照。
- bitmap=<bitmap-file>: 先に保存したファイルに設定してください。
- bmp-colors=<fg>,<bg>,<sh>,<hfg>,<hbg>,<hsh>
メニューのエントリの色です。前景・背景・影の色とハイライトされたテキストの色を指定します。スペースは使わないで下さい。先にカラーパレットで選択したインデックスの値を使います。値を空にすることもできます (カンマは忘れないで下さい)。デフォルトの背景色は透明で、デフォルトでは影が付きません。
- bmp-table=<x>,<y>,<ncol>,<nrow>,<xsep>,<spill>: このオプションはメニューを配置する位置を指定します。x と y は文字座標です。p を後ろに付けることでピクセル座標を使うこともできます。
- bmp-timer=<x>,<y>,<fg>,<bg>,<sh>: このオプションはデフォルトエントリを起動するまでのタイムアウトを表示するタイマーの座標と色を指定します。色はインデックスで指定して、座標は文字座標 (またはピクセル座標) を使います。
例:
bitmap=/boot/arch-lilo.bmp bmp-colors=1,0,8,3,8,1 bmp-table=250p,150p,1,18 bmp-timer=250p,350p,3,8,1
lilo.conf
を保存したら root で lilo
を実行してください。再起動して見た目が変わったかどうか確認しましょう。
Pacman hook
lilo needs to be run after every kernel update. You can use a pacman hook to automate it. See Pacman#Hooks or alpm-hooks(5).
make the directory /etc/pacman.d/hooks
if it doesn't already exist.
/etc/pacman.d/hooks/lilo.hook
[Trigger] Operation = Install Operation = Upgrade Operation = Remove Type = Package Target = linux Target = linux-lts [Action] Description= Run lilo after kernel update When = PostTransaction Depends = lilo Exec = /usr/bin/lilo
トラブルシューティング
起動時に読み書きエラーのメッセージが表示される
このエラーメッセージは最近の systemd の コミット に合わせて行われた mkinitcpio の 変更 が原因です。読み取り専用でパーティションがマウントされた場合にに fsck が二回実行されます。このエラーを修正するには /etc/lilo.conf
を編集して arch エントリの 'read only' という行を 'read write' に変更してください。
詳しくは フォーラムスレッド を参照。
カーネルのアップグレード後に Devmapper の not found エラーメッセージが表示される
カーネルアップグレードをした後に lilo
コマンドを実行すると devmapper の not found エラーが表示されることがあります。その場合、カーネルアップグレードした後 lilo
を実行する前に modprobe dm-mod
を実行して下さい。