SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【LPIC101】 GRUBとブートローダ LPICで学ぶLinux⑤

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

f:id:wantanBlog:20200507222138p:plain

GRUB

GNU GRUB (GRand Unified Bootloader) はGNUプロジェクトにて開発されている高機能なブートローダである。 グラブと読まれることが多い[6]。 大きく分けてバージョン0.9x系のGRUB Legacyと、1.9x系のGRUB 2の2種類がある。

引用元:GNU GRUB - Wikipedia

まずは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

f:id:wantanBlog:20200623001049p:plain

編集用のファイルがあって、ユーザの編集は/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


-------------

参考:Linux - ブートマネージャのインストール



・前回(第四回)
www.wantanblog.com

・次回(第六回)
www.wantanblog.com