Como adiciono o Windows 7 ao GRUB 2?

4

Estou tendo problemas para adicionar o Windows 7 ao meu menu de inicialização do GRUB 2. Sei que perguntas semelhantes foram feitas e respondidas neste site e em outros, mas nenhuma das respostas parece funcionar para mim.

Minha configuração: Dois discos rígidos, sda com uma instalação Win 7 e sdb com uma instalação Debian e GRUB2.

No BIOS, posso escolher de qual disco rígido inicializar e, se inicializar a partir do primeiro disco rígido, o Windows iniciará para que eu saiba que está funcionando. Agora eu quero adicionar um item de menu ao GRUB para inicializar o Windows.

Eu baixei o bootinfoscript e o executei, aqui está o RESULTS.txt:

                  Boot Info Script 0.61      [1 April 2012]


============================= Boot Info Summary: ===============================

 => Windows is installed in the MBR of /dev/sda.
 => Grub2 (v1.99) is installed in the MBR of /dev/sdb and looks at sector 2048 
    of the same hard drive for core.img. core.img is at this location and 
    looks for (,gpt2)/boot/grub on this drive.

sda1: __________________________________________________________________________

    File system:       
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info: 
    Mounting failed:   mount: unknown filesystem type ''

sda2: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /Windows/System32/winload.exe

sdb1: __________________________________________________________________________

    File system:       BIOS Boot partition
    Boot sector type:  Grub2's core.img
    Boot sector info: 

sdb2: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Mounting failed:   mount: unknown filesystem type ''
mount: /dev/sdb2 already mounted or sdb2 busy

sdb3: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 256.1 GB, 256060514304 bytes
255 heads, 63 sectors/track, 31130 cylinders, total 500118192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1    *          2,048       206,847       204,800   7 NTFS / exFAT / HPFS
/dev/sda2             206,848   500,115,455   499,908,608   7 NTFS / exFAT / HPFS


Drive: sdb _____________________________________________________________________

Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdb1                   1 4,294,967,295 4,294,967,295  ee GPT


GUID Partition Table detected.

Partition    Start Sector    End Sector  # of Sectors System
/dev/sdb1           2,048         4,095         2,048 BIOS Boot partition
/dev/sdb2           4,096 2,605,768,703 2,605,764,608 Data partition (Windows/Linux)
/dev/sdb3   2,605,768,704 2,639,306,751    33,538,048 Swap partition (Linux)

"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/sda2        DCA04533A0451584                       ntfs       
/dev/sdb2        ea61c63c-0a93-44fb-894c-f652c28b67d0   ext4       
/dev/sdb3        ca9c61ec-f99e-428c-bdf3-65fbbfc4b43b   swap       

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/disk/by-uuid/ea61c63c-0a93-44fb-894c-f652c28b67d0 /                        ext4       (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
/dev/sda2        /mnt/win                 fuseblk    (ro,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)


=============================== StdErr Messages: ===============================

xz: (stdin): Compressed data is corrupt

O OS-prober parece não conseguir detectar minha instalação do Win7. Se eu executar update-grub2(que, por sua vez, executa o SO-prober), ele exibirá:

Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
done

Eu tentei algumas variações nas entradas do menu GRUB (modificando /etc/grub.d/40_custome executando update-grub2). Aqui estão alguns deles:

O primeiro é simples, inspirado por (por exemplo) neste link: http://technologytales.com/2010/11/21/manually-adding-an-entry-for-windows-7-to-an-ubuntu-grub2 -cardápio/

menuentry 'Windows 7' {
set root='(hd0,2)'
chainloader +1
}

Isso não inicializa e resulta na seguinte saída do GRUB:

  Booting a command list

error: invalid signature.

Press any key to continue...

Então eu tentei isso:

menuentry 'Windows 7' --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,2)'
search --no-floppy --fs-uuid --set=root DCA04533A0451584
chainloader +1
}

o que resulta em:

BOOTMGR is missing
Press Ctrl+Alt+Del to restart

e então eu tentei:

menuentry 'Windows 7' --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
set root='(hd0,2)'
search --no-floppy --fs-uuid --set=root DCA04533A0451584
ntldr ($root)/Windows/System32/winload.exe
}

que também não funciona (vai para uma tela vazia com um cursor piscando).

Estou realmente perdido aqui. Qualquer ajuda seria muito apreciada!

Atualização: Eu executei o boot-repair-disk (como sugerido por moses nos comentários) com as configurações padrão. Não adicionou uma entrada Win7 ao menu de inicialização. Talvez ele não tenha detectado a instalação do Win7, pois substituiu seu MBR pelo GRUB. Aqui está um link para o log de boot-repair-disk .

user829876
fonte
Você já tentou simplesmente executar o disco de reparo de inicialização automático? Ele verifica todos os sistemas operacionais e reconstrói o grub sem a necessidade de fazê-lo manualmente.
Moisés
Obrigado pela dica! Eu não sabia que o disco de reparo e inicialização existia. Eu o executei com as configurações padrão, mas não adicionei nenhuma entrada ao menu do GRUB. Atualizando a pergunta acima com o log de reparo de inicialização.
user829876

Respostas:

1

O problema é que o Windows 7 usa uma partição do sistema de 100 MB que contém os arquivos de inicialização. Portanto, você precisa inicializar a partir dele, não a unidade do Windows (que é chamada de partição de inicialização ).

menuentry 'Windows 7' {
set root='(hd0,1)'
chainloader +1
}

Embora pareça haver um problema em boot info scriptdizer que não é possível montar o sistema de arquivos, isso provavelmente funcionará.

Milind R
fonte