【LPIC101】Linuxのインストールとパッケージ管理:ブートマネージャのインストール①
LPICの勉強を兼ねて、Ping−tで学習したことをまとめています✍️
Linuxのインストールとパッケージ管理
ブートマネージャのインストール
GRUB(GRand Unified Bootloader)
- 多くのファイルシステムに対応している高機能なブートローダー。
- 操作を対話的に行う GURBシェル と呼ばれるプログラムが付属している。
- インストールには
grub-install
コマンドを利用する。 GRUB Legacy
とGRUB2
では 設定方法が異なる。
GRUB Legacy
- バーションが
0.9x
系 のもの
設定方法
- 設定ファイルは
boot/grub/menu.lst
- ディストリビューションによっては
boot/grub/grub.conf
【例】boot/grub/menu.lst
boot=/dev/sda default=0 timeout=5 title CentOS Linux(2.6.32-71.29.1.el6.i686) root(hd0,0) kernel /vmlinuz-2.6.32-71.29.1.el6.i686 ro root=/dev/hda1 initrd /initramfs-2.6.32-71.29.1.el6.i686.img title centos(2.6.32-71.el6.i686) root(hd0,0) kernel /2.6.32-71.el6.i686 ro root=/dev/hda1 initrd /2.6.32-71.el6.i686.img
# GRUBが格納されているデバイスの指定 boot=/dev/sda # デフォルトのエントリ番号(0は1番目のエントリ)の指定 default=0 # プロンプトが表示される時間(秒単位)の指定 timeout=5 # メニューに表示するエントリ名(1番目のエントリ)の指定 title CentOS Linux(2.6.32-71.29.1.el6.i686) # ルートパーティションのデバイスの指定 root(hd0,0) # /boot 内のカーネルとオプションの指定 kernel /vmlinuz-2.6.32-71.29.1.el6.i686 ro root=/dev/hda1 # 初期RAMディスクファイルの指定 initrd /initramfs-2.6.32-71.29.1.el6.i686.img # 2番目のエントリ title centos(2.6.32-71.el6.i686) root(hd0,0) kernel /2.6.32-71.el6.i686 ro root=/dev/hda1 initrd /2.6.32-71.el6.i686.img
root(hdディスク番号,パーティション番号)
でルートパーティションを指定する。- 番号はどちらも
0
から数える。
- 番号はどちらも
# 1番目のディスクの1番目のルートパーティション root(hd0,0) # 1番目のディスクの2番目のルートパーティション root(hd0,1) # 2番目のディスクの2番目のルートパーティション root(hd1,1)
GURB2
- バージョンが
1.9
以降 のもの
設定方法
- 設定ファイルは
/boot/grub/grub.cfg
だが、 直接編集することはない。 - 設定内容は
/etc/default/grub
ファイルおよび/etc/grub.d
ディレクトリ内のファイルに記述する。grub-mkconfig
コマンドで設定内容を/boot/grub/grub.cfg
に反映する。
grub-mkconfig
コマンド
- ディストリビューションによっては以下の差異が存在する。
- CentOS7 では
grub2-mkconfig
という名前でインストールされている。 - Ubuntu では
update-grub
およびupdate-grub2
というコマンドが存在するが、いずれもgrub-mkconfig
を実行している。
- CentOS7 では
【例】/etc/default/grub
GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DAFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
# デフォルトのエントリ番号(0は1番目のエントリ)の指定 GRUB_DEFAULT=0 # 待機時間(秒)の指定(メニューは非表示) GRUB_HIDDEN_TIMEOUT=0 # 待機時間のカウントダウンの表示・非表示の指定(trueは非表示) GRUB_HIDDEN_TIMEOUT_QUIET=true # デフォルトののエントリを起動するまでの時間(秒)の指定 GRUB_TIMEOUT=10 # メニューに表示するエントリ名の指定 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` # 通常起動の場合に追加する起動オプションの指定 GRUB_CMDLINE_LINUX_DAFAULT="quiet splash" # 通常起動およびリカバリ起動の場合追加する起動オプションの指定 GRUB_CMDLINE_LINUX=""
GRUB_DEFAULT
にsaved
を指定すると、前回選択した項目がデフォルト選択されるようになる。- カーネルイメージ、ルートパーティションの指定などは
/etc/grub.d
ディレクトリ内のファイルで行う。
【例】/etc/grub.d/40_custom
menuentry 'CentOS7 3.10.0-957.12.2.el7.x86_64' --class centos { insmod gzio insmod part_msdos set root=(hd0,1) linux /vmlinuz-3.10.0-957.12.2.el7.x86_64 root=/dev/mapper/centos-root initrd /initramfs-3.10.0-957.12.2.el7.x86_64.img }
# メニューに表示するエントリ名の指定 menuentry 'CentOS7 3.10.0-957.12.2.el7.x86_64' --class centos { # ロードするモジュールの指定 insmod gzio insmod part_msdos # ルートパーティションのデバイスの指定 set root=(hd0,1) # /boot 内のカーネルとオプションの指定 linux /vmlinuz-3.10.0-957.12.2.el7.x86_64 root=/dev/mapper/centos-root # 初期RAMディスクファイルの指定 initrd /initramfs-3.10.0-957.12.2.el7.x86_64.img }
# 1番目のディスクの1番目のルートパーティション root(hd0,1) # 1番目のディスクの2番目のルートパーティション root(hd0,2) # 2番目のディスクの2番目のルートパーティション root(hd1,2)