GRUB2 めも

2021.4.1 移転しました...
  • このページの旧URLは
    • http://www10.plala.or.jp/palm84/grub2.html
内容古いです

最終更新日は 2011.8.14 です!ご注意。

パーティション指定は 例 : (hd0,msdos1) 等が正しいです。

 はてなブックマーク

2011.06.13 作成中...
最終更新日 2011.8.14

Linux 初心者の覚書... 間違ってたらすみません。。。

ドキュメント 3

参考になるページ

grub.cfg 4

GRUB(Legacy) の menu.lst にあたる設定ファイルは /boot/grub/grub.cfg

Ubuntu など通常はこのファイルを直接編集せず /etc/grub.d/, /etc/default/grub ディレクトリのファイルを編集、update-grub コマンドの実行により設定を反映させて生成。

menuentry 'Ubuntu, with Linux 2.6.32-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set a84f459b-1367-41c4-8a71-551da566fcb9
linux /boot/vmlinuz-2.6.32-22-generic root=UUID=a84f459b-1367-41c4-8a71-551da566fcb9 ro   splash quiet
initrd /boot/initrd.img-2.6.32-22-generic
}

【注意】GRUB(Legacy) とは違いパーティションNo.は 1 から。

menuentry "Windows NT/2000/XP (loader) (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set xxxxxxxxxxxxxxxx
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry 'Windows 7 (loader) (on /dev/sda2)' {
insmod ntfs
set root='(hd0,2)'
search --no-floppy --fs-uuid --set xxxxxxxxxxxxxxxx
chainloader +1
}
menuentry 'FreeDOS (on /dev/sdf1)' {
insmod fat
set root='(hd1,1)'
search --no-floppy --fs-uuid --set xxxx-xxxx
drivemap -s (hd0) ${root}
chainloader +1
}

コマンド 5

ブートメニュー画面、cキーでコマンドラインへ、Escで戻る

insmod ext2

ファイルシステムなどのモジュールをロード。ロード済なら不要。lsmod で確認可。モジュールの場所は /boot/grub など。

root (hd0,1)
linux /boot/vmlinuz root=UUID=xxxx-xxxx vga=xxx
initrd /boot/initrd,gz
root (hd0,0)
chainloader +1
drivemap -s (hd0) (hd1)
drivemap -s (hd0) ${root}
grub> ls
(hd0) (hd0,2) (hd0,1) (hd1) (hd1,5) (hd1,1)
grub> ls -l
Device hd0: Partition table
        Partition hd0,2: Filesystem type ntfs - Label "data", UUID xxxxxxxxxxxxxxxx
        Partition hd0,1: Filesystem type ntfs - Label "Windows", UUID xxxxxxxxxxxxxxxx
ls /boot
<ディレクトリ指定でファイル名表示>
insmod ext2
search --file --set=root /grub.exe
linux /grub.exe
loopback loop0 /path/to/image
set root=(hd0,1)
chainloader +1
parttool ${root} boot+

※ うまく行かないことが多い?

set pager=1

Ctrl-cでquit

※ 1行ごとに停止したりするのでオフにするには

set pager=

インストール 6

Ubuntu 10.04 では

インストール先の変更 (Ubuntu 10.04 の例)

Kubuntu 10.04 では下記で設定変更するだけでイケました(sdb2 から sdbへ、及び sdb から sdb2 へ変更)。

$ sudo dpkg-reconfigure grub-pc

コマンドライン・パラメータ等は何も変更せず Enter で飛ばす。下記画面で対象を Space キーでチェックオン・オフする。

dpkg-reconfigure grub-pc のスクリーンショット

※【注】この例は USB HD (/dev/sdb2) にインストールしてます。

念のために下記コマンド2点の実行もしといた方がいいかな。

$ sudo grub-install /dev/sdx
$ sudo update-grub

起動ディスク 7

Super Grub2 Disk が便利。FD/iso/USB の isohybrid イメージをダウンロード可。

GRUB(Legacy) との違い 8

チェインロード 9

GRUB2から他のブートローダーをチェインロード

insmod ntfs
set root=(hd0,1)
chainloader +1
insmod ntfs
search --file --set=root /bootmgr
chainloader +1
insmod ntfs
search --file --set=root /ntldr
chainloader +1
insmod ext2
search --file --set=root /grub.exe
linux /grub.exe

他のブートローダーからGRUB2をチェインロード

Windows ブートメニューに GRUB2 を追加。Windows ブートマネージャー (BOOTMGR, NTLDR) から GRUB2 をチェインロード

スクリーン・ショット

Written by yassy