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