LILO

提供: ArchWiki
2023年12月12日 (火) 07:21時点におけるAshMyzk (トーク | 投稿記録)による版 (→‎サポートされているファイルシステム: 追加)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

LInux LOader (略して LILO) は Linux 環境向けのレガシーなマルチブートローダーです。かつては標準のブートローダーの地位にありましたが、設定が楽で起動できなくなることが少ない GRUB が登場したことで段々と後退しています。2016年1月現在、LILO の開発はほとんど止まっています [1]

サポートされているファイルシステム

上流の readme によれば:

LILO はファイルシステムをどう読み込めばよいかを知りません。その代わりに map インストーラが、カーネルからファイル (カーネルイメージなど) の物理的な場所を取得し、その情報を記録します。これにより、LILO は、Linux によってサポートされているほとんどのファイルシステムで機能します。

実際は、まさにこの方法による制限 (Btrfs、GPT、RAID など) により、LILO の開発は止まってしまっています

インストール

LILO は liloAUR でインストールすることができます。開発版を使う場合、AURlilo-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 の設定:

ヒント: bzImage のロード時に LILO が極端に遅くなる場合、以下のように /etc/lilo.confcompact を追加してみてください。
/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 を実行して下さい。

参照