私はデュアルブートLinux / Windowsシステムをセットアップし、あるシステムから別のシステムに頻繁に切り替えます。 GRUBプロンプトで停止せずにWindowsに直接再起動するために、メニューの1つにメニュー項目を追加できるかどうか疑問に思います。
私は見たこの問題フォーラムでは、これはまさに私が望むものですが、私の場合ではなくliloを処理しています。
GRUBメニューの基本項目を修正して再起動する解決策を思いつきましたが、いくつかの欠点があり、よりきちんとした選択肢があるかどうかを知りたいです。
(また、WindowsからLinuxに直接起動するソリューションにも興味がありますが、これはおそらくもっと難しく、ここにはありません。
修正する誰が尋ねたと思います。エマルジョン/boot/grub/grubenv
これが提案された答えであれば、編集してgrub-reboot
実行することをお勧めします。 )grub-set-default
grub-editenv
どんなアドバイスもよろしくお願いします。
修正する:
これは私のGRUBのバージョンです。(GRUB) 1.99-12ubuntu5-1linuxmint1
実行しようとしましたが、grubonce
コマンドが見つかりませんでした。リポジトリを検索しましたが、何も見つかりませんでした。私はLinux Mintを使っていますが、そうかもしれません...
man grub-reboot
私の要件にも合うようですgrubonce
。また、どこでも使用できます(少なくとも私は grub パッケージの一部だと思います)。 2つの関連コマンドが表示されますgrub-editenv
。grub-set-default
sudo grub-set-default 4
これを実行してから実行すると、grub-editenv list
次のような結果が出ることがわかりました。
saved_entry=4
実行すると、grub-reboot 4
次の結果が表示されます。
prev_saved_entry=0
saved_entry=4
これはどちらも同じことを意味します(1つは一時的で1つはそうではありません)。
驚くべきことに、私が試したとき:
sudo grub-reboot 4
sudo reboot now
動作しません。まるで何もしないようです。通常どおりメニューを表示し、最初の項目を選択し、10秒後にその項目を開始すると言います。
もう一度試してみましたが、私が間違って書いたのではないかと思いました(最初から始めましたか?)。当時は、メニュー画面でのみ停止して起動するには、コンピュータをハードリセットする必要がありました。
誰もがこれを試してみて、私だけそのようなものであることを確認できたら、非常に感謝します。 (ミントはいつも私を悲しくしました。これは変化のための良い機会になります:P)。
のコードを読むと/boot/grub/grub.cfg
これが行く道だと思われますが、私が観察したところによると、これらの設定は無視されます。
答え1
- /etc/default/grubを編集し、次のよう
GRUB_DEFAULT=0
に置き換えます。GRUB_DEFAULT=saved
sudo update-grub
あなたのコマンドは次のとおりです
sudo grub-reboot "$(grep -i windows /boot/grub/grub.cfg|cut -d"'" -f2)" && sudo reboot
ㅏ美しい
~/.bashrc
またはの機能は.bash_aliases
次のとおりです。# Reboot directly to Windows # Inspired by http://askubuntu.com/questions/18170/how-to-reboot-into-windows-from-ubuntu reboot_to_windows () { windows_title=$(grep -i windows /boot/grub/grub.cfg | cut -d "'" -f 2) sudo grub-reboot "$windows_title" && sudo reboot } alias reboot-to-windows='reboot_to_windows'
編集者注:
私は変わった廃止予定のバックティック(
``
)$(...)
構造。一般的に、現在に従うように書き直しました。POSIX(ウィキペディア)標準に応じて、いくつかの他のマイナーな変更が適用されます。
完全性のために、比較のために以下の機能を変更せずにそのままにしました。
grub.confにWindows用の複数行が含まれている場合、次の関数は最初の行で始まる行にのみ焦点を合わせ、最初の行のみを選択しmenuentry
ます(Windowsを参照)。
function my_reboot_to_windows {
WINDOWS_TITLE=`grep -i "^menuentry 'Windows" /boot/grub/grub.cfg|head -n 1|cut -d"'" -f2`
sudo grub-reboot "$WINDOWS_TITLE"
sudo reboot
}
答え2
このコマンドが正しく機能するためには、grub-reboot
いくつかの必要な構成を変更する必要があります。
- grubのデフォルト項目はに設定する必要があります
saved
。可能な場所の1つはGRUB_DEFAULT=
次の行です。/etc/default/grub
grub-set-default
基本項目を一般的に使用する項目に設定するために使用されます。- grub設定を更新します(例
update-grub
:)。
これで初期設定が完了します。今後は一度だけ始めてgrub-reboot <entry>
ください<entry>
。
答え3
そのために、Ubuntu 20.04/22.04用のツールを作成しました。 https://github.com/mendhak/grub-reboot-picker
以前のUbuntuでも動作できますが、テストしたことはありません。
答え4
@jw013のコメントに同意します。 grub-rebootにメニュータイル(親メニュータイトルを含む)を提供することもできます。たとえば、
$ sudo grub-reboot "Advanced options for Ubuntu>Ubuntu, with Linux 4.13.0-26-generic"
$ sudo reboot
そのうち「Ubuntu Advanced Options」が親メニューで、「Ubuntu, with Linux 4.13.0-26-generic」がサブメニューです。