Linuxでの起動の流れでも少し触れましたが、今回はブートローダについて詳しく見ていきます。
試験的には結構重要っぽいです。あくまでLinuxサーバの利用者ならそこまで気にならないかもしれません。

GRUB
GNU GRUB (GRand Unified Bootloader) はGNUプロジェクトにて開発されている高機能なブートローダである。 グラブと読まれることが多い[6]。 大きく分けてバージョン0.9x系のGRUB Legacyと、1.9x系のGRUB 2の2種類がある。
まずはGRUBから学習します。
GRUBとGRUB2では設定ファイルなどが異なり、GRUB Legacyと呼ばれ区別されています。
GRUBのインストール
GRUB Legacy及びGRUB2をインストールするには以下のコマンドを使用します。
次の例ではGRUBを/dev/sdaのMBR領域にインストールすることになります。
grub-install /dev/sda
GRUBの設定
GRUB Legacyの設定ファイル
GRUB Legacyの設定は以下のファイルから行うことこになります。
/boot/grub/menu.lst
ディストリビューションによってはgrub.confの場合もあるそうです。
例えば、CentOS6の場合は以下のようになっていました。
試験的には体感としてmenu.lstの方を覚えておいた方がよさそうです。
[wantan@test-centos6 grub]$ ll | grep grub -rw-------. 1 root root 1540 Jun 14 15:01 grub.conf lrwxrwxrwx. 1 root root 11 May 20 21:44 menu.lst -> ./grub.conf
・menu.lstの設定例
LPICレベル1では、そこまで深い内容までは問われなさそうです。
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/sdb1
# initrd /boot/initrd-[generic-]version.img
#boot=/dev/sdb
default=0
timeout=0
#boot=/dev/sdb
default=0
timeout=0
#boot=/dev/sdb
default=0
timeout=0
serial --unit=0 --speed=38400
terminal --timeout=0 serial console
title CentOS (2.6.32-754.30.2.el6.x86_64)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-754.30.2.el6.x86_64 ro root=UUID=4a4247e6-3fc1-4f30-80e9-bf32acf674be rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM console=ttyS0,38400n8 rd_NO_DM
initrd /boot/initramfs-2.6.32-754.30.2.el6.x86_64.img
title CentOS (2.6.32-754.29.2.el6.x86_64)
GRUB2の設定ファイル
GRUB2の設定ファイルは/boot/grub2/grub.cfgですが、設定内容の編集には別のファイルを使用します。
試験的にも出しやすそうなところです。
/boot/grub2/grub.cfg
■GRUB2の設定編集
GRUB2では編集用のファイルは以下となり、ユーザはこちらのファイルを修正することになります。
/etc/default/grub
ファイル編集後、設定を反映させるためには以下のコマンドを実行します。
grub-mkconfig

編集用のファイルがあって、ユーザの編集は/etcから行うという思想はわかるけど、GRUB Legacyが直接編集になっているのが覚えにくい。歴史的な背景があるのかな?
ブートオプション
GRUB Legacy(GRUB1)ではシステム起動時にEキーを押すことによって、ブートオプションを指定することができます。
| root=デバイス名 | ルートパーティションとしてマウントするデバイスを指定する |
| init=パス | initの代わりに起動するものを指定する |
| single | シングルユーザモードで起動する |
| 1~5 | 指定したランレベルで起動する |
grub> kernel [カーネルイメージ] [オプション]
■シングルモードで起動する(ランレベルを設定する)
grub> linux /boot/vmlinuz-2.6.35 1
grub> linux /boot/vmlinuz-2.6.35 single
■initの代わりを指定する
grub> linux /boot/vmlinuz-2.6.35 init=/bin/bash
■ルートパーティションを指定する
grub> linux /boot/vmlinuz-2.6.35 root=dev/sda2
-------------
・前回(第四回)
www.wantanblog.com
・次回(第六回)
www.wantanblog.com