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: Andrei Borzenkov
Subject: Re: Grub2 chainloader bootmgfw.efi not working
Date: Wed, 16 Sep 2015 19:46:10 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

16.09.2015 10:04, Vyacheslav Gonakhchyan пишет:
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


Are you sure it actually saves the last sector? File you attached looks identical to the very first sector. If it is indeed the last one, it may confuse firmware (last sector must contain copy of GPT header but GRUB never checked it).

Otherwise header looks fine. I assume partition table itself should be OK as both grub and Linux accept it.



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

















reply via email to

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