mgmmyBlog

Webエンジニア👩‍💻 Railsの話がメインです。

【LPIC101】Linuxのインストールとパッケージ管理:ブートマネージャのインストール①

f:id:mgmmy:20200510153932p:plain

LPICの勉強を兼ねて、Ping−tで学習したことをまとめています✍️

Linuxのインストールとパッケージ管理

ブートマネージャのインストール

GRUB(GRand Unified Bootloader)

  • 多くのファイルシステムに対応している高機能なブートローダー。
  • 操作を対話的に行う GURBシェル と呼ばれるプログラムが付属している。
  • インストールには grub-install コマンドを利用する。
  • GRUB LegacyGRUB2 では 設定方法が異なる。

GRUB Legacy

  • バーションが 0.9x のもの
設定方法
【例】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 を実行している。
【例】/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_DEFAULTsaved を指定すると、前回選択した項目がデフォルト選択されるようになる。
  • カーネルイメージ、ルートパーティションの指定などは /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)