PC/AT用ブートローダーの一種です。
Momonga 標準のブートローダーはLILOです
LILOはkernelのアップデートの際などに手動で更新しなければなりません、 しかしgrubだと起動時に動的に変更可能で、非常に便利です。
grubで起動できるOSは…
Linux
Windows
MS-DOS
BeOS
FreeBSD
OpenBSD
GNU Hurd
など多岐にわたります
grubはインストール時にCustomでEverythingを選ぶとインストールされます。
インストールしていない人は
# mph-get install grub
でインストールします。
なおインストールしただけではLILOなどは上書きされません。 安心してインストールしましょう
いきなりHDDに上書きしてしまうのは不安ですね。
いったんフロッピーにインストールし、 ちゃんと起動することが確認できてからHDDにインストールしましょう。
まず内容を消してもいいフロッピーを用意します。
その後(必要に応じてrootで)
# dd if=/usr/share/grub/i386-redhat/stage1 of=/dev/fd0 count=1 # dd if=/usr/share/grub/i386-redhat/stage2 of=/dev/fd0 seek=1
とするとフロッピーにインストール出来ます
ここでは/dev/hda3がLinuxのルートパーティションで、/dev/hda1がWindowsのインストールパーティションだとします
それではフロッピーを入れたまま再起動しましょう。
grub>
というプロンプトが出て止まるでしょう。
Linuxを起動するには…
grub> root (hd0,2) grub> kernel /boot/vmlinuz-2.4.19-12m root=/dev/hda3 grub> initrd /boot/initrd-2.4.19-12m.img grub> boot
とします。Windowsの起動には…
grub> root (hd0,0) grub> makeactive grub> chainloader +1 grub> boot
とします。
grubのキーマップはUSキーボードになっています。日本語106キーボードなどをお使いの方は "("は"Shift+9"、")"は"Shift+0"、"="は"^"押すと出るようになっています
grubのプロンプトはbashライクな補完機能を持っています。
コマンド、ファイル名共に補完可能です。例えば…kernelコマンドの場合
grub> ker<TAB>
とすると
grub> kernel
となります
無事起動しましたか? それではいよいよHDDにインストールします
# /sbin/grub-install /dev/hda
こうすると/dev/hdaのMBRに上書きされます
以降起動画面が先ほどのフロッピーから起動したものと同じになります
さて、無事にHDDからの起動もgrubになったと思います。
しかし、現状では毎回毎回コマンドを入力しなくてはならず、大変面倒ですね。
そこでメニューを使った選択方式による起動のしかたを説明します。
メニューは/boot/grub/grub.confというファイルを編集します。以下に私の例を載せます
# タイムアウト(秒) timeout 5 # デフォルトで起動するエントリー(上から0,1,2,3...) default 0 ## splash image # 背景に画像を使用する場合、ここで指定します splashimage = (hd0,0)/boot/grub/splash.xpm.gz ## Momongaの起動 # titleはメニューエントリーの名前です title Momonga Linux root (hd0,0) kernel /boot/vmlinuz-2.4.19-12m root=/dev/hda1 initrd /boot/initrd-2.4.19-12m.img ## Windowsの起動 # makeactiveとchanloaderはオマジナイと思ってください title Windows 98 root (hd0,1) makeactive chainloader +1
これで起動時にメニュー画面が出て 5秒間何もキーをさわらないとLinuxが起動するようになります
はい、大丈夫です。
XFS, JFS, LVMのサポートはgrub-0.91-0.02001121102kからとなります
/bootを別パーティションにすると起動時にメニューが表示されなかったり、 起動が出来なかったり、できても思っていたパスと違うところにあるという 現象が起こります。
grubを/boot/grub にインストールしたなら、grub的にはイメージはディレクトリ/grubの下にあるのであって、/boot/grubの下ではないと認識します。
つまりgrub的には/boot/grub/grub.confが無いと判断されメニューは表示されません
kernelの位置も同様です。
Linux的には/boot以下にあってもgrub的には/にあると認識するのです
そこでgrubをHDDにインストールする際に
# grub-install --root-directory=/boot /dev/hda
とすると、一件醜いですがうまく動作します。
grubプロンプトから起動するときは
grub> root (hd0,1) grub> kernel /boot/vmlinuz-2.4.19-12m root=/dev/hda1 grub> initrd /boot/initrd-2.4.19-12m.img
となります
kernelコマンドの最後に付けるだけです。例えば…
grub> kernel /boot/vmlinuz-2.4.19-12m root=/dev/hda1 acpi=no-idle vga=ask hdc=ide-scsi
この様にします
Windowsは本来プライマリマスターのMBRにWindowsのブートローダー以外をインストールすると起動できません。
そのような場合HDDを仮想的に入れ替えるmapコマンドを使います。例えば…
grub> map (hd0) (hd1) grub> map (hd1) (hd0) grub> root (hd1,0) grub> makeactive grub> chainloader +1 grub> boot
とすれば起動できます
はい、できます
まず640x480で14色のxpmイメージを作ります。
作り方はgimp等で好きな画像を作る or どこから画像を持ってきて
$ convert -geometry 640x480 -colors 14 hoge.jpg hoge.xpm
とすれば変換できます(ImageMagickが必要です)
できた640x480,14色のxpmファイルをgzipで圧縮します。
そのファイルを/boot/grubにコピーします
そして/boot/grub/grub.confに以下のように記述します
#前景色 foreground = ffffff #背景色 background = 000000 #表示したいイメージ spalshimage = (hd0,0)/boot/grub/hoge.xpm.gz
なお/boot/grubには Momonga デフォルトのsplash.xpm.gzが入っています
そうですね、確かに LILO で十分とも言えます。
しかし kernel アップグレードで間違えて
# rpm -Uvh kernel-hoge-numm.i586.rpm
とやって、更に/sbin/liloをやるのを忘れて起動しなくなった… などと言う悲しい思いをすることが無くなります。
でもgrubならばメニュー画面からメニューを編集したり、 プロンプトに降りてコマンドを実行することが出来るので、そのようなことはありません
また「LILOの方が簡単だし、私はそんなミスをしない」と言う方も grubをインストールしたフロッピーを1枚持っていれば万が一の時に役に立つでしょう
この文書は Kondara Project の Kondara-grub-HOWTO をベースに、Momonga Project で拡張された 部分などを追加して書かれています。
grub-HOWTO の著者である 島村 充氏、及び Kondara Project、また Kondara Project で ドキュメントのメンテナンスをされていた諸氏に、ここに謝辞を程します。
この文書は無保証です。この文書の利用およびこの文書に基づいて作業をされた結果、 何らかの損害を被ったとしても、原著者はいかなる責任をも負いませんのでご了承ください。
この文書の著作権は Momonga Project にあります。 この文書の配布ライセンスは、利用許諾のオプション A. B. を除外した オープン・パブリケーション利用許諾契約書 (OPL -- Open Publication License) に従います。
OPL についての詳細は、 http://www.opencontent.org/openpub/ を参照してください。 また、八田真行氏による OPL ドラフト v1.0 日本語訳が http://www.opensource.jp/openpub/ にて参照可能です。
この文書を再配布する場合は、可能な限り http://www.momonga-linux.org/docs/grub-HOWTO/ja/ 以下から最新版を入手し、それを配布してください。