help-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Grub2 chainloader bootmgfw.efi not working


From: Vyacheslav Gonakhchyan
Subject: Re: Grub2 chainloader bootmgfw.efi not working
Date: Wed, 16 Sep 2015 10:04:57 +0300

I boot using option "usb". It goes into grub rescue mode. Maybe it reads devices from grubx64.efi. Other boot options "arch", "Test" don't work and give me black screen with blinking cursor.

efibootmgr -v
BootCurrent: 0002
Timeout: 3 seconds
BootOrder: 0008,0006,0003,0001,0000,0004,0005,0002
Boot0000* CD/DVD Drive    BBS(CDROM,,0x0)
Boot0001* Hard Drive    BBS(HD,,0x0)
Boot0002* usb    PciRoot(0x0)/Pci(0x12,0x2)/USB(5,0)/USB(1,0)/File(\EFI\arch\grubx64.efi)
Boot0003* Test    HD(7,GPT,c92e4c3a-00d8-41cf-81f4-3d3c5a8e86aa,0x3a282000,0x104000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
Boot0004* UEFI: FAT File System    PciRoot(0x0)/Pci(0x12,0x2)/USB(5,0)/USB(1,0)
Boot0005* Removable Drive    BBS(Floppy,,0x0)SPCC USB Flash Memory1.00.
Boot0006* arch    HD(7,GPT,c92e4c3a-00d8-41cf-81f4-3d3c5a8e86aa,0x3a282000,0x104000)/File(\EFI\arch\grubx64.efi)
Boot0008* Windows Boot Manager    HD(7,GPT,c92e4c3a-00d8-41cf-81f4-3d3c5a8e86aa,0x3a282000,0x104000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................

>is disk 512b or 4K?
cat /sys/block/sda/queue/hw_sector_size prints 512

Attached output from
dd if=/dev/sda count=1 bs=1024 of=~/sda_1k.out
ddrescue  --reverse  --size=512 /dev/sda ~/sda_last.out



On Wed, Sep 16, 2015 at 6:24 AM, Andrei Borzenkov <address@hidden> wrote:
15.09.2015 22:40, Vyacheslav Gonakhchyan пишет:
map -v
Mapping table
       FS0: Alias(s):F7f0b0:;BLK5:
           PciRoot(0x0)/Pci(0x12,0x2)/USB(0x5,0x0)/USB(0x1,0x0)
          Handle:      [C5]
          Media Type:  Unknown
          Removable:   Yes
          Current Dir: FS0:
      BLK0: Alias(s):
           PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x0,0x0)
          Handle:      [CC]
          Media Type:  Unknown
          Removable:   No
          Current Dir: BLK0:
      BLK2: Alias(s):
           PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x1,0x0)
          Handle:      [CD]
          Media Type:  Unknown
          Removable:   No
          Current Dir: BLK2:
      BLK4: Alias(s):
           PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x2,0x0)
          Handle:      [CE]
          Media Type:  Unknown
          Removable:   No
          Current Dir: BLK4:
      BLK1: Alias(s):

PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x0,0x0)/HD(1,MBR,0x91E11F57,0x1,0x3A38602F)
          Handle:      [CF]
          Media Type:  HardDisk
          Removable:   No
          Current Dir: BLK1:
      BLK3: Alias(s):

PciRoot(0x0)/Pci(0x11,0x0)/Sata(0x1,0x0)/HD(1,MBR,0x00040B8F,0x3F,0x74705982)
          Handle:      [D0]
          Media Type:  HardDisk
          Removable:   No
          Current Dir: BLK3:

So everything is bad because my MB(ASUS *M5A97*) suddenly cannot discover
gpt partitions?

This explains GRUB behavior. But now I'm extremely confused - can your system actually boot? Where does it boot from? Could you show "efibootmgr -v" output?

I have not said it in first mail but this boot situation
started after I tried to resize one partition in Acronis Disk Director 12
and it failed. Maybe it did something to gpt tables. But archlinux can work
with them so it's strange.


So does GRUB. Could you attach the first 1K and the last sector from this disk? And, BTW, is disk 512b or 4K?


On Tue, Sep 15, 2015 at 1:14 PM, Andrei Borzenkov <address@hidden>
wrote:

On Tue, Sep 15, 2015 at 12:28 PM, Vyacheslav Gonakhchyan
<address@hidden> wrote:
Attached devtree output. Don't have serial console so provided image
links.

Do you see entry corresponding to hd1,gpt7?
Only HD entries I see:
http://postimg.org/image/5a5n8yylv/
Entire lsefi output:
http://postimg.org/gallery/206hl6qfo/fcc52503/?code=fcc52503


ls -l output:
http://postimg.org/image/ntoj0d7lf/
http://postimg.org/image/666q25xo3/


Well, you firmware sees two partitions - (hd2,msdos2) and what is
probably protective MBR on hd1. It does *NOT* show any trace of GPT
partitions on hd1.

Could you please boot EFI Shell and attach output of "map -v" command?

On Tue, Sep 15, 2015 at 6:56 AM, Andrei Borzenkov <address@hidden>
wrote:

15.09.2015 01:18, Vyacheslav Gonakhchyan пишет:

I installed grub-git and efibootmgr-git and reproduced it.
If it matters could not build efivar-git so it's few month behind.



Could you please run "lsefi" in GRUB CLI and look for paths ending with
HD(...). It is structured as



HD(<partition_number>,<partition_start>,<partition_size>,<partition_signature>,<partmap_type>,<signature_type>)

Do you see entry corresponding to hd1,gpt7?

Unless you have serial console you want to do

set pager=1

otherwise it will scroll too fast. Keep in mind that there is no way to
abort output once started you will have to keep paging it until end. If
you
have serial console, could you attach output as well as "ls -l"?

Could you also boot EFI Shell and attach output of "devtree" (you can
redirect to a file on ESP).


On Mon, Sep 14, 2015 at 7:42 PM, Andrei Borzenkov <address@hidden

wrote:

14.09.2015 15:36, Vyacheslav Gonakhchyan пишет:

My Grub2 is EFI. I use grub-install --target=x86_64-efi
--efi-directory=/boot/efi /dev/sda which calls efibootmgr to load
grubx64.efi into UEFI BIOS.


OK in this case message means that grub cannot find EFI handle for
$root
(i.e. in your case - partition gpt7). GRUB itself needs just disk
reference
and handles partitions internally. But when launching external binary
it
wants to pass it reference to device where it is located which means
it
must be exported and accessible by firmware.

The first step would be to try to reproduce it using upstream sources.


echo $grub_cpu $grub_platform


Sorry, can only check it later. I'm guessing x86_64, efi-64...

On Mon, Sep 14, 2015 at 4:11 PM, Andrei Borzenkov <
address@hidden>
wrote:

On Mon, Sep 14, 2015 at 2:36 PM, Vyacheslav Gonakhchyan

<address@hidden> wrote:

Hi, everyone!

I have dual boot config Archlinux/Windows7 and latest packages. I
am

booted

into grub rescue mode. Or use command line. I want to tell Grub2 to
load
Windows Boot Loader bootmgfw.efi. Basically grub2 refuses to do it
with
error "invalid root device".

Steps to reproduce:

set root=(hd1,gpt7)
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

Screen is flashing with "invalid root device".


Is your grub BIOS or EFI? What are values for grub_cpu and
grub_platform?

echo $grub_cpu $grub_platform

So grub2 finds bootmgfw.efi but cannot give it control. I tried
every


other

hd1,gpt combination to no avail.  I also tried setting root to one
device
and loading bootmgfw.efi from another device(hd1,gpt7).
It's strange because I can load this file from shell (shellx64.efi)

within

UEFI BIOS without error. Any advice is appreciated.

Regards,
Viacheslav

_______________________________________________
Help-grub mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/help-grub












Attachment: sda_1k.out
Description: Binary data

Attachment: sda_last.out
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]