Grubを修復するにはどうすればよいですか? (Windowsをインストールした後にUbuntuを元に戻すにはどうすればよいですか?)

Ubuntuのブートファイルを食べたWindows7をインストールしました。 コンピュータを起動するとき、それは今私にUbuntuを起動するオプションを与えることなく、Windowsにまっすぐに行きます。

Ubuntuを取り戻すにはどうすればよいですか?

Windowsをインストールすると、Windowsはそれがマシン上の唯一のオペレーティングシステム(OS)であると想定します。 したがって、GRUBを独自のブートローダに置き換えます。 あなたがしなければならないことは、WINDOWSブートローダーをGRUBに置き換えることです。 私はGRUBコマンドやそのようなものを使ってgrubを置き換えるためのさまざまな指示を見てきましたが、私にとって最も簡単な方法は単純にするこ chroot あなたのインストールと実行に update-grub. chroot それはあなたがあなたの実際のインストールで作業することができますので、素晴らしいです,代わりにあちこちに物事をリダイレ それは本当にきれいです。

ここではどのように:

  1. 「Ubuntuを試す」モードで、ライブCDまたはライブUSBから起動します。
  2. メインパーティションのパーティション番号を決定します。 sudo fdisk -l, sudo blkid またはGParted(デフォルトではライブセッションに既にインストールされている必要があります)がここで役立ちます。 私はこの答えでそれがそうであると仮定するつもりです /dev/sda2 しかし、 お使いのシステムの正しいパーティション番号を使用していることを確認してください!

    メイン-パーティションがLVM内にある場合、装置は代りに置かれます /dev/mapper/、最も可能性の高い, /dev/mapper/{volume}--{os}-root どこで {volume} はLVMボリューム名であり、 {os} オペレーティングシステムです。 実行 ls /dev/mapper 正確な名前のために。

  3. パーティションをマウントする:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2

    あなたが別のものを持っている場合 /boot, /var または /usr 間仕切り、これらのパーティションをマウントするには、手順2と3を繰り返 /mnt/boot, /mnt/var/mnt/usr それぞれ。 例えば,

    sudo mount /dev/sdXW /mnt/bootsudo mount /dev/sdXY /mnt/varsudo mount /dev/sdXZ /mnt/usr

    交換 sdXW, sdXY、および sdXZ それぞれの仕切り数を使って。

  4. バインドマウントいくつかの他の必要なもの:

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
  5. UbuntuがEFIモードでインストールされている場合(不明な場合は、この回答を参照してください)、使用 sudo fdisk -l | grep -i efi またはGPartedを使用してEFIパーティションを検索します。 それはのラベルを持っています EFI. このパーティションをマウントし、 sdXY お使いのシステムの実際のパーティション番号を使用して:

    sudo mount /dev/sdXY /mnt/boot/efi
  6. chroot あなたのUbuntuのインストールに:

    sudo chroot /mnt
  7. この時点で、ライブセッションではなくインストールに入り、rootとして実行しています。 Grubの更新:

    update-grub

    エラーが発生した場合、またはステップ7に進んでも問題が解決しない場合は、ステップ8に進みます。 (それ以外の場合は省略可能です。)

  8. 状況によっては、grubの再インストールが必要になる場合があります:

    grub-install /dev/sdaupdate-grub # In order to find and add windows to grub menu.
  9. UbuntuがEFIモードでインストールされていて、efiパーティションのUUIDが変更されている場合は、次のように更新する必要があります。 /etc/fstab. それを比較する:

    blkid | grep -i efigrep -i efi /etc/fstab

    現在のefiパーティションUUID(から blkid)のものとは異なります。 /etc/fstab、更新 /etc/fstab 現在のUUIDを使用します。

  10. すべてがエラーなしで働いていた場合、あなたはすべて設定されています:

    exitsudo reboot
  11. この時点で、正常に起動できるはずです。

正常に起動できず、エラーメッセージが表示されなかったために手順8を実行しなかった場合は、手順8で再試行してください。

  • 時にはGRUB2に正しいものを与えることがあります 設定 パーティションでは十分ではなく、実際にマスターブートレコードにインストール(または再インストール)する必要があります。 チャットでユーザーを支援する経験は、エラーメッセージが表示されない場合でも、手順8が必要な場合があることを示しています。

Windowsインストーラは、システム内の他のOSを気にしません。 そのため、マスターブートレコードに独自のコードを書き込みます。 幸いなことに、解決策も簡単です。

MBRを修復する必要があります。 次の操作を行います

Ubuntuのライブusb/cdを使用して起動します。 使用 boot-repair 問題を解決するには。

ライブusb/cdで起動した後、ターミナルで次のコマンドを実行します:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get updatesudo apt-get install -y boot-repair && boot-repair

使用 Recomended Repair.

enter image description here

より多くの情報 - https://help.ubuntu.com/community/Boot-Repair

ライブUbuntu USB pendriveまたはCDandから起動します
次の手順でubuntuにBoot-Repairをインストールします

ターミナルを開き、次のコマンドを実行します

sudo add-apt-repository ppa:yannubuntu/boot-repairsudo apt-get updatesudo apt-get install boot-repair

>>インストールが完了したら、Gnomeを使用している場合はSystem-Administration-Boot-Repairメニューから起動し、Unityを使用している場合はダッシュで"boot-repair"を検索することができます。 次に、次のスクリーンショットに従ってください:

方法1

  • 詳細オプションをクリックします

Initial screen

  • 以下に示すオプションにチェックを入れます

advanced option

  • タブをGrub Locationタブに変更し、図に示すオプションにチェックを入れます

enter image description here

[適用]を押してシステムを再起動します

方法2

  • 最初のスクリーンショットに示すように、推奨されるブート修復オプションを選択します

ドキュメント :

ちょうど取付けて下さい easyBCD Windows7では、

>>>新しいエントリの追加Linux/BSD(select)Grub2(push)エントリの追加

その後、選択することができます Ubuntu に行くには、Windows7のブートローダで Grub2 (以前のブートローダ)。

EFIベースのシステム(Windows8以降に同梱されているほとんどのシステムなど)では、Windowsはブートローダーを更新したり、既定のブートローダーにリセットしたりすること これは、OSを再インストールしたり、主要なシステム更新(たとえば、最新のWindowsリリースへのアップグレード)を実行したりするときに特に一般的です。 Windowsは、EFIベースのコンピュータ上のGRUBファイルを実際に消去する可能性は低いことに注意してください。 Ubuntuを起動するために必要なものはすべてまだ準備されています。 これらのケースでは、GRUBの完全な再インストールはやり過ぎであり、実際には新しい問題を引き起こす可能性が(小さな)あります。

したがって、これらの場合にGRUBを再インストールする代わりに、GRUB(または任意のブートローダーまたはブートマネージャ)をデフォルトにリセットすることをお勧 これを行うには、次のようないくつかの方法があります:

  • イージーエフィ --システムがWindowsに直接起動している場合、起動順序を調整する最も簡単な方法は、次を使用することです イージーエフィ, これは、EFIの起動順序を管理するための無料の(基本バージョン用の)サードパーティ製のGUIツールです。 それはかなり自明だ-を見つけます ubuntu ブートオプションのリストにエントリを追加し、リストの一番上に移動します。 次回再起動すると、GRUBが表示されます。 (GRUB以外のものを使用する場合は、そのエントリを見つける必要があります。)
  • bcdedit --窓 bcdedit ツールを使用して、GRUBをデフォルトの起動順序に設定できます。 コマンド bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi、入力された 管理者 ただし、コンピュータがセキュアブートをアクティブにして起動した場合は、この操作を行います, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi 代わりに必要になります。 実際、後者のコマンドは次のようになります 通常は Secure Bootが使用されていなくても動作するので、最初にそのコマンドを使用します。 私が提示したものとは少し異なる構文を必要とするより高度なWindowsシェルツールがあることに注意してください、しかし私は詳細を覚えていません。
  • Ubuntuへのワンタイムブート --ほとんどのEfiは、組み込みのブートマネージャを提供し、ファンクションキー、Escを押すか、システム起動プロセスの初期段階で入力してアクセスします。 チャンスは ubuntu Ubuntuを起動するためのエントリがこのブートマネージャメニューに表示され、Ubuntuを起動できるようになります。 または、「インストールする前に試してみてください」モードで起動したインストーラのように、Ubuntu emergency mediumで起動することもできます。 いずれにしても、次のように使用できます efibootmgr 起動順序を調整するには:
    1. タイプ sudo efibootmgr ブートエントリを表示するには。
    2. 現在の注意 BootOrder ライン。
    3. のエントリを検索します。 ubuntu そして、その注意してください Boot#### 番号。
    4. タイプ sudo efibootmgr -o xxxx[,yyyy,zzzz,....] 起動順序を変更するには、次のようにします xxxx Ubuntuの番号。 その後のことはあまり重要ではありませんが、Windowsがリストにない場合は、起動順序の先頭に戻ってくる可能性が高いと指摘しました。 したがって、おそらくWindowsがリストに含まれていることを確認する必要があり、元のエントリがすべてそこにあるようにリストを並べ替えるのが最も安 ubuntu エントリがリストの先頭に移動しました。
  • ファームウェアセットアップユーティリティー --いくつかのEFIsのセットアップユーティリティを使用すると、起動順序を調整することができます。 詳細はEFIによって大きく異なるため、詳細については説明しませんが、setup utilityでそのようなオプションを探すことができます。

これらの手順には、次のような他の変形があります bcfg EFIシェルでは、次を使用します bless macOSでは、私の レフィンド ワンタイムブートなどを行うには それは最も簡単な解決策である可能性が高いです。 時々Windowsは、しかし、それが起動するたびに自分自身をデフォルトにすることを主張し、レポートはそれを示しています bcdedit その問題に対処するより良い仕事をするかもしれません。

ただし、Windows8以降に同梱されているほとんどのコンピュータがEFIモードで起動するため、BIOSモードのインストールはますますまれになるため、多くの場合、grubを盲目的に再インストールするのではなく、EFIの方法で問題に対処することをお勧めします。

今ではより簡単な解決策があります:

  1. 再起動し、コンピュータのBIOSオプション(F2、または場合によってはF11)を入力します。
  2. に行く ブーツ メニュー、および選択 起動デバイスの優先順位
  3. チェックするかどうか Windowsブートマネージャ はメインブートドライブの上にあります(通常は SATA HDD … または IDE HDD …). そうである場合は、起動ディスクの優先順位をWindowsブートマネージャの優先順位よりも上に移動します。
  4. BIOSオプションを保存し、終了します(通常はF10)。

これは、サムスンシリーズ7ChronosラップトップデュアルブートWindows8とUbuntu13.10、セキュアブート無効、UEFIとレガシーブート有効に上でテストされています。

ブート修理は私のために働いた。 それはあなたがコマンドラインを使用する必要はありません、あなただけのボタンをクリックする必要があり、非常に非常に簡単にグラフィカルア

使用可能なすべての修復オプションについては、次の表に記載されています。 Ubuntuドキュメント そして、そこには 個別ページ ブート修復を開始する方法(ブータブルディスクを作成するか、既存のUbuntu liveディスクにインストールすることによって)とその使用方法を説明します。

UbuntuライブCDを起動し、Boot-Repairをインストールして実行するだけです。

GRUBが壊れている場合、ユーザーは一般的にシステムにアクセスできないため、ライブセッション(live-CDまたはlive-USB)から修復を実行する必要があります。

GRUBの破損には、MBR上でのWindowsの書き込み、DRMによるGRUBの正しくインストールの防止、インストーラのバグ、ハードウェアの変更など、多くの原因が考えられます。..Scottが最初に提案したGRUBの更新は一般的には十分ではなく、Marcoが提案したGRUBの再インストールはより効率的ですが、他の調整(カーネルへのオプションの追加、GRUBメニューの再表示、GRUBオプションの変更、適切なホストアーキテクチャの選択)を必要とするさまざまな状況があります。..).GRUBを修復するための他の困難は、chrootの使用、および適切なパーティション/ディスクの選択です。

このすべては、少しグラフィカルなツールで簡単に行われています: ブーツ修理. それは簡単に使用するためにUbuntu12.04CDに統合されていますが、今それを必要とする人々のために、それを統合するいくつかのディストリビューションがすでに..

これが役立つことを願っています。

ScottとWeb-Eによって与えられた答えは十分であり、何度も何度も助けてきました。 しかし、何度も、ブート修復ツールは、i386とamd64プラットフォームに関連する問題、またはgrubが見つからない問題のためにgrubを修復することができません efi ディレクトリ。
私の問題を10回以上解決したのは、古いgrubインストールを手動でパージして新しいものをインストールすることです。

だから、最初のスコットのからの最初の6つのステップを実行します ともかく エラーが発生した場合は、5番目のステップをスキップできます:

  1. 「Ubuntuを試す」モードで、ライブCDまたはライブUSBから起動します。
  2. メインパーティションのパーティション番号を決定します。 sudo fdisk -l, sudo blkid またはGParted(デフォルトではライブセッションに既にインストールされている必要があります)がここで役立ちます。 私はこの答えでそれがそうであると仮定するつもりです /dev/sda2 しかし、 お使いのシステムの正しいパーティション番号を使用していることを確認してください!

    メイン-パーティションがLVM内にある場合、装置は代りに置かれます /dev/mapper/、最も可能性の高い, /dev/mapper/{volume}--{os}-root どこで {volume} はLVMボリューム名であり、 {os} オペレーティングシステムです。 実行 ls /dev/mapper 正確な名前のために。

  3. パーティションをマウントする:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2

    あなたが別のものを持っている場合 /boot, /var または /usr 間仕切り、これらのパーティションをマウントするには、手順2と3を繰り返 /mnt/boot, /mnt/var/mnt/usr それぞれ。 例えば,

    sudo mount /dev/sdXW /mnt/bootsudo mount /dev/sdXY /mnt/varsudo mount /dev/sdXZ /mnt/usr

    交換 sdXW, sdXY、および sdXZ それぞれの仕切り数を使って。

  4. バインドマウントいくつかの他の必要なもの:

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
  5. UbuntuがEFIモードでインストールされている場合([不明な場合はこの回答を参照してください][efi])、次のように使用します sudo fdisk -l | grep -i efi またはGPartedを使用してEFIパーティションを検索します。 それはのラベルを持っています EFI. このパーティションをマウントし、 sdXY お使いのシステムの実際のパーティション番号を使用して:

    sudo mount /dev/sdXY /mnt/boot/efi
  6. chroot あなたのUbuntuのインストールに:

    sudo chroot /mnt

次に、次の手順を実行します:

  1. 保留中のすべてのパッケージを設定します。
    sudo dpkg --configure -a
  2. 壊れたパッケージを修正します。
    sudo apt install -fy
  3. 現在のgrubを削除します。
    sudo apt purge -y grub*-common grub-common:i386 shim-signed
    これにより、デバイスにbootloaderandがないという警告が表示され、次回起動できない可能性があります。 先に行くと、それを受け入れます。
  4. sudo apt install -y grub-pc
    このコマンドを実行すると、現在のコマンドを指すように求められます sdXY ブートローダをインストールする。 現在のOSがインストールされている場所を見つけるには sudo fdisk -l コマンド。 それは次のように分類されます Linux. を使用してそのウィンドウを移動します Tab キーを使用してオプションを選択し、 Space キー。
  5. すべてがうまくいけば、grubは正しくインストールされます。 あなたもすることができます sudo grub-update ダブルチェックのために。

それでも問題が解決しない場合は、次を読むことができます Archさんのウィキ 他の多くの種類の問題に取り組むためにgrubについて実際に理解する。 (はい、Ubuntuにも役立ちます!).

Scott Severanceの答えは有効で詳細ですが、必要な解決策があります 外部ブートデバイスなし そして、すべてのUbuntuパーティションを識別して手動でマウントする必要はありません。 chroot.

Windows10では、次のものを使用できます Advanced Recovery デバイスを選択するには(パーティション?)から起動する。

に行く Settings を選択してください。 Update & Security:

enter image description here

に行く Recovery:

enter image description here

から Advanced Startup 選択 Restart Now

enter image description here

次に選択します Use a Device そして、すべての起動オプションがあなたに提示されるべきです。 "Ubuntu"パーティションを選択すると、PCはそのパーティションから起動する必要があります。

私の通常のUbuntu環境で起動したら、私はちょうど実行しようとしました grub-update しかし、それは何の変化もありませんでした。

私はその後、私のを見つけました /boot/efi だったパーティション /dev/nvme0n1p1 そして走った sudo grub-install /dev/nvme0n1p1 そして sudo update-grub.

新しいWindows10ポリシーがあるように見えるので、これは私のマスターブートレコードを複数回復元しました マイナーアップデートでのブート情報の上書き.

関連(GRUBが間違ったドライブのMBRにインストールされたとき):[ubuntuをインストールした後のGrub rescueの問題](boot - Grub rescue after installing Ubuntu on a external HDD from USB - Ask Ubuntu

注:受け入れられた答えは、grubを修復する方法に関する一般的な指示です。 また、GRUBがインストーラによって誤って書かれている場合(ubiquity)、さまざまな状況にも適用できます。

私はこれが古いスレッドであることを知っていますが、biosのブートモードをUEFIからレガシーに変更することで問題を修正しました。

私はそれが一般的な仕事だと思います、私はまた2つのHddとUbuntu+Windowsを持っています。 私はあなたが正しい方法でそれを修復することを願っています。 [これ]をフォローしてみてください(https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows)チュートリアル。 ご質問は、私に尋ねる!

はい、できますが、通常の起動とwindowsでのインストールを行うだけで、コンピュータの起動時にGrubブートメニューに表示されます。