遠隔で起動OSを切り替える(スクリプト付き)

デュアルブート環境の場合、遠隔で起動OSを相互に切り替えたいときがあります。しかし起動時に現れるGRUBのOS選択画面は、リモートからアクセスできません。そのため、デフォルト起動の設定を再起動時に遠隔で行えるようにします。

Linux(Ubuntu)からWindowsに切り替える

GRUBのデフォルト起動OSを切り替えれば可能です。

まず、GRUBの起動メニューのエントリー名を vi /boot/grub/grub.cfgから確認します。

ファイルの中に、

という形をした部分がありますので、そのエントリー名をシングルクオテーション含めてそのままコピーし、 /etc/default/grubの中の

の行を、

とすれば、次回起動時に指定したOSがデフォルトで起動されます。

サブメニューだった場合

もし、

というようになっていてサブメニューのエントリーを指定したい場合は、

というように、 > で繋げばいいようです。

以上のことを、Linuxからならそのまま、Windowsからなら、ext4ドライバを導入して同様に行えばリモートからの再起動でOSを切り替えることができます。

毎回行うのは不便なので、スクリプトを作成

以上のことを、毎回行うのは非常に面倒です。メニューを解析して再起動後のOSを選択できるスクリプトを作成しました。

reboot.shとして保存し、リブートしたいときに

を実行し、選択すれば、再起動後1度だけそのOSで実行されます。(上記スクリプトを動作させても1度リブートしてしまえば元通りになるはずですが、動作の保証はしませんので実行は自己責任でお願いします。)

WindowsからLinux(Ubuntu)に切り替える

ext2fsdを用いてbootファイルにアクセスを試みましたが、うまく行かなかったため保留。上記スクリプトは、Windowsでの再起動後はLinux(デフォルト)に戻る使用なので、メインユースがLinuxであれば問題ないと思われます。