GRUB 1 / GRUB4DOS

GRUB 1(GRUB Legacy とも表記されます)および
GRUB4DOS(GRUB for DOS)は GPT・UEFI に対応していません。
(Intel Mac とおおよそ Windows 7 以降のパソコン)

また、GRUB 1 は GRUB 2 移行に伴いメンテナンスが止まっています。

GRUB 2 などを使用する必要があります。

GRUB4DOS は GRUB 1 の派生で、Windows インストールに対応します。

 

GRUB 関連のファイル編集は最悪起動できなくなります。

くれぐれもご注意下さい。


GRUB 2 と異なるメリット

GRUB 2 より機能が劣る部分がありますが、メリットもあります。

  • MBR・PBR のみにインストールされるので、
    パーティションの移動で起動できなくなる心配がない
    (GRUB 2 などはパーティション領域にもプログラムを置くため、
     パーティションの先頭位置を移動すると起動できなくなります)
  • menu.lst を編集するだけでメニューへダイレクトに反映される
    (GRUB 2 では update-grub などの専用コマンドを実行しないといけません)

BIOS・MS-DOS パーティションディスクで
手動で起動オプションを細かく設定したい場合は

GRUB 1・GRUB4DOS を使うのもメリットがあります。 


menu.lst のバックアップ

簡単です。menu.lst を別の名前でコピーするだけです。

復旧はコピーしたファイルを menu.lst にします。

編集前に menu.lst を日付を付けてコピーしておき、
ある程度のタイミングで他のところに保管しておくと復旧も楽です。


menu.lst 先頭のオプション

color 色指定

color white/blue black/cyan white/black cyan/black

 

省略時は黒背景・白文字です。

 

splashimage 背景画像

splashimage=/image.xpm

 

xpm 形式・14色で作成します。

 

timeout タイムアウト

timeout=10

 

10秒操作がない場合はカーソル位置の OS を起動します。

timeout 行がない場合は自動起動を行いません。

 

default 初期値

default=0

default=/default

 

GRUB 起動時にカーソルがある場所を指定します。
数値の場合は 0 が一番上、1 が上から2番目となります。

/default を使うと、title 直後に savedefault がある項目はその場所を保存し、

次回起動時はその場所にカーソルが置かれた状態になります。

この場合、menu.lst があるところに default ファイルが必要です。

GRUB や GRUB4DOS のパッケージから入手して下さい。


menu.lst 項目記載例

UUID はパーティション毎に生成され、フォーマット時に更新されます。

GParted のコピーなどは UUID を維持するため、

パーティション番号が代わっても UUID を変えずに起動できます。


最小限の設定

title Linux
root (hd0,1)

kernel /boot/vmlinuz root=/dev/sda2 ro

inited /boot/initrd.img

 

root の指定は sda→hd0 sdb→hd1……(ここは GRUB 2 も同じ)

後ろの数字は sda1→0 と -1 の値になります。(GRUB 2 は sda1→1 とそのまま)

 

kernel 行に root と ro で起動できる場合が多いです。

ただし、この場合はスプラッシュ画像を表示しません。

グラフィック環境によってはむしろこの方が良い場合があります。

 

/ 内に vmlinuz および initrd のシンボリックがあればそれを、

なければ /boot 内にある vmlinuz および initrd を設定します。

 

Debian・Ubuntu

title Ubuntu
uuid b5c521a8-eb4a-58ad-dd1628941801

kernel /vmlinuz root=UUID=b5c521a8-eb4a-58ad-dd1628941801 ro quiet splash

initrd /initrd.img

 

UUID の指定はパーティション操作によってパーティション番号が変化しても
起動できるメリットがあります。

blkid を使用するのが楽でしょう。

 

$ blkid /dev/sda1

 

Ubuntu はパーティションの / に最新カーネル vmlinuz initrs.img の
シンボリンックリンクを置いています。

menu.lst ではこれを指定しておく事で、カーネルの更新による更新を行わずに

常に最新のカーネルで起動する事ができます。

antiX・MEPIS・MX Linux は生成されていないため、
直接カーネルを指定する必要があります。

 

openSUSE

title openSUSE
uuid b5c521a8-eb4a-58ad-dd1628941801

kernel /boot/vmlinuz root=UUID=b5c521a8-eb4a-58ad-dd1628941801 splash=slient quiet showapps

initrd /boot/initrd

 

openSUSE はパーティション /boot に最新カーネル vmlinuz initrd.img の
シンボリンックリンクを置いています。

menu.lst ではこれを指定しておく事で、カーネルの更新による更新を行わずに

常に最新のカーネルで起動する事ができます。

 

GRUB 2 から menu.lst へ追加する

次の辺りに起動オプションを含む記載が得られるかもしれません。

  • /boot/grub または /boot/grub2 内の menu.lst
  • /boot/grub または /boot/grub2 内の grub.cfg
  • /etc/grub.d 内の若い番号(10 ではじまる場合が多い)にあるファイル

GRUB 2 の linux 行が kernel 行に記載すべき起動オプションです。

 

ISO を起動する

title Linux (linux.iso)

    find --set-root /linux.iso

    map --heads=0 --sectors-per-track=0 /linux.iso (0xff) || map --mem --heads=0 --sectors-per-track=0 /linux.iso (0xff)

    map --hook

    chainloader (0xff)

 

メモリが大きい環境の場合、
このようにして ISO を直接起動する事が可能な場合があります。

サイズの小さい ISO が起動できるでしょう。

機種によって --heads=0 --sectors-per-track=0 なしで起動できる場合があります。

 

sdb の MBR にあるブートローダを起動する

title boot from sdb

map (hd1) (hd0)

map (hd0) (hd1)

map --hook

chainloader (hd0)+1

 

他のメニューを起動する

title MENU 2

configfile /menu2.lst

 

再起動

title reboot computer

reboot

 

電源オフ

title power off

halt


GRUB の復旧

USB メモリや CD・DVD から起動して
GRUB を復旧できる Linux がいくつか存在します。

いずれも GRUB2 向けのようですが、GRUB1 にも対応しています。

  • Rescatux - GRUB 以外に Windows の復旧も対応しています。
  • Super Grub2 Disk - GRUB メニューと OS を検出して一覧表示。起動可能に。
  • Boot-Repeir-Disk - 起動時で Boot-Repair を起動し、GRUB を復旧します。

Super Grub2 Disk はメニューを表示して起動するだけです。

復旧は起動した OS で作業する必要があります。