日本語のサイトをちょこっと検索してみたが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)を読むべし。


旧ブログでのコメント

AUTHOR: たら~く
URL: http://antivista.cocolog-nifty.com/
DATE: 2011/01/09 15:18:38
情報ありがとうございます。
NTLDRを使いたいので、grub 2になってから悩みました。
ブログ記事参考になりました。

AUTHOR: nonac001
URL: http://d.hatena.ne.jp/nonac001/
DATE: 2012/11/15 04:12:06
大変参考になりました
興味本位でUbuntuを導入しました。
大変参考になったので、私のブログにURLを表示させていただきたいと思います。

AUTHOR: akm
URL:
DATE: 2012/11/15 21:27:34
Re: 大変参考になりました
コメントありがとうございます。リンクはご自由にどうぞ。

ところで、UbuntuとWindowsとの両立はwubiを使う方法もあります。
それぞれ利点や欠点がありますので、それを考えた上で検討してみて下さい。

AUTHOR: mura
URL:
DATE: 2013/11/18 01:24:27
助かりました
久々にlinuxをインストールしましたが浦島太郎状態で困ってました。rootになるのも調べました。なんとかwindowsをdefaultにできました。ありがとうございました。


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!