Ubuntu 16.04 LTS & Windows10デュアルブートでのOS切り替え
Ubuntu 16.04 LTS & Windows10デュアルブートでのOS切り替え
月, 2月 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の中に存在する場合は
sudo grub-reboot '[num:submenu]>[num:menu]'
のようにsubmenuを指定する番号とその内部でカーネルを指定するエントリー番号を>
で繋いで入力する.
エントリー番号の確認
カーネルを更新するとエントリーが増えていくため,起動したい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が起動する.
参考
最終更新日