ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(他のOSの起動、電源オフなど)
「ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(全般とカーネル関係)」と「ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(背景・色関係)」の続き。
ここでは、GRUB 2から
- メモリテスト(memtest86+)
- 他のディスク/パーティションのブートローダに起動処理を渡す
- 再起動
- 電源オフ
を行うための項目をヘルパースクリプトから生成するためのファイルを貼り付ける。
以下、注意点。
- 各ファイル名の先頭に付いている数字は、GRUB 2の設定ファイル/boot/grub/grub.cfgに書き出される順番になっているため、好みに応じて変更
- ファイル中の項目名の部分(変数name)は、好みで変更
- 変数libdirの値は、ディストリによって変更する必要がある
メモリテスト(memtest86+)
下の設定例では、あらかじめ/boot/以下に実行ファイルを配置しておく。ファイルの内容はmemtest86+のファイル名に合わせて変更する。
[任意]ファイル名: /etc/grub.d/20_memtest86+
#! /bin/sh -e # -*- encodong: utf-8 -*- prefix=/ exec_prefix=${prefix} libdir=/lib #libdir=/usr/lib . ${libdir}/grub/update-grub_lib version=1.70 name="メモリテスト [memtest86+ ${version}]" suffix="-${version}" echo "Add memtest86+ \"${name}\"" >&2 cat << EOF menuentry "${name}" { linux ${GRUB_DRIVE_BOOT}/memtest86+${suffix}.bin } EOF
この設定ではmemtest86+-1.70.binというファイルを使用する。
他のブートローダに起動処理を渡す
変数rootの値を、起動処理を渡す先に合わせて変更する。
[任意]ファイル名: /etc/grub.d/30_otheros
#! /bin/sh -e # -*- encoding: utf-8 -*- prefix=/ exec_prefix=${prefix} libdir=/lib #libdir=/usr/lib . ${libdir}/grub/update-grub_lib root="(hd0,1)" # 起動する先のディスクとパーティションを指定 name="別のブートローダ ${root}" echo "Add chainload \"${name}\"" >&2 cat << EOF menuentry "${name}" { set root=${root} chainloader +1 } EOF
WindowsとマルチブートしていてGRUB 1(GRUB Legacy)から移行する場合
d:id:mkouhei:20080427:1209278847
も参照(パーティション番号の振り方が変更されている点に注意)。
再起動
[任意]ファイル名: /etc/grub.d/98_reboot
#! /bin/sh -e # -*- encodong: utf-8 -*- name="再起動" echo "Add reboot \"${name}\"" >&2 cat << EOF menuentry "${name}" { reboot } EOF
電源オフ
[任意]ファイル名: /etc/grub.d/99_halt
#! /bin/sh -e # -*- encodong: utf-8 -*- name="電源オフ" echo "Add halt \"${name}\"" >&2 cat << EOF menuentry "${name}" { halt } EOF
関連記事:
- Gentoo LinuxにおけるGRUB 2(1.96)のグラフィカルな端末(gfxterm)のフォントについて
- ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(全般とカーネル関係)
- ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(背景・色関係)
- GRUB 2(1.96)からハードディスク上のライブCDを起動するテスト
使用したバージョン:
- GRUB 1.96