Startup-Managerは、WindowsやLinuxをデュアルブート、トリプルブートで使うユーザーにとっては、必須ともいえるGUI(Graphical User Interface)ツールだったのですが、Ubuntu12.04LTSのリリースとともに、リポジトリからその姿を消しました。
Startup-Managerの代替となるGUIツールとして、grub-customizerがあちこちで紹介されているようですが、今回は、GUIアプリに頼らず、昔ながらのやり方でgrub2を設定してみました。
メニューエントリへの登録
先ずは、次のコマンドでデバイスマップを作成します。
sudo grub-mkdevicemap
デフォルト起動OSの設定
次に、起動時間やデフォルトの起動OSを変更します。
grub2の基本設定は、/boot/grub/grub.cfgにありますが、修正はすべて/etc/default/grubで行うことになっていますので、スーパーユーザーになり、次のコマンドでgrubを編集します。
sudo nano /etc/default/grub
ここではgedit nanoを使っていますが、日頃使い慣れたテキストエディタでOKです。また、gksuコマンドの代わりにsudoでもよい。
Windows 7とUbuntuのダブルブートで利用しているノートパソコンの場合、grubの先頭から12行目まではこんな感じになっている筈です。
起動時のデフォルトOSは、GRUB_DEFAULTで指定します。通常は、先頭のOSを0番として数字で指定しますが、ここでは、OS名の”Windows 7 (loader) (on /dev/sda1)”で指定しました。
なお、OS名を取得するには、次のgrepコマンドを使でば簡単です。
grep menuentry /boot/grub/grub.cfg
結果はこんな感じになるので、”で囲まれたOS名を指定(又は0から起算した番号指定)します。
menuentry 'Ubuntu, with Linux 3.2.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os { menuentry 'Ubuntu, with Linux 3.2.0-24-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os { menuentry 'Ubuntu, with Linux 3.2.0-23-generic' --class ubuntu --class gnu-linux --class gnu --class os { menuentry 'Ubuntu, with Linux 3.2.0-23-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os { menuentry "Memory test (memtest86+)" { menuentry "Memory test (memtest86+, serial console 115200)" { menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
起動時間の設定
起動時間の設定は、grubのなかのGRUB_TIMEOUTで指定します。GRUB_TIMEOUT=10となっていれば、選択メニューが表示されてから10秒後に、デフォルトOSが自動的に選択されるようになっています。数値を変えることで、この起動時間を変更できます。
なお、GRUB_HIDDEN_TIMEOUTがコメントアウトされていますが、先頭の#を削除すると、選択メニューが表示されなくなりますので、ご注意を。
最後の仕上げとGrub2の再設定
grubの編集が終わったら、次のupdate-grubコマンドで変更内容を反映させます。
sudo update-grub
なお、致命的なタイプミスなどにより、起動できなくなったときは、慌てず騒がずGrub2の再設定を行いましょう。
今後は、冒頭で紹介したgrub-customizerなど、簡単便利なGUIツールが公式リポジトリにも登録されるようになるでしょうが、こういうCLI(Command Line Interface)による設定も覚えておくと、どこかで役に立つときがあるかもしれません。