Ubuntuのブートファイルを食べたWindows 7をインストールしました。コンピューターを起動すると、Ubuntuを起動するオプションを表示せずに、Windowsに直接移動します。
Ubuntuを元に戻すにはどうすればよいですか?
Ubuntuのブートファイルを食べたWindows 7をインストールしました。コンピューターを起動すると、Ubuntuを起動するオプションを表示せずに、Windowsに直接移動します。
Ubuntuを元に戻すにはどうすればよいですか?
回答:
Windowsをインストールすると、Windowsは、それがマシン上の唯一のオペレーティングシステム(OS)であるか、少なくともLinuxを考慮しないと想定します。そのため、GRUBを独自のブートローダーに置き換えます。必要なことは、WindowsブートローダーをGRUBに置き換えることです。GRUBコマンドなどをいじってGRUBを置き換えるためのさまざまな指示を見てきましたが、私にとって最も簡単な方法は、単にchroot
インストールして実行することupdate-grub
です。chroot
これは、あちこちに物事をリダイレクトしようとする代わりに、実際のインストールに取り組むことができるので素晴らしいです。本当にきれいです。
方法は次のとおりです。
メインパーティションのパーティション番号を決定します。sudo fdisk -l
、sudo blkid
またはGParted(デフォルトでライブセッションに既にインストールされているはずです)がここで役立ちます。私はそれがだ、この答えに仮定するつもりです/dev/sda2
が、お使いのシステムのための正しいパーティション番号を使用してください!
メインパーティションがLVMにある場合、デバイスは代わりにに配置されます/dev/mapper/
。ほとんどの/dev/mapper/{volume}--{os}-root
場合{volume}
、LVMボリューム名と{os}
オペレーティングシステムです。ls /dev/mapper
正確な名前で実行します。
パーティションをマウントします。
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/boot
sudo mount /dev/sdXY /mnt/var
sudo mount /dev/sdXZ /mnt/usr
交換sdXW
、sdXY
およびsdXZ
それぞれのパーティション番号を持ちます。
他の必要なものをバインドマウントします。
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
UbuntuがEFIモードでインストールされている場合(不明な場合はこの回答を参照してください)、sudo fdisk -l | grep -i efi
またはGPartedを使用してEFIパーティションを見つけます。のラベルが付けられEFI
ます。このパーティションをマウントsdXY
し、システムの実際のパーティション番号に置き換えます。
sudo mount /dev/sdXY /mnt/boot/efi
chroot
Ubuntuのインストールに:
sudo chroot /mnt
この時点で、ライブセッションではなくインストールを実行しており、rootとして実行しています。GRUBを更新します。
update-grub
エラーが発生した場合、または手順7に進んでも問題が解決しない場合は、手順8に進みます(それ以外の場合はオプションです)。
状況に応じて、grubを再インストールする必要があります。
grub-install /dev/sda
update-grub # In order to find and add windows to grub menu.
UbuntuがEFIモードでインストールされていて、EFIパーティションのUUIDが変更されている場合は、で更新する必要があります/etc/fstab
。比較してください:
blkid | grep -i efi
grep -i efi /etc/fstab
現在のEFIパーティションのUUID(from blkid
)がのものと異なる場合、現在のUUID /etc/fstab
で更新/etc/fstab
します。
すべてがエラーなく動作した場合、すべての設定は完了です。
exit
sudo reboot
この時点で、正常に起動できるはずです。
正常に起動できず、エラーメッセージがなかったために手順8を実行しなかった場合は、手順8で再試行します。
grub-efi-amd64
ますgrub-install --uefi-secure-boot
。セキュアブートを使用する場合は、使用することをお勧めします。これは、superuser.com
Windowsインストーラーは、システム内の他のOSを気にしません。そのため、マスターブートレコードに独自のコードを書き込みます。幸いなことに、ソリューションも簡単です。
MBRを修復する必要があります。以下をせよ
UbuntuのライブUSB / CDを使用して起動します。boot-repair
問題を修正するために使用します。
ライブusb / cdで起動した後、ターミナルで次のコマンドを実行します。
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
を使用しRecomended Repair
ます。
ライブのUbuntu USBペンドライブまたはCDから起動し、
次の手順でubuntuにBoot-Repairをインストールします
ターミナルを開き、次のコマンドを実行します
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
インストールが完了したら、Gnomeを使用する場合は[システム]-> [管理]-> [ブート修復]メニューから起動できます。Unityを使用する場合はダッシュで「ブート修復」を検索できます。次に、次のスクリーンショットに従います。
方法1
[適用]を押してシステムを再起動します
方法2
easyBCD
Windows 7にインストールして
新規エントリの追加> Linux / BSD>(選択)Grub2>(プッシュ)エントリの追加
次に、Windows 7ブートローダーでUbuntuを選択して、Grub2(以前のブートローダー)に移動します。
EFIベースのシステム(Windows 8以降に同梱されているほとんどのシステムなど)では、Windowsはブートローダーを更新するか、デフォルトのブートローダーにリセットすることがあります。これは、OSを再インストールするとき、または主要なシステムアップデート(たとえば、最新のWindowsリリースへのアップグレード)を実行するときに特に一般的です。WindowsがEFIベースのコンピューター上のGRUBファイルを実際に消去する可能性は低いことに注意してください。Ubuntuを起動するために必要なものはすべてそのままです。バイパスされているだけです。これらの場合、GRUBの完全な再インストールは過剰であり、実際、新しい問題を引き起こす可能性が(わずかに)あります。
したがって、これらの場合にGRUBを再インストールする代わりに、GRUB(または任意のブートローダーまたはブートマネージャー)をデフォルトにリセットすることをお勧めします。これを行うには、いくつかの方法があります。
ubuntu
ブートオプションのリストでエントリを見つけ、リストの一番上に移動します。次回の再起動時に、GRUBが起動するはずです。(GRUB以外のものを使用する場合は、そのエントリを見つける必要があります。)bcdedit
-Windows bcdedit
ツールを使用して、GRUBをデフォルトのブート順序に設定できます。管理者コマンドプロンプトウィンドウbcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
に入力されたコマンドは、これを行います。ただし、コンピューターがセキュアブートをアクティブにして起動する場合は、代わりに必要になります。実際、後者のコマンドは通常、セキュアブートが使用されていなくても機能するため、最初にそのコマンドを使用します。高度なWindowsシェルツールがあり、これまでに説明したものとは少し異なる構文が必要ですが、詳細は思い出せません。bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
ubuntu
Ubuntuを起動するエントリは、この起動マネージャーメニューに表示され、Ubuntuを起動できる可能性があります。あるいは、インストーラーが「インストールする前に試す」モードで起動したような、Ubuntu緊急メディアから起動することもできます。どちらの方法でもefibootmgr
、起動順序を調整するために使用できます。
sudo efibootmgr
してブートエントリを表示します。BootOrder
行に注意してください。ubuntu
そのBoot####
番号を書き留めます。sudo efibootmgr -o xxxx[,yyyy,zzzz,....]
してブート順序を変更し、xxxx
Ubuntuの番号を作成します。Windowsがリストにない場合は、起動順序の先頭に自分自身を追加する可能性が高いように見えますが、その後に続くことはほとんど重要ではありません。したがって、おそらくWindowsがリストにあることを確認する必要があります。リストの順序を変更して、すべての元のエントリがubuntu
リストの一番上に移動するようにするのが最も安全です。これらの手順にbcfg
は、EFIシェルでの使用bless
、macOSでの使用、rEFIndを使用した1回限りの起動など、他のバリアントがあります。ただし、EasyUEFIから始めます。最も簡単なソリューションになる可能性があります。ただし、Windowsは起動するたびにデフォルトに設定することを要求する場合があり、bcdedit
その問題を処理する上でより良い仕事をする可能性があるとレポートが示しています。
上記のいずれもBIOSモードのインストールには適用されないことに注意してください。ただし、Windows 8以降に同梱されているほとんどのコンピューターはEFIモードで起動するため、BIOSモードのインストールはますます少なくなっているため、多くの場合、GRUBを盲目的に再インストールするよりも、EFIの方法で問題を処理する方が適切です。
efibootmgr
して手動でlinux(私の場合はfedora28)を1回ブートすると、win10が台無しになったブート順(Rod-> thanks!更新。その後、更新前のGRUB-bootmanagerが表示されるため、提供されたソリューションが機能していることを確認できます。EasyUEFIの基本バージョンは見つかりませんでしたが、提供されている非フリーのプロバージョンの試用版のみが見つかりました。
より簡単なソリューションがあります:
これは、Windows 8とUbuntu 13.10をデュアルブートするSamsung Series 7 Chronosラップトップでテストされており、セキュアブートは無効、UEFIおよびレガシーブートは有効です。
ブート修復は私のために働いた。グラフィカルアプリケーションを使用するのは非常に簡単です。コマンドラインを使用する必要はありません。ボタンをクリックするだけです。
利用可能な修復オプションはすべてUbuntuのドキュメントに記載されており、Boot-Repairの起動方法(ブータブルディスクの作成または既存のUbuntuライブディスクへのインストールによる)とその使用方法を説明する別のページがあります。
UbuntuライブCDを起動し、Boot-Repairをインストールして実行します。
chroot
他のツールをインストールするために、Googleよりも修理をセットアップする方が速いです。
GRUBが破損した場合、ユーザーは通常システムにアクセスできないため、ライブセッション(live-CDまたはlive-USB)から修復を実行する必要があります。
GRUBの中断には多くの原因が考えられます。WindowsがMBRに書き込みを行っている、DRMがGRUBを正しくインストールできない、インストーラーのバグ、ハードウェアの変更...より効率的ですが、それでも他の微調整が必要なさまざまな状況があります(カーネルへのオプションの追加、GRUBメニューの非表示解除、GRUBオプションの変更、適切なホストアーキテクチャの選択...)。GRUBを修復する他の問題は、chrootの使用と、適切なパーティション/ディスクの選択です。
これはすべて、小さなグラフィカルツールであるBoot-Repairで簡単に行えます。使いやすくするためにUbuntu 12.04 CDに統合する必要がありますが、それを必要としている人のために、すでにUbuntu-Secured-Remix(Boot-Repairを統合したUbuntu CD)、Boot-Repair-Disk(Bootを実行しているCD) -起動時の修復)、...
お役に立てれば。
スコットとWeb-Eの回答は十分であり、何度も助けになりました。しかし、多くの場合、i386およびamd64プラットフォームまたはgrubがefi
ディレクトリを見つけられないプラットフォームに関連する問題が原因で、ブート修復ツールはgrubを修復できません。
私の問題を10回以上解決したのは、古いgrubインストールを手動でパージし、新しいものをインストールすることです。
したがって、最初にスコットの答えから最初の6ステップを実行します。エラーが発生した場合、5番目のステップをスキップできます。
- 「Try Ubuntu」モードで、ライブCDまたはライブUSBから起動します。
メインパーティションのパーティション番号を決定します。
sudo fdisk -l
、sudo blkid
またはGParted(デフォルトでライブセッションに既にインストールされているはずです)がここで役立ちます。私はそれがだ、この答えに仮定するつもりです/dev/sda2
が、お使いのシステムのための正しいパーティション番号を使用してください!メインパーティションがLVMにある場合、デバイスは代わりにに配置されます
/dev/mapper/
。ほとんどの/dev/mapper/{volume}--{os}-root
場合{volume}
、LVMボリューム名と{os}
オペレーティングシステムです。ls /dev/mapper
正確な名前で実行します。パーティションをマウントします。
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/boot sudo mount /dev/sdXY /mnt/var sudo mount /dev/sdXZ /mnt/usr
交換
sdXW
、sdXY
およびsdXZ
それぞれのパーティション番号を持ちます。他の必要なものをバインドマウントします。
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
UbuntuがEFIモードでインストールされている場合([不明な場合はこの回答を参照] [efi])、
sudo fdisk -l | grep -i efi
またはGPartedを使用してEFIパーティションを見つけます。のラベルが付けられEFI
ます。このパーティションをマウントsdXY
し、システムの実際のパーティション番号に置き換えます。sudo mount /dev/sdXY /mnt/boot/efi
chroot
Ubuntuのインストールに:sudo chroot /mnt
次に、次の手順を実行します。
sudo dpkg --configure -a
sudo apt install -fy
sudo apt purge -y grub*-common grub-common:i386 shim-signed
sudo apt install -y grub-pc
sdXY
のブートローダーをインストールするように指示するように求められます。sudo fdisk -l
コマンドを使用して、現在のOSがインストールされている場所を見つけます。というラベルが付けられLinux
ます。Tabキーを使用してそのウィンドウをナビゲートし、キーを使用してオプションを選択しSpaceます。sudo grub-update
、二重チェックを行うことができます。それでも問題が解決しない場合は、Archのwikiを読んでgrubを実際に理解し、他のさまざまな問題に取り組むことができます。(はい、Ubuntuにも役立ちます!)。
WindowsはLinuxフォーマットのパーティションを認識しません。liveCDのgpartedを使用し、ブートフラグでNTFSでフォーマットされたプライマリパーティションを作成する必要があります。
Windowsは常にパーティションテーブルを正しくリセットするとは限らないため、新しいプライマリパーティションが拡張パーティションの後にある場合、問題が発生することがあります。適切なバックアップとパーティションテーブルの個別のバックアップを作成するのが最適です。
パーティションテーブルをテキストファイルにバックアップし、外部デバイスに保存します。
sudo sfdisk -d /dev/sda > PTsda.txt
これは、MBR(msdos)システム専用です。UbuntuのインストールがGPTパーティションドライブにある場合は、WindowsをUEFIモードでのみインストールするか、ドライブをMBR(msdos)に戻すことができます。
唯一のfsck
コマンドはgrub-rescue
、私のために画面を修正しました。
Boot-Repairを使用してLive-CDから起動し、ターミナルを開きます
正しいデバイスを入手します。
sudo fdisk -l
ブートデバイスを見つける必要があります。ブートデバイスは、次の*
ようなブートカテゴリにあります。
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 2000895 1998848 976M 82 Linux swap / Solaris
/dev/sda2 * 2000896 943716351 941715456 449G 83 Linux
次を使用してディスクを修復します。
sudo fsck /dev/sda2 -y
注:この例では、/ dev / sda2がブートデバイスです。
完了したら再起動します。できた
Scott Severanceの答えは有効かつ詳細ですが、外部ブートデバイスを必要としない解決策があるため、chroot
。
Windows 10では、起動に使用Advanced Recovery
するデバイス(パーティション?)を選択するために使用できます。
に移動しSettings
て選択しますUpdate & Security
。
に行くRecovery
:
Advanced Startup
選択からRestart Now
次に、選択するUse a Device
と、すべてのブートオプションが表示されます。「ubuntu」パーティションを選択すると、PCはそのパーティションから起動します。
私の通常のUbuntu環境で起動したら、ただ実行しようとしましたgrub-update
が、変更はありません。
私はその後、私の見つけ/boot/efi
たパーティション/dev/nvme0n1p1
と走ったsudo grub-install /dev/nvme0n1p1
当時とはsudo update-grub
。
マイナーアップデートでMBRを上書きする新しいWindows 10ポリシーがあるように見えるため、これにより、マスターブートレコードが複数回復元されました。
私の質問で概説したテンプレートをboot-repair
拭いたために(おそらく)別の問題が発生し/etc/grub.d/
ました:Ubuntu 18.04はWindows 10のインストール後に起動しません
@karelsコメントで指摘されているように、grub設定はのファイルを使用して生成され/etc/grub.d
ます。私のディレクトリには/etc/grub.d/25_custom
、存在しない.efiイメージを指す奇妙なメニューエントリが含まれていました。私の/etc/grub.d
テンプレートはおそらくにホースされているように見えましたboot-repair
。
私はこれを修正しました:
sudo mount /dev/sdxx /mnt
sudo cp /etc/grub.d/* /mnt/etc/grub.d/
sudo update-grub