デュアルブートマシンを使用しているときにWindowsがGRUBを上書きしないようにする方法


19

私はデュアルブートについて多くのことを読んでおり、WindowsをロードしてからLinuxをGRUBでロードするのと同じくらい簡単に思えますが、Windowsは機会があればGRUBを破棄するのが大好きだと誰もが言います。これを防ぐためにできるいくつかの手順は何ですか(Windowsのブートローダーを使用する以外に、これをできるだけシンプルに保ちたい)。


回答:


17

Windowsは、あなたがそれをインストールするたびにブートセクタを上書きし、新しいバージョンにアップグレード、または使用ツールが好きになるbootrec /fixmbrbootrec /fixbootまたはより古いですfdisk /mbr。通常、最初にWindowsをインストールしてから、Linuxをインストールします。ブートセクタは、上記のいずれかを実行するまで保持されます。(そしておそらく、MBRに書き込む他の方法もあります。)しかし、GRUBを紛失した場合、簡単に復元できます。

  • ライブCD(CD / DVDまたはフラッシュドライブ)から起動します。
  • rootになるかsudo、以下のコマンドで使用します。
  • 必要に応じて、使用可能なパーティションをリストします。 fdisk -l
  • Windowsは、ほぼ確実に/ dev / sda1に存在します。 mount /dev/sda1 /mnt
  • GRUBをMBRに再インストールします。 grub-install --root-directory=/mnt/ /dev/sda
  • リブート: shutdown -r now
  • GRUBメニューを復元します。 update-grub

また、100%Unix、Linux、またはBSDをインストールし、コンピューターの強度が十分であれば、仮想マシンでWindowsを実行することもできます。

また、コンピューターのBIOSには、ブートセクターを保護するオプションがある場合があります。


アップグレードとは、Windows 7からWindows 8へのアップグレードですか、それとも単にWindows Updateを実行しているだけですか?
Nathan2055

1
@ Nathan2055はい、7から8など... Windowsの新しい、より高いバージョン。Windows UpdateはMBRに影響しません。
クリストファー

私はそうだと思いました。良いことは、WindowsでMBRをいじるのを疑うことです。これを読んだ後、Windows 8に行く方法はありません。
Nathan2055

1
:別の方法としては、GRUBのチェーンロードするブートローダのウィンドウを設定しようとすることができますoreillynet.com/pub/h/2337 Aもう少し関与し、少なすぎると効果のためにあまりにも多くの仕事かもしれないが、方法はそれそうであれば作ること、それをやってWindowsはブートローダーを上書きしますが、Linuxを起動することはできます。
ブラチリー

@JoelDavis:はい、そうするためのいくつかのチュートリアルを読みましたが、GRUBをロードした経験がまったくない人や、Windowsはアップグレードしたくないので、Windowsが問題を起こすとは思わないという事実のために、ブートローダーをいじるのではなく、バニラのGRUBセットアップを使用すると思います。
Nathan2055

4

ブートローダーを台無しにするのではなく、通常のGRUBセットアップを使用すると思います。

任意の形式のgrubを使用する場合、ブートローダーをいじっています。GRUBは「グランド統合ブートローダー」の略です。また、grub v1とgrub v2の2つのバージョンがあります。最新のLinuxシステムはすべて、grub2を自動的に使用します。Linuxシステムをインストールする場合、LILOを使用しない限り、grubがデフォルトのブートローダーになります。これは推奨しません。

個人的には、xpとWheezyのデュアルブートシステムがあります。「windows restore」オプションを無効にして、xpがgrubを上書きしないようにします。

復元オプションを無効にする前に、Windowsブートローダーがgrubを上書きし続けるため、少なくとも週に1回grubを修正する必要がありました。

USBポートを介して外部ハードドライブにWindows 8をインストールするように修正しています。これが支障なく行われ、mbrが混乱しないことを願っています。


1
Windowsの復元オプションを無効にすると、この問題が修正されたようです。
-DrCord

2

これは私が使用する回避策であり、介入なしでWindowsアップデートで動作します:EFI / MicrosomethingのEFI / Microsoftの名前を変更しますgrub.cfgのWindowsブートパスをEFI / Microsomething / bootmfgw.efiに置き換えますこのように:

menuentry "Microsoft Windows UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root <PROVIDE YOUR EFI DRIVE UUID>
    chainloader /EFI/Microsomething/Boot/bootmgfw.efi
}

1

単に開いてgparted、Grubが含まれているパーティションを右クリックし、フラグを管理してブートをマークします。


2
これは、Windowsインストールが単にブートパーティションを変更した場合に機能する場合があります。私の場合、Windows 8.1のインストールでMBRが上書きされたため、Christopherのgrub-installソリューションが必要になりました。
ネイサンキッド

1

オンラインで見つけた解決策(unix.stackexchange.com)には、Windowsブートマネージャーの非アクティブ化が含まれます。Linuxにアクセスし(可能な場合は元のインストール、またはライブCD / DVDのいずれか)、次のコマンドを実行します。

efibootmgr

この方法は、LinuxがUEFIモードでインストールされている場合にのみ機能するため、Linuxがレガシーモードでインストールされている場合はエラーが発生することに注意してください。UEFIモードでインストールした場合、いくつかの情報とリストが表示されます。リストのどこかにWindowsブートローダー/マネージャーとLinuxがあります。Windowsの方が優先度が高い可能性があります(ブート順序はリストの上にあります)。

また、すべてではないにしても、いくつかのエントリの横に星印*があり、それらをアクティブにします。

Windowsエントリの横にある4桁のブート番号を見て、実行します

sudo efibootmgr --bootnum #### --inactive

これにより、Windowsエントリが無効になります。また、無効になったWindowsの優先度が高くなっていない場合は、それを確認してください。

sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%

ここで、####はWindowsブート番号です。

今すぐ再起動すると、Linuxオプションが最高の優先度で有効になっている場合、grubで起動します。

Windowsは非アクティブ化されていることを認識していないようであるため、Windowsを起動したり更新したりしても元に戻されません。

興味のある人のために、ほとんどの場合Windowsの次のセカンダリOSとしてLinuxをインストールするローカルのLinuxインストールフェスティバルに参加しました。この方法が失敗するのをまだ見ていません。いくつかのディストリビューション(主にUbuntuとMint)といくつかのベンダー(Asus、Acer、HP、Lenovo)で試してみました。


0

テキストの色、サイズ、フォント、またはメニューエントリのタイトルを変更すると、Windows 10はGRUB 2を上書きします。

これを解決する方法は2つあります。

  1. Linuxをレガシーモードでインストールできます(BIOS設定>ブート>レガシーサポート+レガシーファースト)。

  2. Windows復元(別名、システム保護)をオフにすることができます(コントロールパネル>システムとセキュリティ>システム>システム保護>構成>無効化)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.