Ubuntu 16.04 LTS & Windows10デュアルブートでのOS切り替え
Ubuntu 16.04 LTS & Windows10デュアルブートでのOS切り替え
Mon, February 6, 2017
やりたいこと
デュアルブート(Ubuntu 16.04 LTSとWindows10)のOSをリモート接続している状態で切り替えたい.
仮定
- Ubuntu 16.04 LTSとWindows10でデュアルブートを構築
- ブートローダはgrubを利用
Ubuntu16.04 LST → Windows10
grub-rebootコマンドを使う.
sudo grub-reboot [num]
sudo shutdown -r now[num]は/boot/grub/grub.cfg のエントリ番号.
対象がsubmenuの中に存在する場合は以下のようにsubmenuを指定する番号とその内部でカーネルを指定するエントリ番号を>でつないで入力する.
sudo grub-reboot '[num:submenu]>[num:menu]'エントリ番号の確認
カーネルを更新するとエントリが増えていくため,起動したいOSのエントリ番号が変わることがある(最近のUbuntuではsubmenu以下に古いカーネルが追加されるため,エントリ番号は通常変化しない). 以下のコマンドを使い,エントリ番号を確認すると良い.
grep -e "menuentry " -e "^submenu" /boot/grub/grub.cfg|sed "s|\$menuentry_id_option .*$||g"|sed "s|--class .*$||g"|nl -n ln -v 0 -b p"^[ ]"|nl -v 0 -b p"^[^0-9]"Windows10 → Ubuntu16.04 LST
/boot/grub/grubenvを書き換え,次回起動時のOSを指定する.
これはgrub-rebootコマンドがやっていることと同じこと.
システム領域をマウントする
/bootが存在するパーティションをマウントする.
Windows側からLinuxパーティション(今回はext4)をマウントするためにExt2 Volume Managerを利用する.

利用していないドライブキャラクタ(たとえば,Eドライブ)を適当に設定しマウントする.

マウントしたドライブに/boot/grub/grubenvを確認.
/boot/grub/grubenvを書き換える
適当なテキストエディタで/boot/grub/grubenvを以下のように書き換える.
[num]は同様にエントリ番号.
# GRUB Environment Block
next_entry=[num]
###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################この状態はsudo grub-reboot [num]を実行した状況と同じなので,再起動すると指定したOSが起動する.
参考
Last updated on