次のデュアルブートセットアップを検討してください。
/dev/sda
にインストールされます/dev/sda1
は/boot
としてマウントされます/dev/sda6
は/
としてマウントされます/dev/sdb2
にインストールされます現状では、Grubは起動時にデフォルトでUbuntuを選択し、SSHを介してリモートでログインできます。 Grubの起動時にWindowsを選択することもでき、RDPを介してリモートでログインできます。
問題は、物理的にいないときに起動するOSを選択する方法がないことです。
この質問 は、Grubが最後に選択したオペレーティングシステムを自動的に起動する方法を説明しています。ただし、これは機能しません。 Windowsを選択した場合、PCをリモートで再起動してUbuntuを起動する方法はありません。
起動するOSをリモートで制御する方法はありますか?
grub-rebootを使用して、特定のGrubメニューブートエントリから再起動できます。これは、リモートセッションからも実行できます。 SSH経由。
別のOSを起動するには、Grubメニューの0
から始まる位置を選択します。
Sudo grub-reboot <num>
この場合、私のWindowsは4
の位置にあります。だから発行するとき
Sudo grub-reboot 4 && Sudo reboot
Grub設定で定義したタイムアウト後に、マシンはWindowsを再起動します。
Windowsから再起動すると、マシンはデフォルトのOSで起動します。これは次のように定義できます
Sudo grub-set-default <num>
これを機能させるには、GRUB_DEFAULT=saved
で/etc/default/grub
を定義する必要がありますが、私のシステムではデフォルト設定でも動作しました。
残念ながら、WindowsからWindowsを再起動することはできません。
takkatの答え に感謝する別のアイデア:
grub-reboot N
ここで、N
はWindowsブートエントリです短所:Windowsを再起動するには、2回再起動する必要があります:Windowsを再起動し、Ubuntuを起動してgrub-reboot N
をもう一度! :-(
時間に応じてgrubを使用してデフォルトのOSを設定できます。 GRUBをスケジュールできますか?これは、定義された期間にデフォルトの 'entry'(自動ログイン)を自動的に変更しますか? 。したがって、たとえば、$ 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]; then
set default="Ubuntu"
else
set default="Windows"
fi
特定のOSを使用する場合。その時が来るまで待ってください。
この方法を使用するには、Grubに到達するまでにかかる時間を考慮する必要があります。 5分の時間枠を使用する方がおそらく信頼性が高くなります。
ブートエントリを交互に切り替えることも可能だと思います。何かのようなもの :
if [ $default = "Ubuntu" ]; then
set default="Windows"
else
set default="Ubuntu"
fi
grubが最後に起動したOSを記憶するように設定されている場合( grub2に最後の選択を記憶させる方法 )
お使いのPCが目的のOSで起動しない場合は、再起動してください。