Diary on wind(跡地)

おもにPC関係(2008-2013)、跡地兼日記避難所(2014-)

デフォルトでWindowsを起動するように設定する [Ubuntu 10.04(GRUB2)]

2010-09-19 11:23:17 | Ubuntu攻略

日本語のサイトをちょこっと検索してみたがUbuntu 8.xx時代の話ばかりで当てにならなかったので、海外サイトを調べまとめてみた。


○前置き
Ubuntu 10.04(正確には9.10以降)では新規インストール時にGRUB2というブートローダーがインストールされるが、これはUbuntu 8.xxで使われていたGRUBとは大きく仕様が変わっているらしい。
なのでUbuntu 8.xxの解説にあるmenu.lstの編集は通用しない。
(ただしUbuntu 9.04以前から9.10以降にアップグレードしている場合はGRUB 2を手動でインストールしない限りはGRUBのまま。
自動でGRUBからGRUB2にアップグレードされることはない。)

とりあえずGRUB2の解説リンク集
・GNUのGRUB2マニュアル→ http://www.gnu.org/software/grub/manual/
・Ubuntuサイトの解説(文書は公式ではなくコミュニティによるもの)→ https://help.ubuntu.com/community/Grub2
・Ubuntuフォーラムの解説→ http://ubuntuforums.org/showthread.php?t=1195275

Ubuntuフォーラムの解説が一番読みやすいと思ったが、こちらは情報が古くなっている可能性もあるので、GNUのマニュアルなどと並行して読むことをお勧めする。


○本題
結論から言うと、/etc/default/grub ファイルの「GRUB_DEFAULT=0」を書き換えて「update-grub」を実行するだけ。

GRUB_DEFAULT= にはデフォルトで起動したいOSを数字、文字列、「saved」を指定できる。
・数字 - ブート選択画面で一番上に表示される項目を0、次を1、2、…とした数字で指定。
・文字列 - ブート選択画面に表示される文字列で指定する。(例:GRUB_DEFAULT="Ubuntu, with Linux 2.6.32-24-generic")
・saved - 前回選択&起動したOSをデフォルトで選択する。



○例:GRUB_DEFAULTを文字列で指定してWindows 7を標準で選択、自動ブートするように設定する
1. 端末で「cat /boot/grub/grub.cfg」を実行する(/boot/grub/grub.cfgを閲覧)
grub.cfgにブートメニューの記述があるので、この中からデフォルトに設定したいOSのメニュー項目を探してメモorコピーする。
Windows 7の場合は
menuentry "Windows 7 (loader) (on /dev/sda2)" {
というような行があるはずなので、この"Windows 7 (loader) (on /dev/sda2)"をメモorコピーする。

2. root権限で/etc/default/grubを編集する。
先ほどコピーした文字列をGRUB_DEFAULT=の後に貼りつけてダブルクォーテーションでくくる。
必要であれば GRUB_TIMEOUT も変更しておくとよい。
GRUB_TIMEOUT=-1 を指定するとタイムアウトを無効にできる(ユーザーが選択するまでブートしない。)


3. 端末で「sudo update-grub」を実行する。


・新たにWindowsや他のOSをインストール、削除した時は、これらの手順の前に「os-prober」と「update-grub」を実行してgrub.cfgを更新しておくこと。
実行・出力例:

$ sudo os-prober
[sudo] password for user: 
/dev/sda2:Windows 7 (loader):Windows:chain
/dev/sda7:Ubuntu 10.04.1 LTS (10.04):Ubuntu:linux
$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-24-generic
Found initrd image: /boot/initrd.img-2.6.32-24-generic
Found linux image: /boot/vmlinuz-2.6.32-21-generic
Found initrd image: /boot/initrd.img-2.6.32-21-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda2
Found Ubuntu 10.04.1 LTS (10.04) on /dev/sda7
done





・本稿とは関係ない話だが、ブートメニューの項目名(OSのタイトル?)を変えるのは予想以上に苦労するみたい。
ブートメニューは update-grub を実行した時に /etc/grub.d/ 内にあるスクリプトによって作成されるのだが、
項目名もこのスクリプトが決めている。
つまり、ブートメニューの項目名を変えるにはこのスクリプトを自分で作成、または編集しなければならない。
興味がある方はこちら(http://www.dedoimedo.com/computers/grub-2.html)を読むべし。



4 コメント

コメント日が  古い順  |   新しい順
情報ありがとうございます。 (たら~く)
2011-01-09 15:18:38
NTLDRを使いたいので、grub 2になってから悩みました。
ブログ記事参考になりました。

返信する
大変参考になりました (nonac001)
2012-11-15 04:12:06
興味本位でUbuntuを導入しました。
大変参考になったので、私のブログにURLを表示させていただきたいと思います。
返信する
Re: 大変参考になりました (kari)
2012-11-15 21:27:34
コメントありがとうございます。リンクはご自由にどうぞ。

ところで、UbuntuとWindowsとの両立はwubiを使う方法もあります。
それぞれ利点や欠点がありますので、それを考えた上で検討してみて下さい。
返信する
助かりました (mura)
2013-11-18 01:24:27
久々にlinuxをインストールしましたが浦島太郎状態で困ってました。rootになるのも調べました。なんとかwindowsをdefaultにできました。ありがとうございました。
返信する