web-dev-qa-db-ja.com

起動した最後のOSを記憶するようにGrubを構成できますか?

通常、ブートメニューには2〜3個のOSがあります。

  • Ubuntu 10.04
  • Windows 7
  • [場合によっては、Ubuntu10.04ネットブックなどの3番目のオプション]

デフォルトの選択(この場合はWindows 7)以外のOSを使用していて再起動すると、GrubはUbuntu 10.04で起動します。これは起こらないはずです。Windows7で再起動したときに、Windows 7のままにしておきたいのですが、最後の選択を記憶して起動するようにGrubを構成する方法はありますか?

あるいは、Grub onlyを再起動したときに(最初にコンピューターの電源を入れたときではなく)これを行った方がよいでしょう。私はこれが可能ではないかもしれないことを理解しているので、単純な最後の選択を思い出すことに満足しています。

17
Matthew

元のGrubでは、/ boot/grub/menu.lstで、defaultキーワードをに設定してこれを行います。 "saved"そして、各ブートメニューエントリでsavedefaultキーワードを使用します。


更新
Grub2はもう少し複雑です。それもまた進化を続けているため、Ubuntu 9.10と10.04の両方でGrub2を使用していますが、興味深いものにするためにパッケージ化および構成する方法には十分な違いがあります。

両方でsavedefaultトリックを実行する方法は次のとおりです。

  • Ubuntu 10.04:
    9.10方向はトリックです。 Lucidははるかに簡単です。詳細については buntuのヘルプ を参照してください。 / etc/default/grubで2つの変更を行う必要があります。

    1. GRUB_DEFAULT=0を読み取る行をGRUB_DEFAULT=savedに変更します

    2. GRUB_SAVEDEFAULT=trueを含む行を追加

    それでおしまい。実はそんなに悪くないのでは? Sudo update-grubを実行することを忘れないでください。

  • Ubuntu 9.10:
    これを機能させるために、Ubuntuフォーラムにはいくつかのハックがあります。どうやらsavedefaultキーワードはGrubv1.97ではバグがありました。 buntuフォーラムのこの投稿 1つの方法を提供します。 別の投稿が示唆しています 少し簡単な方法:

    1. GRUB_DEFAULT = saved/ etc/default/grubに設定します。

    2. これらの2行を /etc/grub.d/40_custom (下部近く、 "exec tail"行の後):

      saved_entry=${chosen}
      save_env saved_entry
      

    私はこの方法をUbuntu 9.10でテストしましたが、うまくいきました。次回の起動では、最後に選択したエントリが自動的に強調表示されます。タイムアウトと組み合わせると、これは最後に起動したOSで自動的に起動します。

そして、Sudo update-grubを実行することを忘れないでください。変更が終了した後。それは重要で、恥ずかしいほど忘れがちです。


Grubにはrebootcold bootを区別する方法がないため、Grub自体では再起動時にこれを実行できません。ただし、Linuxを起動している場合は、Sudo grub-set-default N(Nは0から始まるブートメニューエントリの番号)を使用して、次の起動時にエントリNを選択するように設定できます(エントリの代わりに)保存)。

理論的には、grub-set-defaultを実行したシャットダウンルーチン( pstartスクリプト 、おそらく)にフックしたものを一緒にハックすることができます。 Linuxにシャットダウンするように指示しました(ただし、再起動するように指示したときはそうではありません)。ただし、Windowsをシャットダウンすると、同じ機能は得られません。

GrubをFAT32またはNTFS/ bootパーティションにインストールすることを含むGrub4DOSまたはGrub1テクニックについて聞いた-これはgrubも実行できるようにする-set-default(Windowsの場合)。Windowsのログオフスクリプトから呼び出すことができます。前回それについて何かを見たとき、これはGrub2では不可能でした。それは今では変わっているかもしれません。

20
quack quixote

この投稿 はおそらくあなたにとって役に立つでしょう、それはかなり自明です。 10.04と9.10は同じGRUBバージョンを使用するため、状況はまったく同じである必要があることに注意してください。

3
marcusw