これは奇妙な質問です。 GRUBのデフォルトのOS選択を設定する方法を読みました( grubのタイムアウトとgrubのデフォルトのブートエントリを設定するにはどうすればよいですか? )。自宅から、VNCによってWindows 7からUbuntu 13に、Ubuntu 13からWindows 7に自動的に切り替えたいと思います。
ファイル/etc/default/grub
を手動で編集できますが、Windows環境内からSudo update-grub
を実行できません。
私の質問は、Windows環境内からこれを行う方法、または回避策を使用してデフォルトのブートローダーの選択を変更し、別のオペレーティングシステムをリモートで起動する方法はありますか?
デフォルトのメニュー選択は、GRUB "environment block"(デフォルトでは/ boot/grub/grubenvにある小さな1024バイトのファイル)に保存されます(または保存できます)。 WindowsとLinuxの両方からアクセス可能なドライブ(FATまたはNTFSパーティションなど)に簡単に配置し、それに応じて変更できます。母のラップトップ用に、小さなスクリプトを使用して、これをすでに一方向(Linux-> Windows)で実行しました。
#! /bin/bash
Sudo /usr/sbin/grub-set-default 0
Nohup bash -c "sleep 15s && Sudo /sbin/reboot" &
gnome-session-quit --no-Prompt --logout
また、プロンプトを表示せずに必要なコマンドを実行するために、/ etc/sudoersに次を追加しました。
%adm ALL=(root) NOPASSWD: /usr/sbin/grub-set-default, /sbin/reboot
あるいは、誰かがすでに重いリフティングを行っている可能性があります:
http://de.mcbf.net/david/grubchoosedefault/
まだこれを試していない..
約20年前、私のOS/2はそれをしました。ブートプロセスについてもう少し知っているので、それがどのように行われたか正確にはわかりません。パーティションブートセクタとブートフラグを移動しただけで、PBRにブートローダーがあった可能性があります。または、ブートセクタ/ MBRを異なるバージョンでdd'dしただけかもしれません。それらは現在動作する可能性があります。
ただし、grub2を別のNTFS grub2のみのブートパーティションにインストールする方が簡単かもしれません。その後、WindowsとLinuxの両方からgrub.cfgを直接編集できます。 grub.cfgを編集できますが、WindowsブートとLinuxブートの3つのgrub構成を作成するだけです。そして、WindowsブートまたはLinuxブートのいずれかを作業コピーにコピーするためのスクリプトを用意してください。その後、更新GRUBは必要ありません。
Windows 7の修復フラッシュドライブとして最初に作成したフラッシュドライブの1つにgrub2を上書きインストールしたため、同じフラッシュドライブからループマウント経由で他のLinux修復ISOを直接起動できました。 Windowsにインストールされたgrubの唯一の問題は、/ Boot&/ bootを作成しないことです。そうすると、大きな問題が発生します。 1つの/ Bootフォルダーに/ BCDと/ grubがありました。したがって、grub専用のパーティションを別に用意する必要はないかもしれませんが、Windowsを損傷しないように注意する必要があります。