O Windows não inicializa a partir do hd1

1

Eu adicionei um segundo disco ao meu sistema e copiei meu linux-installation + grub nele. Meu sistema contém dois discos agora:

hd0: 
sda5: linux

hd1: (old system with dualboot)
sdb2: windows
sdb5: linux

Se eu inicializar a partir do hd1 (menu de inicialização do BIOS ou desconectar o hd0), o windows iniciará imediatamente, mas se eu inicializar pelo hd0 e selecionar boot pelo windows, ele só me mostrará uma tela preta com um courser piscando.

hd0 / grub.cfg (não funciona)

menuentry 'Windows 7 (loader) (/dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-chain-9C567F24567EFE78' {
        insmod part_msdos
        insmod ntfs
        set root='hd1,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1  9C567F24567EFE78
        else
          search --no-floppy --fs-uuid --set=root 9C567F24567EFE78
        fi
        parttool ${root} hidden-
        chainloader +1
}

hd1 / grub.cfg (funciona)

menuentry 'Windows 7 (loader) (/dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-9C567F24567EFE78' {
    insmod part_msdos
    insmod ntfs
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  9C567F24567EFE78
    else
      search --no-floppy --fs-uuid --set=root 9C567F24567EFE78
    fi
    parttool ${root} hidden-
    chainloader +1
}

PS: Meu sistema é meio antigo agora (athlon x4) com um BIOS normal e não com UEFI.

Alguma idéia, ou como posso obter mais informações de depuração?

Ou há alguma limitação e o Windows sempre precisa ser instalado no primeiro disco rígido? (Mesmo em 2016)

Solução:

menuentry 'Windows 7 cust' --class windows --class os $menuentry_id_option 'osprober-chain-9C567F24567EFE78' {
        insmod part_msdos
        insmod ntfs
        set root='hd1,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1  9C567F24567EFE78
        else
          search --no-floppy --fs-uuid --set=root 9C567F24567EFE78
        fi
###parttool ${root} hidden-
        drivemap -s (hd0) ${root} ### intern disk swap
        chainloader +1
}
    
por Martin Baumgartner 12.01.2016 / 09:56

1 resposta

1

A inicialização de janelas com o grub em uma unidade que não seja a primeira é um pouco complicada: você terá que trocar seus discos:

If you have installed DOS (or Windows) on a non-first hard disk, you have to use the disk swapping technique, because that OS cannot boot from any disks but the first one. The workaround used in GRUB is the command drivemap (see drivemap), like this:
drivemap -s (hd0) (hd1)

Mais detalhes no link

    
por 12.01.2016 / 10:20