On Thu, May 11, 2017 at 05:48:34PM +0900, YASUOKA Masahiko wrote: > Hi, > > Thank you for your tests, > > On Thu, 11 May 2017 07:40:42 +0200 > ... > > So I can use the stock bootloader without changes but I must do a > > > > boot> set device hd2a > > I'm not clear whether we still have a problem. > > Does the boot loader select the booted disk as "hd0" correctly? > > If you booted from 29GB disk, "machine diskinfo" must be: > > Disk BlkSiz IoAlign Size Flags Checksum > hd0 512 1 29GB 0x2 0xad4a42c3 > hd1 512 1 4MB 0x0 0x0 > hd2 512 1 4MB 0x0 0x0 >
There is still a problem because I booted from the 29GB disk, the bootloader selects hd0, but the machine diskinfo order is: Disk BlkSiz IoAlign Size Flags Checksum hd0 512 1 4MB 0x0 0x0 hd1 512 1 4MB 0x0 0x0 hd2 512 1 29GB 0x2 0xad4a42c3 I don't know if it is related but a problem is probably (efiboot.c, line 87) here: status = EFI_CALL(BS->HandleProtocol, imgp->DeviceHandle, &devp_guid, (void **)&dp0); where status is EFI_SUCCESS but dp0 remains NULL, so the following for loop loops through invalid device paths until a causal IsDevicePathEnd() true. I not sure of what I'm saying because I have not investigated yet, I have to read some EFI documentation first to understand what's happening. Thank you for the help, Michele > --yasuoka