元のGrub では、/ boot /grub/menu.lstでデフォルトキーワードを「saved」に設定し、各ブートメニューエントリでsavedefaultキーワードを使用して、これを行います。
更新:
Grub2はもう少し複雑です。また、まだ進化しているため、Ubuntu 9.10と10.04は両方ともGrub2を使用していますが、物事をパッケージ化して構成する方法には、物事を面白くするための十分な違いがあります。
両方でsavedefaultトリックを行う方法は次のとおりです。
Ubuntu 10.04:
9.10の方向はトリックです。明idははるかに簡単です。参照してくださいUbuntuのヘルプをもっと血みどろの詳細については。/ etc / default / grubで 2つの変更を行う必要があります。
読み込みラインの変更GRUB_DEFAULT=0
にはGRUB_DEFAULT=saved
次の行を追加します GRUB_SAVEDEFAULT=true
それでおしまい。実際、それほど悪くないですか?実行することを忘れないでくださいsudo update-grub
。
Ubuntu 9.10:
これを機能させるために、Ubuntuフォーラムにいくつかのハックがあります。どうやらsavedefaultキーワードは、GRUBのv1.97でバギーでした。 Ubuntuフォーラムのこの投稿では、1つの方法を提供しています。 別の投稿では、少し簡単な方法を提案しています。
/ etc / default / grubにGRUB_DEFAULT = savedを設定します。
これらの2行を/etc/grub.d/40_custom(「exec tail」行の後の下部近く)に配置します。
saved_entry=${chosen}
save_env saved_entry
Ubuntu 9.10でこのメソッドをテストしましたが、動作します。次のブートでは、最後に選択されたエントリが自動的に強調表示されます。タイムアウトと組み合わせると、最後に起動したOSが自動的に起動します。
そして、走ることを忘れないでくださいsudo update-grub
。変更が完了したら。それは重要であり、恥ずかしいほど忘れがちです。
Grubには再起動とコールドブートを区別する方法がないため、Grubは単独で再起動することはできません。ただし、Linuxを起動する場合sudo grub-set-default N
は、(Nは0から始まる起動メニューエントリの番号です)を使用して、エントリNを(保存されたエントリではなく)次の起動時に選択するように設定できます。
理論的には、Linuxにシャットダウンするように指示したときに(ただし、再起動するように指示したときではなく)grub-set-defaultを実行するシャットダウンルーチン(おそらくUpstartスクリプト)にフックしたものをハッキングできます。ただし、Windowsをシャットダウンしても同じ機能は得られません。
GrubをFAT32またはNTFS / bootパーティションにインストールするGrub4DOSまたはGrub1のテクニックについて聞いたことがあります。これにより、Windowsからgrub-set-defaultを実行できるようになり、Windowsログオフスクリプトから呼び出すことができます。前回私がそれについて何かを見たとき、これはGrub2では不可能でした。それは今では変わっているかもしれません。
sudo update-grub
。Windows 7を起動してシャットダウンし、コンピューターの電源を入れてテストしました。Ubuntu 10.04(デフォルト)が選択されたままです。私はまた、「saved」の代わりに「etc」/「default」/「grub」に「saved_entry」を入れてみました(grub configスクリプトの動作はわかりません)が、助けにはなりませんでした。解決策1はまだ試していません。