Grub2 detectando duas entradas do Windows 7 (loader)

6

Esta é a primeira pergunta que fiz à comunidade Ubuntu.

Sou relativamente novo no Ubuntu, mas entendo o básico e sei como navegar no Terminal. Também sei pesquisar as soluções existentes antes de pedir ajuda. Eu vasculhei a Internet em alta e baixa e aprendi muito sobre como o Grub2 funciona. Mas nada me ajudou a resolver o meu problema.

Meu problema é o seguinte: Eu tenho um computador com três discos rígidos. Anteriormente, ele tinha o Windows XP, mas eu atualizei para o Windows 7. Eu também instalei o Ubuntu 12.04 LTS (Precise Pangolin).

Durante a instalação do Windows 7, houve uma falha e tive que reiniciar a instalação. Depois disso, instalei o Ubuntu. Depois de alguns problemas para remover todos os vestígios do sistema operacional XP (o Ubuntu detectou automaticamente, mas não o Windows 7), consegui que os dois sistemas operacionais funcionassem perfeitamente. Ou quase.

Ao inicializar, o Grub2 costumava exibir o Ubuntu, o Modo de Recuperação do Ubuntu, outras versões do Linux, memtest, seguido por Windows 7 (loader) on /dev/sda1 e Windows 7 (loader) on /dev/sdb1 .

Eu finalmente removi o Recovery Mode, Other Versions e o Memtest. Agora, quando eu corro:

sudo update-grub

Eu recebo esta impressão:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-26-generic
Found initrd image: /boot/initrd.img-3.2.0-26-generic
Found Windows 7 (loader) on /dev/sda1
Found Windows 7 (loader) on /dev/sdb1

Eu gostaria de remover o "Windows 7 (loader) em / dev / sda1", pois é uma entrada quebrada que não deveria existir e deve ter sido instalada durante minha primeira tentativa do Windows 7.

Não consigo encontrar uma entrada do Windows 7 na pasta /etc/grub.d E não sei onde procurar.

Aqui está um layout dos meus discos rígidos:

/dev/sda1/ (1.82 TiB), NTFS ("Media")

/dev/sdb1/ (100 Mib), NTFS ("System Reserved")
/dev/sdb2/ (149 GiB), NTFS ("Windows 7")
/dev/sdb3/ (149 GiB), Extended (" ")
    /dev/sdb4/ (145 GiB), ext4 (" ")
    /dev/sdb5/ (4 GiB), linux-swap (" ")

/dev/sdc1/ (488.28 GiB), NTFS ("Downloads")
/dev/sdc2/ (488.28 GiB), NTFS ("AltMedia") 
/dev/sdc3/ (886.45 GiB), NTFS ("Personal")
unallocated (2.09 MiB), unallocated

O que eu acho que aconteceu: o Windows 7 foi instalado primeiro e mal. Eu instalei de novo. Primeiro, havia o Windows XP para orientar para onde o bootloader foi, então foi colocado em /dev/sdb1/ . Mas, na segunda vez que tal guia não existia, a máquina colocou outro bootloader em /dev/sda1/ . sda1, a propósito, é a única partição em um drive de 2TB. Nenhuma partição de registro de inicialização parece existir de acordo com gedit . Não tenho certeza de onde o Grub2 está recebendo essas informações. Mas aí está.

Existe alguma coisa que alguém possa fazer para me ajudar? Ou há mais alguma informação que devo acrescentar?

    
por jwarner112 01.07.2012 / 20:51

2 respostas

8

Uma solução rápida se sda for uma unidade externa

Não sei se a sua unidade de disco /dev/sda é uma unidade interna ou externa. Se for uma unidade externa, desconecte a unidade externa antes de executar o comando update-grub2 . Isso deve ajudar rapidamente.

Solução:

Monte a unidade /dev/sda1 . (eu suponho que você pode fazer isso com muita facilidade ). Em seguida, nessa unidade, procure uma pasta chamada Boot e um arquivo denominado bootmgr . Remova a pasta e o arquivo. Em seguida, execute o comando update-grub2 novamente.

Você pode querer instalar o grub2 novamente. Como eu vejo a sua instalação do Ubuntu está em /dev/sdb , os comandos serão

sudo grub-install /dev/sdb
sudo update-grub 

Qual foi a causa do problema:

O Grub2 procura pelos arquivos de inicialização do Windows para detectar entradas do Windows. Embora você tenha removido o Windows 7, os arquivos de inicialização do Windows 7 não são removidos (que são a pasta "Boot" e o arquivo "bootmgr"). E como os arquivos de inicialização do Windows 7 estão lá, o grub2 simplesmente assume isso, também há a instalação do Windows 7. Daí a entrada dupla.

    
por Anwar 02.07.2012 / 05:45
1

Você deve encontrar o que procura dentro de /boot/grub/grub.cfg . Este arquivo é gerado dinamicamente por update-grub2 . Eu sou dual boot Ubuntu 32bit e 64bit. Se eu quisesse remover um, simplesmente excluiria a seção desse arquivo. Aqui está o que uma das minhas entradas parece -

menuentry 'Ubuntu, with Linux 3.2.0-23-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root 94916094-afe9-4b74-9413-a3c54b39eb91
    linux   /boot/vmlinuz-3.2.0-23-generic root=UUID=94916094-afe9-4b74-9413-a3c54b39eb91 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.2.0-23-generic
}

As alterações devem entrar em vigor imediatamente, por isso, faça um backup e tenha cuidado. Além disso, tudo o que você alterar nesse arquivo será completamente gravado se você executar update-grub2 novamente.

    
por Sepero 02.07.2012 / 03:07