「LILO」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(en:LILOへの転送ページ)
 
 
(4人の利用者による、間の7版が非表示)
1行目: 1行目:
  +
[[Category:ブートローダー]]
#redirect[[en:LILO]]
 
  +
[[cs:LILO]]
  +
[[en:LILO]]
  +
[[es:LILO]]
  +
[[ru:LILO]]
  +
[[tr:LILO]]
  +
{{Related articles start}}
  +
{{Related|Arch ブートプロセス}}
  +
{{Related|ブートローダー}}
  +
{{Related articles end}}
  +
  +
''LI''nux ''LO''ader (略して '''LILO''') は Linux 環境向けのレガシーなマルチブートローダーです。かつては標準のブートローダーの地位にありましたが、設定が楽で起動できなくなることが少ない [[GRUB]] が登場したことで段々と後退しています。2016年1月現在、LILO の開発はほとんど止まっています [https://lists.alioth.debian.org/pipermail/lilo-devel/2015-December/000083.html]。
  +
  +
== サポートされているファイルシステム ==
  +
  +
上流の [https://salsa.debian.org/joowie-guest/upstream_lilo/-/blob/master/readme/README#L210 readme] によれば:
  +
: LILO はファイルシステムをどう読み込めばよいかを知りません。その代わりに map インストーラが、カーネルからファイル (カーネルイメージなど) の物理的な場所を取得し、その情報を記録します。これにより、LILO は、Linux によってサポートされているほとんどのファイルシステムで機能します。
  +
  +
実際は、まさにこの方法による制限 (Btrfs、GPT、RAID など) により、LILO の開発は止まってしまっています
  +
  +
==インストール==
  +
LILO は {{AUR|lilo}} でインストールすることができます。開発版を使う場合、[[AUR]] の {{AUR|lilo-git}} をインストールしてください。LILO は BIOS 環境でしか動作しません。
  +
  +
(root で) {{ic|lilo}} コマンドを実行することで MBR に LILO がインストールされます。lilo コマンドを実行する前に {{ic|/etc/lilo.conf}} を編集して root エントリを root パーティションに設定してください。root パーティションが {{ic|/dev/sda1}} にある場合、root エントリは次のようになります: {{ic|<nowiki>root=/dev/sda1</nowiki>}}。'arch' と 'arch-fallback' エントリ両方の root 行を変更するようにしてください。
  +
  +
=== パーティション、またはパーティションレスディスクにインストール ===
  +
  +
(暗黙の {{ic|-M}} の代わりに) {{ic|-b}} フラグを使用して、パーティションかディスク全体を選択して LILO を [[MBR]] ではなく [[Wikipedia:Volume boot record|volume boot record (VBR)]] にインストールすることができます。
  +
  +
{{man|8|lilo|url=https://linux.die.net/man/8/lilo}} や [https://forums.gentoo.org/viewtopic-p-7071146.html?sid=1511812358edbf8caa9f387374f112d2#7071146 Gentoo forum における Hypnos による回答]を見てください。
  +
  +
==設定==
  +
LILO の設定は {{ic|/etc/lilo.conf}} ファイルを編集することで行います。編集した後は {{ic|lilo}} を実行することで新しい設定を適用します。
  +
  +
カーネルアップグレードをした後は、必ず LILO を実行する必要があるので注意してください。忘れるとシステムが起動できなくなります。
  +
  +
LILO の設定については [http://www.tldp.org/HOWTO/LILO.html LILO-mini-HOWTO] に詳しい情報が載っています。
  +
  +
===設定例===
  +
典型的な LILO の設定:
  +
  +
{{tip|bzImage のロード時に LILO が極端に遅くなる場合、以下のように {{ic|/etc/lilo.conf}} に {{Ic|compact}} を追加してみてください。}}
  +
  +
{{hc|/etc/lilo.conf|2=
  +
#
  +
# /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
  +
}}
  +
  +
{{ic|hwinfo --framebuffer}} を使うことで vga モードが使えるかどうか判断できます。
  +
  +
=== 背景に画像を使う ===
  +
まず背景画像を用意します:
  +
* GIMP で画像を開いて下さい。
  +
* 640x480 にサイズを変更します。
  +
* インデックスモードに変更します (Image-->Mode-->indexed)。
  +
* "Create optimal palette" を選択して16色に設定してください。ディザリングは適当に設定してください。
  +
* "Indexed Palette" ダイアログを開きます。メニューのテキストエントリや時計などに使いたい色を選択してください。{{ic|lilo.conf}} で、インデックスを使って色を指定することができます。
  +
* {{ic|/boot}} ディレクトリに画像を bmp でエクスポートします。エクスポートダイアログの "Do not write color space information" オプションにチェックを入れて下さい。
  +
  +
次に {{ic|lilo.conf}} を編集します。グラフィカルメニューを設定するオプションがあります。詳しくは {{ic|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
  +
  +
{{ic|lilo.conf}} を保存したら root で {{ic|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 {{man|5|alpm-hooks}}.
  +
  +
make the directory {{ic|/etc/pacman.d/hooks}} if it doesn't already exist.
  +
  +
{{hc|/etc/pacman.d/hooks/lilo.hook|2=
  +
[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]] の [https://github.com/systemd/systemd/commit/956eaf2b8d6c9999024705ddadc7393bc707de02 コミット] に合わせて行われた mkinitcpio の [https://projects.archlinux.org/mkinitcpio.git/commit/?id=449b3e543c 変更] が原因です。読み取り専用でパーティションがマウントされた場合にに fsck が二回実行されます。このエラーを修正するには {{ic|/etc/lilo.conf}} を編集して arch エントリの 'read only' という行を 'read write' に変更してください。
  +
  +
詳しくは [https://bbs.archlinux.org/viewtopic.php?pid=1303683#p1303683 フォーラムスレッド] を参照。
  +
  +
===カーネルのアップグレード後に Devmapper の not found エラーメッセージが表示される===
  +
カーネルアップグレードをした後に {{ic|lilo}} コマンドを実行すると devmapper の not found エラーが表示されることがあります。その場合、カーネルアップグレードした後 {{ic|lilo}} を実行する前に {{ic|modprobe dm-mod}} を実行して下さい。
  +
  +
==参照==
  +
* [https://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt 起動時に使えるカーネルパラメータのリスト]
  +
* [https://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/ch09.pdf List of kernel paramaters with further explanation and grouped by like options ('Kernel Boot Command-Line Parameter Reference', ''Linux Kernel In A Nutshell'')]

2023年12月12日 (火) 07:21時点における最新版

関連記事

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 を実行して下さい。

参照