Windows가 hd1에서 부팅할 수 없습니다.

Windows가 hd1에서 부팅할 수 없습니다.

내 시스템에 두 번째 디스크를 추가하고 여기에 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
}

추신: 내 시스템은 이제 약간 오래되었으며(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

관련 정보