私は grub 2.02-beta2 を使用したデュアルブート設定を使用しており、これにより x64 デスクトップ マシンで Windows 7 と Arch Linux を切り替えることができます。これらは両方とも同じ物理 HDD の C: ドライブにインストールされています。(一般的な解決策は、BIOS で Windows HDD から起動するように切り替えることですが、これは私の環境では不可能です)
現在、Microsoft は、GRUB ブートローダーを使用すると再起動時にインストールが失敗するという、問題のある 2016 年 10 月のセキュリティ更新プログラムをリリースしました。そこで、次のことを実現しようとしています。
- 何らかの方法で GRUB ブートローダーを無効にして、Linux データ (C に 1 つのパーティション、D に 1 つのパーティション) を失うことなく、PC が自動的に Windows を起動するようにします。
- すべてのアップデートをインストールし、数回再起動します
- Live CDなどを使用して、データを失うことなく、GRUBの以前の構成を復元します。
答え1
さて、今日ようやく時間ができたので、これをやりました。これはかなり時間がかかりますので覚悟してください。これらのコマンドを実行する前に、UEFI または BIOS システムがあるのか、またパーティション テーブルが GPT または MBR なのかを確認してください。もちろん、これは保証がまったくありません。これは私にとってうまくいった方法にすぎません。私は StackOverflow や他のフォーラムの回答を多数使用しました。残念ながら、リンクできるのは 2 つだけです。
ステップ0: バックアップ、バックアップ、バックアップ。私は Reflect を使用しました。無料で、十分に機能します。他にもたくさんのオプションがあります。大容量の外付け HDD を入手し、ファイルをクラウドに保存します (プライバシーが気になる場合は Cryptomator をお勧めします。たとえば、Google ドライブでは 15 GB が無料で提供されます)。実際のところ、あらゆる問題が発生する可能性があり、少なくとも 1 つの OS を再インストールしなければならない可能性が実際にあります。
ステップ1: GRUB をアンインストール/上書きします。
私の場合、これが一番時間がかかりました。基本的に、GRUB の MBR (私はこうした技術的なことに詳しいわけではありません。UEFI か BIOS か (私は UEFI です)、パーティション テーブルが GPT か MBR かを確認する必要があります。私は何らかの理由で MBR を使用していますが、これは古い標準です) を上書きして Windows を直接ポイントするようにすれば、更新プログラムをインストールできます。
これを行う方法の説明は以下にあります。ここまず Windows 以外で試してみることをお勧めします。この時点で Windows が 2 時間ほどまったく起動しなかったため、この方法には非常に時間がかかりました。結局、起動時の修正は機能しませんでした。BIOS で UEFI: ではなく USB: を選択し、プロンプトで多くのコマンドを実行する必要がありました。
bootrec /fixmbr
bootrec /fixboot
「要素が見つかりません」というエラーでfixbootが失敗しました。その後、これ記事、特に (注意! ドライブ文字を正しいものに変更してください) bcdboot C:\Windows /SC: bootrec を実行し、パーティションをアクティブに設定し、スタートアップ ヘルプを 1 回実行すると、Windows が起動するようになります。
この状態に達すると、Windows を数回再起動し、すべてのアップデートをインストールして、新しい安全なシステムに満足できます。その後、Linux を戻したいと気付きます。
ステップ2: grubを再インストールする
このため、私はHDDからArch Linuxを起動していました。ここで、起動するにはmv /dev/disk/by-label/MYLINUXLIVE /dev/disk/by-label/ARCH_を実行する必要がありました。次に、sudo fdisk -lを使用してLinuxパーティションを検索しました。次に、それをマウントしてchrootします。sudo mount /dev/sdXY /mnt sudo arch-chroot次に、MBRを再度上書きするgrubをインストールします。sudo grub-install --target=i386-pc --recheck /dev/sdUV grub-mkconfig -o /boot/grub/grub.cfg exit reboot
これで、grub が起動するはずです。私の場合、最初は Windows が見つかりませんでしたが、これは簡単に修正できます。
ステップ3: Windows エントリを grub に追加します (オプション)
古い arch/Linux インストールを起動し、 を実行するとos-probe
、Windows が検出され、 が実行されますsudo grub-update
。Arch にはデフォルトで grub-update がないため、ソース コードは次のとおりです。
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
この後、問題のあるアップデートがインストールされ、少し不安になったことを除いて、すべては以前と同じです。
答え2
Jeff の回答は良い回答です。Boot-Repair を強くお勧めします。
https://sourceforge.net/projects/boot-repair-cd/
これにより、MBR をリセットして Windows を直接起動できるようになり、Windows を更新した後、Grub を再インストールしてデュアル ブート モードに戻ることができました。