Skip to main content
replaced http://superuser.com/ with https://superuser.com/
Source Link

You cannot do that.

It should be glaringly obvious that any pre-boot application, such as the boot loader program for an operating system, is tightly coupled to the machine firmware; just as an ordinary applications program is tied to the operating system whose services it employs. An EFI boot loader program cannot be run on a machine unless that machine provides EFI firmware services. An old PC/AT style bootstrap loader program cannot be run on a machine unless that machine provides the old PC/AT firmware services.

The chainloader verb in GRUB embodies this. It's not documented, but it does different things depending from how GRUB is hosted — i.e. what machine firmware GRUB is (expecting to be) running on. On the version of GRUB hosted on old PC/AT systems, it expects to be given a disc block set or a file, and loads and runs (the first sector of) what it is given in the manner of an old PC/AT VBR bootstrap program. On the EFI-hosted version of GRUB, it expects to be given filenames, and loads and runs the files as ordinary EFI applications.

You have the EFI-hosted version of GRUB. You've passed +1 to chainloader as the filename, but that simply isn't a valid path to a pre-boot EFI application image file. GRUB has been unable to construct the EFI device path for the image file, because you've given it a syntactically incorrect path. Hence the error message.

A correct use of chainloader in the EFI-hosted GRUB names a file. For Microsoft Windows NT 6.1, this will be the EFI version of Microsoft's Boot Manager that lives alongside the BCD store on the EFI System Partition:

chainload (hd1,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi

Of course, this will not work for you, because you either didn't install Windows NT 6.1 on this machine — but on some other machine and transferred the hard disc to this one — or didn't install the EFI-bootstrappable version of it, somehow persuading Windows NT 6.1 to run the non-EFI version of its installation utility on your EFI machine. How do I know? Because Microsoft wouldn't have let you install it to a non-EFI-partitioned hard disc on an EFI machineMicrosoft wouldn't have let you install it to a non-EFI-partitioned hard disc on an EFI machine as you have done, and because you have both a proper EFI System Partition (the FAT partition on your second hard disc) and its Poor Man's equivalent when you would have only needed the former otherwise.

As such, Windows NT 6.1 hasn't been installed with the EFI-hosted version of Microsoft's Boot Manager, the BCD store is in the wrong place, and there will be several other problems — relating to Windows NT expecting one hardware/firmware combination and having been configured with the appropriate drivers and settings for that, and suddenly being bootstrapped on another hardware/firmware combination — in store for you later.

You cannot do that.

It should be glaringly obvious that any pre-boot application, such as the boot loader program for an operating system, is tightly coupled to the machine firmware; just as an ordinary applications program is tied to the operating system whose services it employs. An EFI boot loader program cannot be run on a machine unless that machine provides EFI firmware services. An old PC/AT style bootstrap loader program cannot be run on a machine unless that machine provides the old PC/AT firmware services.

The chainloader verb in GRUB embodies this. It's not documented, but it does different things depending from how GRUB is hosted — i.e. what machine firmware GRUB is (expecting to be) running on. On the version of GRUB hosted on old PC/AT systems, it expects to be given a disc block set or a file, and loads and runs (the first sector of) what it is given in the manner of an old PC/AT VBR bootstrap program. On the EFI-hosted version of GRUB, it expects to be given filenames, and loads and runs the files as ordinary EFI applications.

You have the EFI-hosted version of GRUB. You've passed +1 to chainloader as the filename, but that simply isn't a valid path to a pre-boot EFI application image file. GRUB has been unable to construct the EFI device path for the image file, because you've given it a syntactically incorrect path. Hence the error message.

A correct use of chainloader in the EFI-hosted GRUB names a file. For Microsoft Windows NT 6.1, this will be the EFI version of Microsoft's Boot Manager that lives alongside the BCD store on the EFI System Partition:

chainload (hd1,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi

Of course, this will not work for you, because you either didn't install Windows NT 6.1 on this machine — but on some other machine and transferred the hard disc to this one — or didn't install the EFI-bootstrappable version of it, somehow persuading Windows NT 6.1 to run the non-EFI version of its installation utility on your EFI machine. How do I know? Because Microsoft wouldn't have let you install it to a non-EFI-partitioned hard disc on an EFI machine as you have done, and because you have both a proper EFI System Partition (the FAT partition on your second hard disc) and its Poor Man's equivalent when you would have only needed the former otherwise.

As such, Windows NT 6.1 hasn't been installed with the EFI-hosted version of Microsoft's Boot Manager, the BCD store is in the wrong place, and there will be several other problems — relating to Windows NT expecting one hardware/firmware combination and having been configured with the appropriate drivers and settings for that, and suddenly being bootstrapped on another hardware/firmware combination — in store for you later.

You cannot do that.

It should be glaringly obvious that any pre-boot application, such as the boot loader program for an operating system, is tightly coupled to the machine firmware; just as an ordinary applications program is tied to the operating system whose services it employs. An EFI boot loader program cannot be run on a machine unless that machine provides EFI firmware services. An old PC/AT style bootstrap loader program cannot be run on a machine unless that machine provides the old PC/AT firmware services.

The chainloader verb in GRUB embodies this. It's not documented, but it does different things depending from how GRUB is hosted — i.e. what machine firmware GRUB is (expecting to be) running on. On the version of GRUB hosted on old PC/AT systems, it expects to be given a disc block set or a file, and loads and runs (the first sector of) what it is given in the manner of an old PC/AT VBR bootstrap program. On the EFI-hosted version of GRUB, it expects to be given filenames, and loads and runs the files as ordinary EFI applications.

You have the EFI-hosted version of GRUB. You've passed +1 to chainloader as the filename, but that simply isn't a valid path to a pre-boot EFI application image file. GRUB has been unable to construct the EFI device path for the image file, because you've given it a syntactically incorrect path. Hence the error message.

A correct use of chainloader in the EFI-hosted GRUB names a file. For Microsoft Windows NT 6.1, this will be the EFI version of Microsoft's Boot Manager that lives alongside the BCD store on the EFI System Partition:

chainload (hd1,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi

Of course, this will not work for you, because you either didn't install Windows NT 6.1 on this machine — but on some other machine and transferred the hard disc to this one — or didn't install the EFI-bootstrappable version of it, somehow persuading Windows NT 6.1 to run the non-EFI version of its installation utility on your EFI machine. How do I know? Because Microsoft wouldn't have let you install it to a non-EFI-partitioned hard disc on an EFI machine as you have done, and because you have both a proper EFI System Partition (the FAT partition on your second hard disc) and its Poor Man's equivalent when you would have only needed the former otherwise.

As such, Windows NT 6.1 hasn't been installed with the EFI-hosted version of Microsoft's Boot Manager, the BCD store is in the wrong place, and there will be several other problems — relating to Windows NT expecting one hardware/firmware combination and having been configured with the appropriate drivers and settings for that, and suddenly being bootstrapped on another hardware/firmware combination — in store for you later.

Source Link
JdeBP
  • 27.2k
  • 1
  • 76
  • 104

You cannot do that.

It should be glaringly obvious that any pre-boot application, such as the boot loader program for an operating system, is tightly coupled to the machine firmware; just as an ordinary applications program is tied to the operating system whose services it employs. An EFI boot loader program cannot be run on a machine unless that machine provides EFI firmware services. An old PC/AT style bootstrap loader program cannot be run on a machine unless that machine provides the old PC/AT firmware services.

The chainloader verb in GRUB embodies this. It's not documented, but it does different things depending from how GRUB is hosted — i.e. what machine firmware GRUB is (expecting to be) running on. On the version of GRUB hosted on old PC/AT systems, it expects to be given a disc block set or a file, and loads and runs (the first sector of) what it is given in the manner of an old PC/AT VBR bootstrap program. On the EFI-hosted version of GRUB, it expects to be given filenames, and loads and runs the files as ordinary EFI applications.

You have the EFI-hosted version of GRUB. You've passed +1 to chainloader as the filename, but that simply isn't a valid path to a pre-boot EFI application image file. GRUB has been unable to construct the EFI device path for the image file, because you've given it a syntactically incorrect path. Hence the error message.

A correct use of chainloader in the EFI-hosted GRUB names a file. For Microsoft Windows NT 6.1, this will be the EFI version of Microsoft's Boot Manager that lives alongside the BCD store on the EFI System Partition:

chainload (hd1,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi

Of course, this will not work for you, because you either didn't install Windows NT 6.1 on this machine — but on some other machine and transferred the hard disc to this one — or didn't install the EFI-bootstrappable version of it, somehow persuading Windows NT 6.1 to run the non-EFI version of its installation utility on your EFI machine. How do I know? Because Microsoft wouldn't have let you install it to a non-EFI-partitioned hard disc on an EFI machine as you have done, and because you have both a proper EFI System Partition (the FAT partition on your second hard disc) and its Poor Man's equivalent when you would have only needed the former otherwise.

As such, Windows NT 6.1 hasn't been installed with the EFI-hosted version of Microsoft's Boot Manager, the BCD store is in the wrong place, and there will be several other problems — relating to Windows NT expecting one hardware/firmware combination and having been configured with the appropriate drivers and settings for that, and suddenly being bootstrapped on another hardware/firmware combination — in store for you later.