Windowsはhd1から起動できません。

Windowsはhd1から起動できません。

私のシステムに2番目のディスクを追加し、ここにlinux-installation + grubをコピーしました。今、私のシステムには2つのディスクが含まれています。

hd0: 
sda5: linux

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

hd1から起動すると(Biosの起動メニューまたはhd0の切断)、Windowsはすぐに起動しますが、hd0から起動してWindowsから起動することを選択すると、点滅しているカーソルが付いた黒い画面のみが表示されます。

hd0/grub.cfg (動作しない)

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 (有効)

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:私のシステムはもう少し古く(athlon x4)、UEFIではなく汎用BIOSがあります。

どのようなアイデアやデバッグ情報をさらに得る方法はありますか?

それとも、Windowsを常に最初のハードドライブにインストールする必要があるという制限がありますか? (2016年にも)

解決策:

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
}

答え1

最初のドライブ以外のドライブからgrubを使用してWindowsを起動するのは少し面倒です。ディスクを交換する必要があります。

最初のハードドライブ以外のハードドライブにDOS(またはWindows)をインストールした場合、オペレーティングシステムは最初のハードドライブ以外のディスクから起動できないため、ディスク交換技術を使用する必要があります。 GRUBで使用される回避策は、次のドライブマップ(drivemapを参照)コマンドです。
drivemap -s (hd0) (hd1)

詳細については、次を参照してください。https://www.gnu.org/software/grub/manual/html_node/DOS_002fWindows.html#DOS_002fWindows

関連情報