grubがWindowsからWindowsを自動的に再起動する方法はありますか?


11

デュアルブートセットアップがあります。

  1. Ubuntu 16.04 LTS
  2. ウィンドウズ

現在、rebootUbuntuからWindowsにしたいときはgrub-reboot、適切な番号を引数として使用します。これはうまく機能します。

ただし、特定のプログラムをインストールまたは更新できるようにWindowsを再起動する必要がある場合があり、適切なgrubブートメニューエントリを手動で選択する必要があります。どのエントリをブートするかをgrubに指示する(Windows UIから)同様の方法はありますか?

grub-rebootコマンドが引数をファイルに渡し、そのファイルがgrub onによって読み取られると仮定しますreboot

編集(選択した答えに関して): 現在、/ bootを含むext4ドライブのマウントと編集のスクリプト化を検討しています。週に40時間の非技術的な仕事とは別に自由な時間にこれをやっているので、これにはおそらくかなり時間がかかるでしょう。^^


コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
18年

grubが自動的にWindowsを再起動するようになったときに、質問を将来更新してください。どのメソッドがあなたのために働いたかを知り、あなたが書いたWindowのスクリプト(もしあれば)を見てみたいです。他の多くの人も興味を持っていると思います。
WinEunuuchs2Unix

@ WinEunuuchs2Unix現在作業中です。Oliが言ったように、Windowsでのスクリプト作成は王室のPITAです。
アモンサン

@amonsan ext4スーパーブロック破壊reboot-to-windowsするext2fsdを使用することに対する妥協である関数で私の答えを更新しました。
WinEunuuchs2Unix

@amonsan Windows Updateを再起動して、自動的にWindowsに戻るようにシステムをセットアップしましたか?
WinEunuuchs2Unix

回答:


8

実行内容を複製できgrub-rebootます。最終的に呼び出すスクリプトにすぎません:

grub-editenv /boot/grub/grubenv set next_entry="Windows"

Windowsgrubメニューエントリの名前はどこですか。それではないかもしれない

走った。それはすべてに挿入next_entry=Windows/boot/grub/grubenvます。2行目で、もしそれがファイルであれば、ファイルシステムで、Windows内からまったく同じことを行うことができます。解決するのはWindowsの問題ですが、概要は次のとおりです。

  • ブートが存在するディスクをマウントします。これはおそらくext4であるため、おそらく最も難しいビットです。これは役立つかもしれませんが、編集するためにWindowsでLinuxを実行する必要があるかもしれません。

    ミュールが指摘しているように、それほど難しくなくてもかまいません。独自のFAT32パーティションに移動でき/bootます。これにより、Windowsでのマウントが簡単になります。

  • next_entry=Windowsファイルのコメントの後、ハッシュの前に(または何でも)挿入します。

  • アンマウントします。
  • リブート。

Windowsでのスクリプティングは私の快適ゾーンの外にあり、実際にここで行っていることではありません。しかし、あなたがする必要があるのはそれだけです。


1
この方法では、コメントで述べたようにチャットに移動したので、別の/bootパーティションに移動し、FAT32またはNTFSにフォーマットしてからWindowsで快適に編集するのが最善です。/boot特にUnix-y機能を必要とするものは何もありません。Powershellを使用してこのスクリプトを作成するのは簡単です。
ムル

19

最も簡単な方法はGrubを使用することです

grubWindowsからの制御は面倒です。WindowsからUbuntuにアクセスするためのサードパーティアプリケーションと、いくつかのハッキングが必要です。ただし、この投稿の上部から:デュアルブートディストリビューションの順序を変更するにはgrub、最後のメニューオプションで自動的に再起動するようにセットアップできます。したがって、Windowsで最初に起動し、午前2時に起動して更新を実行すると、grubWindowsが再ロードされ、更新が正常に終了します。

手動で再起動し、grubすべての次回の再起動からUbuntuを選択すると、Ubuntuが自動的にロードされます。現在のカーネルにバグがあり、grub選択した古いカーネルバージョンで自動的に再起動する場合、この機能は同様に機能します。

Grubが最後のブート選択を繰り返すようにする方法

これはかなり簡単です。sudoパワーを使用して/etc/default/grub、以下を編集および変更します。

#GRUB_DEFAULT=0 # Rather than option #1, we'll always default to last boot choice.
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

最初の行はコメントアウトされ、そのすぐ下に次の2行が挿入されます。

ファイルを保存し、ターミナルに入力します。

sudo update-grub

Windowsを再起動するUbuntuコマンドライン

現在、次のようなものを使用しています。

sudo grub-reboot x # Where x is Windows zero-based grub menu number
sudo reboot now

この変更されたStack Exchangeの回答から、grubのデフォルトを使用してWindowsを再起動できます。このコードを~/.bashrcファイルにコピーします。

function reboot-to-windows {
    WINDOWS_TITLE=`grep -i "^menuentry 'Windows" /boot/grub/grub.cfg|head -n 1|cut -d"'" -f2`
    sudo grub-set-default "$WINDOWS_TITLE"
    sudo reboot
}
  • ~/.bashrc新しいreboot-to-windows関数でファイルを保存します。
  • 現在のターミナルセッションを閉じます。
  • ~/.bashrcロードするために変更される新しいターミナルセッションを開きます。
  • 入力: ~/.bashrcして既存のターミナルセッションにリロードすることもできますが、一部の人はこれをしないことをお勧めします。

コマンドラインからWindowsを再起動するには、次を使用します。

reboot-to-windows

表示していないときにWindowsが自動的に再起動すると、Windowsが再起動します。これにより、Windowsが時々使用する複数の再起動サイクルでWindowsの自動更新を正常に処理できます。


1
この質問は、起動順序とは関係ありません。
ジェニファー

2
@Jenniferただし、質問はXY問題の例です。したがって、この答えは役に立ちます。さらに、Windows UIからブート順序を一時的に変更する方法を求めているため、実際にはブート順序についてです。
wizzwizz4

2

grub-set-defaultgrub-rebootと同じですが、設定を永続的にする必要があります。これは、あなたが尋ねたように、Windows UIからではありませんが、おそらくあなたのために機能します。


この質問は、起動順序とは関係ありません。
ジェニファー

そのコメントの意味がよくわかりませんが、説明してもらえますか?
セバスチャン・スターク

Amon Sanは、grubをデフォルトのwindowsにする方法を尋ねていません。zeは、windowsがすでに起動している場合、今すぐ再起動する方法、起動するOSを選択する方法を尋ねています。
ジェニファー

@Jennifer OPは、「今すぐWindowsを再起動する方法」を求めていません。その場合、OPは単にWindowsの再起動を選択してから、grubメニューでWindowsを選択できます。OPは、「Windowsが存在しないときにWindowsが自動的に再起動する場合、デフォルトのgrubメニューオプションではなく、Windowsに再起動するようにするにはどうすればよいですか」と尋ねています。少なくとも、これが主な問題の見方です。
WinEunuuchs2Unix

はい、OPはWindowsの再起動を選択してから、grubメニューでWindowsを選択できます。しかし、OPは、ブートメニューでWindowsを選択せずに、Windowsに自動的に戻る方法を具体的に求めています。つまり、介入なしでこれを行うにはどうすればよいですか。X Yingが多すぎる!
ジェニファー

1

どのバージョンのWindowsを使用しているか、UEFIを使用しているかどうかについては言及していません。

適切なUEFIブートを使用している場合(レガシーブートではない場合)、Windows UEFIブートエントリから一時的にブートすることができます。Linuxでは、これはのようなツールを使用して実行できますefibootmgr。Windowsでは、個人的にEasyUEFIを使用しています。個人的なGUIの使用は無料ですが、エンタープライズまたはCLIの使用は無料ではありません。その安全性を保証することはできません。また、やや遅いようですが、動作するようです

Arch Linux(カーネルEFIシム、GRUBなし)とWindows 10を使用する私自身のセットアップでは、開始画面で[Manage EFI Boot Option]を選択すると、次のようになります。

ワンタイムブートオプションを示す画像

UEFIブートを使用している場合は、Windowsに似たものに加えて、Ubuntu(GRUBをロードする)の1つのエントリ、およびその他のデバイス固有のオプションが表示されます。ワンタイムブートオプションを使用して、WindowsのUEFIブートエントリを1回ブートし、その後ブートをGRUBに戻すように設定できます。それを設定した後、通常どおり再起動します。


1
感謝しますが、それは私の好みのために毎回あまりにも多くの手動操作を必要とします。
アモンサン

1
肩をすくめて いずれにしても/boot、ext4として編集するのではなく、NTFSまたはFAT32に移行する必要があります。Windowsでのext4のサポートの記述は不確かで、そのようにリスクを冒しています。
ムル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.