O GRUB2 mostra o Windows 7 ou o Ambiente de Recuperação do Windows em vez do Windows 10

8

Este é um Q & amp; A que eu descobri recentemente, então postei a resposta abaixo.

Após instalar o Windows 10, sempre que obtiver uma atualização do kernel ou executar o update-grub2 , ele sempre mostrará Windows 7 ou Windows Recovery Environment em vez de Windows 10 . Como faço para corrigir isso permanentemente?

    
por Terrance 27.08.2015 / 08:39

1 resposta

10

Atualização: Acabei de realizar uma instalação limpa do Xubuntu 14.04 e as entradas para o arquivo listado abaixo já estavam lá. Parece que a equipe do GRUB agora incluiu a atualização. Vou deixar isso aqui para qualquer um que possa se deparar com isso sem a atualização do sistema deles ainda.

Atualização # 2: Se você criar um LiveUSB Ubuntu 14.04 com pelo menos um arquivo persistente de 1 GB, este local de arquivo será o mesmo e o arquivo persistente permitirá que as alterações feitas sejam feitas. . Este arquivo só deve ser modificado após inicializar o sistema na unidade USB em Try Ubuntu boot.

O motivo pelo qual ele ainda mostra Windows 7 ou Windows Recovery Environment em vez de Windows 10 é que o arquivo /usr/lib/os-probes/mounted/20microsoft não contém o rótulo Windows 10 , portanto, durante a detecção os-prober do sistema operacional, ele cai de volta para Windows 7 ou Windows Recovery Environment .

Para corrigir isso, você precisa fazer as seguintes alterações no seguinte arquivo (vou colocar o gedit como editor, mas use o que você quer):

sudo gedit /usr/lib/os-probes/mounted/20microsoft

NOTA: Você deve sempre fazer um backup de um arquivo antes de modificá-lo!

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

as alterações acima estão alterando a linha if grep -qs "W.i.n.d.o.w.s. .8" "/$boot/$bcd"; then para elif grep -qs "W.i.n.d.o.w.s. .8" "/$boot/$bcd"; then e adicionando if grep -qs "W.i.n.d.o.w.s. .1.0" "/$boot/$bcd"; then e long="Windows 10 (loader)" acima dessa linha e salvando-a.

Uma vez salvo, a execução de os-prober agora é assim:

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

em seguida, executando update-grub2 , ele agora fará as atualizações em seu /boot/grub/grub.cfg permanente sempre que você receber uma atualização do kernel, para mostrar a versão correta do Windows agora (exemplo abaixo):

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

Espero que isso ajude!

    
por Terrance 27.08.2015 / 08:39