私はWindows 7とのデュアルブートでUbuntuサーバーでファイルサーバーを実行しています。今、真夜中にサーバーを再起動してWindows 7を起動できるスクリプトが必要です。Windows 7にカスタマイズしたスクリプトをいくつか入れて、夜間にWindows 7から実行し、朝にサーバーを起動すると、Ubuntuサーバーで自動的に起動するようにしました。
スクリプトで実行する方法を教えてください
前もって感謝します。
答え1
ここに、使用できるはずのソリューションがあります。見た目はきれいではなく、少し手間がかかり、使用している Ubuntu のバージョンによって異なる場合があります。私は 16.04 を使用してこれを思いつきました。また、このボックスには Windows がインストールされていないため、別のカーネルで起動するようにテストしました。デュアル ブートを使用しているため、grub メニューが既に表示されており、後で説明するようにサブ メニューではなくメイン メニューに Windows エントリがあることを前提としています。
/etc/default/grub
まずファイルを編集する必要があります
GRUB_DEFAULT="#"
おそらく0であるエントリを探します。それを変更して、GRUB_DEFAULT="saved"
その下に次の行を追加します。GRUB_SAVEDEFAULT="true"
次のようになります。
GRUB_DEFAULT="saved"
GRUB_SAVEDEFAULT="true"
...and so on...
ファイルを保存し、ターミナルで実行しますsudo update-grub
ここからが私の推測の部分です。コンピュータを起動してGRUBメニューを開くと…テストに使用したVMボックスでは次のエントリが表示されます。
Ubuntu
Advanced options for Ubuntu
Memory test (memtest86+)
Memory test (memtest86+,serial console)
Test1
これを機能させるには を作成する必要がありましたTest1 entry
が、このリストのどこかに があるような気がしますWindows entry
が、それがどこに該当するかはわかりません。そのメニュー項目がリストのどこに該当するかを数える必要があります。たとえば、あなたの がWindows entry
私のTest1 entry
と同じ位置にある場合、位置は 4 になります (Ubuntu は位置 1 ではなく 0 です)
これで、ファイルを作成する必要があります。startwin
この例では、startwin
お気に入りのエディターでファイルを開き、次のように入力します。
#!/bin/bash
grub-reboot 4
reboot now
(もちろん、4 は、 がWindows entry
配置されていると決定した番号です) ファイルを保存し、ターミナルを開きます。 が配置されているディレクトリに変更しstartwin
、実行可能に設定されていることを確認します。
sudo chmod +x startwin
これで、試してみる準備ができました。ターミナルを開き、ファイルがあるディレクトリに移動して、sudo ./startwin
作業内容をすべて保存し、開いているものはすべて閉じてください。これにより、コンピューターが再起動します。Windows で起動し、Windows に再起動を指示すると、再び Ubuntu に戻ります。
うまくいけば、深夜に実行されるように cron ジョブを設定するだけです。
編集して/etc/crontab
下部にエントリを追加
00 00 * * * root path/to/startwin/startwin
午前 7 時など Ubuntu に戻したいときに再起動する Windows タスクを作成します。
これで、午前 7 時に Windows タスクが自動的に Ubuntu を再起動し、深夜に Ubuntu スクリプトが自動的に Windows を再起動します。