Background:私のボードにはUEFIがあります。 Windows 8とUbuntu 14.04 LTSを同じ物理ドライブにインストールしました(Windowsパーティションが最初)。 WindowsではUEFIを使用してブートしましたが、Ubuntuでは使用しませんでした。つまり、Ubuntuを起動するには、BIOSブートメニューを選択し、Ubuntuで非UEFIデバイスを選択する必要がありました(Windowsの場合はそれぞれUEFI)。 Ubuntu grubはWindowsのインストールもWindowsのUbuntuについても何も知りませんでした。
状況:Windows 10のアップグレードを受け入れました。これにより、Ubuntuパーティションの前にパーティションが追加されました。 WindowsはUEFIで引き続き正常に起動していますが、Ubuntuは起動時にGrubレスキューモードに入ります。
error: no such partition.
Entering rescue mode...
grub rescue>
この時点から、次のように入力してUbuntuを手動で起動することができました。
set prefix=(hd0,gpt5)/boot/grub
set root=(hd0,gpt5)
insmod normal
normal
(hd0、gpt5)はパーティションを含む/ bootであるため(これは助けになりました Windows 10のアップグレードはgrubレスキューにつながりました )
質問:このプレフィックス/ルートの変更を永続的にするには?私はこれに従いました http://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd とgrubを再インストールしようとしましたが、以下:
Sudo grub-install /dev/sda
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
また、別の/ boot/efiパーティションにチェックマークを付けずにブート修復を試みましたが、「GPTが検出されました」というエラーが表示されます。 BIOS-Bootを作成して再試行してください)[...] '
これが私のbootinfoの概要です http://paste.ubuntu.com/12520209/
/ dev/sdcはLiveCD Ubuntuを備えたペンドライブであり、一時的にマウントされています。
Bootinfoで示されているように、gpt4ではなくgpt5を検索するようにGRUB2を示す方法はありますか?私はaskubuntuを閲覧しましたが、見つかったケースは両方のシステムのUEFIモードに関連していたため、UbuntuをUEFIモードで設定しないようにしたいと思います。
UbuntuはBIOSレガシーモードでインストールされており、デバイスはUEFI対応であったため、Linuxはbios_grubフラグがオンのパーティションを探しましたが、驚くべきことにそこにはありませんでした。最後のWindowsパーティションと最初のLinuxパーティションの間に、サイズが1 MBの新しいパーティションを作成しました。 bios_grubフラグを設定し、フォーマットせずに残しました。そのためにgpartedを使用しました。その後、grub-installを実行し、続いてupdate-grubを実行しました。この操作は、フラグでパーティションを検出し、この新しいパーティションにcore.imgをインストールし、そこにcore.imgを探すようにMBRを更新しました。今、私の予想通り、私のUbuntu grubはレガシーモードで実行されています。
変更を比較できるように、現在のbootinfoを投稿しています。