web-dev-qa-db-ja.com

GRUB2はWindows 10ではなくWindows 7またはWindows Recovery Environmentを表示します

これは最近わかったQ&Aなので、以下の答えを投稿しました。

Windows 10のインストール後、カーネルの更新を取得するたび、またはupdate-grub2を実行するたびに、Windows 7ではなくWindows Recovery EnvironmentまたはWindows 10が常に表示されます。これを永久に修正するにはどうすればよいですか?

8
Terrance

更新: Xubuntu 14.04のクリーンインストールを実行したところ、以下にリストされているファイルへのエントリが既に存在していました。 GRUBチームにアップデートが含まれるようになりました。まだシステムの更新なしでこれに遭遇する可能性がある人のために、これをここに残します。


更新#2:少なくとも1GBの永続ファイルを含むUbuntu 14.04 LiveUSBを作成する場合、このファイルの場所は同じであり、永続ファイルは変更を維持できます。このファイルは、Try Ubuntu起動でシステムをUSBドライブから起動した後にのみ変更する必要があります。


Windows 7の代わりにWindows Recovery Environmentの代わりにWindows 10または/usr/lib/os-probes/mounted/20Microsoftと表示される理由は、ファイルWindows 10os-proberのラベルが含まれていないためです。 SOMECODE] _ OSの検出は、Windows 7またはWindows Recovery Environmentにフォールバックします。

これを修正するには、次のファイルに次の変更を加える必要があります(geditをエディターとして使用しますが、必要なものを使用します)。

Sudo gedit /usr/lib/os-probes/mounted/20Microsoft

注:変更する前に、常にファイルのバックアップを作成する必要があります!

if item_in_dir -q bootmgr "$2"; then
        # there might be different boot directories in different case as:
        # boot Boot BOOT
        for boot in $(item_in_dir boot "$2"); do
                bcd=$(item_in_dir bcd "$2/$boot")
                if [ -n "$bcd" ]; then
                        if grep -qs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; then
                                long="Windows 10 (loader)"
                        Elif grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then
                                long="Windows 8 (loader)"
                        Elif grep -qs "W.i.n.d.o.w.s. .7" "$2/$boot/$bcd"; then
                                long="Windows 7 (loader)"

上記の変更は、行if grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; thenElif grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; thenに変更し、その行の上にif grep -qs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; thenlong="Windows 10 (loader)"を追加して保存します。

保存すると、os-proberの実行は次のようになります。

terrance@terrance-ubuntu:~$ Sudo os-prober
[Sudo] password for terrance: 
/dev/sdf1:Windows 10 (loader):Windows:chain

update-grub2を実行すると、カーネルの更新を取得するたびに/boot/grub/grub.cfgの更新が永続的になり、正しいバージョンのWindowsが表示されるようになります(下の例を参照)。

terrance@terrance-ubuntu:~$ Sudo update-grub2
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.19.0-26-generic
Found initrd image: /boot/initrd.img-3.19.0-26-generic
Found linux image: /boot/vmlinuz-3.13.0-58-generic
Found initrd image: /boot/initrd.img-3.13.0-58-generic
Found linux image: /boot/vmlinuz-3.13.0-57-generic
Found initrd image: /boot/initrd.img-3.13.0-57-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 (loader) on /dev/sdf1
done

お役に立てれば!

10
Terrance