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

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

デュアルブート設定があります:

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

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

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

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

編集(私が選択した回答に関して): 現在、/boot を含む ext4 ドライブをマウントして、編集スクリプトを作成中です。これは、週 40 時間の非技術職の傍ら、自由時間に行うため、かなり時間がかかる可能性があります。^^

答え1

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

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

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

Grub で最後のブート選択を繰り返す方法

これはかなり簡単です。powers を使って、次の項目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 の自動更新が正常に処理されます。

答え2

実行した内容を再現できますgrub-reboot。これは、最終的に以下を呼び出すだけのスクリプトです。

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

Windowsgrubメニューエントリの名前はどこにありますか。そうではないかもしれません

next_entry=Windows実行してみました。2行目に挿入するだけです/boot/grub/grubenv。ファイルシステム上のファイルだけであれば、Windows内でも全く同じことができますこれは Windows の問題として解決する必要がありますが、概要は次のとおりです。

  • ブートが存在するディスクをマウントします。これはおそらく ext4 なので、最も難しい部分です。これ役立つかもしれませんが、編集するには Windows で Linux を実行する必要がある可能性も否定できません。

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

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

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

スクリプトWindowsの場合これは私の得意分野から大きく外れており、ここで私たちが実際に行っていることではありません。しかし、必要なのはそれだけです。

答え3

grub-set-defaultgrub-reboot と同じことを行いますが、設定を永続化します。これは、あなたが尋ねたように Windows UI から正確に行うものではありませんが、おそらくうまくいくでしょう。

答え4

Windows のバージョンや UEFI を使用しているかどうかは指定されていません。

適切なUEFIブート(レガシーブートではない)を使用している場合は、一時的にWindows UEFIブートエントリで起動することができます。Linuxでは、などのツールを使用してこれを行うことができますefibootmgr。Windowsでは、個人的には簡単UEFI個人、GUI使用は無料ですが、企業やCLI使用は無料ではありません。安全性は保証できません。また、やや遅いようですが、機能しているようです。

Arch Linux (カーネル EFI シム、GRUB なし) と Windows 10 を使用する私自身のセットアップでは、開始画面で「EFI ブート オプションの管理」を選択すると、次のようになります。

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

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

関連情報