どの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 restart

Grub設定で定義したタイムアウト後、マシンはWindowsで再起動します。

Windowsから再起動した後、マシンはデフォルトのOSで起動します。これは次のように定義できます

sudogrub-set-default

これを機能させるには、定義する必要があるかもしれませんGRUB_DEFAULT =私たちに保存されました/ etc / default / grubですが、私のシステムではデフォルト設定でも機能しました。



悲しいことに、WindowsからWindowsを再起動することはこれではできません。


takkatの答えのおかげで別のアイデア:

  1. デフォルトのブートはUbuntuです
  2. grub-reboot N whereNはWindowsのブートエントリです
  3. 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で起動しない場合は、再起動するだけです。