どのOSGrubが起動するかをリモートで制御するにはどうすればよいですか?
How Remotely Control Which Os Grub Boots
解決:
を使用して、特定のGrubメニューのブートエントリを再起動できます。 grub-reboot 。これは、リモートセッションからも実行できます。 SSH経由。
別のOSを起動するには、Grubメニューに表示されている位置を選択します。0:
sudo grub-reboot 
この場合、私のWindowsは正しい位置にあります4.発行するとき
sudo grub-reboot 4 && sudo restartGrub設定で定義したタイムアウト後、マシンはWindowsで再起動します。
Windowsから再起動した後、マシンはデフォルトのOSで起動します。これは次のように定義できます
sudogrub-set-defaultこれを機能させるには、定義する必要があるかもしれませんGRUB_DEFAULT =私たちに保存されました/ etc / default / grubですが、私のシステムではデフォルト設定でも機能しました。
悲しいことに、WindowsからWindowsを再起動することはこれではできません。
takkatの答えのおかげで別のアイデア:
- デフォルトのブートはUbuntuです
grub-reboot N whereNはWindowsのブートエントリです
- Windowsを再起動すると、デフォルトのブートであるUbuntuに戻ります。
不利益 :Windowsを再起動するには、2回再起動する必要があります:Windowsを再起動し、Ubuntuを起動させてgrub-Nをもう一度再起動してください! :-(
時間に応じて、grubを使用してデフォルトのOSを設定できます。「GRUBをスケジュールできますか?」を参照してください。つまり、定義された期間にデフォルトの「エントリ」(自動ログイン)を自動的に変更しますか?したがって、たとえば、$ MINUTEが奇数の場合はWindowsで起動し、$ MINUTEが偶数の場合はLinuxで起動するようにgrubを構成できます。
insmod datehook if [$ MINUTE -eq 0 -o $ MINUTE -eq 2 -o $ MINUTE -eq 4 -o $ MINUTE -eq 6 -o $ MINUTE -eq 8];次に、default = 'Ubuntu'を設定します。それ以外の場合は、default = 'Windows'fiを設定します。特定のOSにしたい場合;その時が来るまで待ってください。
この方法を使用する場合は、Grubに到達するまでにかかる時間を考慮する必要があります。 5分の時間枠を使用する方がおそらく信頼性が高くなります。
ブートエントリを切り替えることも可能だと思います。何かのようなもの :
if [$ default = 'Ubuntu'];次に、default = 'Windows'を設定します。それ以外の場合は、default = 'Ubuntu'fiを設定します。最後に起動したOSを記憶するようにgrubが構成されている場合(grub2に最後の選択を記憶させる方法は?)
PCが目的のOSで起動しない場合は、再起動するだけです。