grub-devel
[Top][All Lists]
Advanced

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

Re: strange grub error on ARM64


From: Fabian Vogt
Subject: Re: strange grub error on ARM64
Date: Mon, 06 Mar 2023 22:25:22 +0100

Hi,

Am Montag, 6. März 2023, 21:59:23 CET schrieb Daniel Kiper:
> Adding Gary and Michael...
> 
> Gary, Michael, could you help with this? Or at least forward this email
> to folks who may help...
> 
> Daniel
> 
> On Mon, Mar 06, 2023 at 10:56:52AM -0800, Atish Patra wrote:
> > Hi,
> > I am working on a cross-architecture cleanup series that removes the
> > arch specific headers from RISC-V, ARM, ARM64 and unifies the linux
> > loader on ARM64 & Linux.
> >
> > The v7 version can be found here.
> > https://lists.gnu.org/archive/html/grub-devel/2023-02/msg00046.html
> >
> > It had a few bugs which are fixed and can be found here.
> >
> > Here are the patches
> > https://github.com/atishp04/grub/commits/riscv_uefi_v8
> >
> > Anybody with ARM64 and/or test setup: Can you please do a quick test
> > to see if you see similar or any other failure ?
> >
> > I noticed a very strange error during ARM64 testing. I have probably
> > done something stupid during the grub build
> > as I can reproduce this with upstream grub as well.
> >
> > I was trying to boot an OpenSuse image in qemu virt machine for ARM64 as per
> > the instructions[1]. The stock grub image works fine however my custom
> > build fails to boot
> > and drops to the grub command line. It seems the grub detects the disk
> > but doesn't read the root partition correctly on my cross-compiled image.
> > It has one additional directory ("@") which I don't see when I mount
> > the disk. it doesn't list any files as well.

What you see is the expected behaviour with upstream GRUB.
The btrfs volume contains various subvolumes below @ which are mounted into the
root file system at various points. The root filesystem itself is at
@/.snapshots/<number>/snapshot/ and set as the default subvolume. That's what
is mounted in a running system if you pass default flags. To see the same as
GRUB, you can do mount -o subvolume=/ /dev/foo3 /mnt.

Downstream there's a patch (and multiple related ones) that makes GRUB mount
the default subvolume instead of the root of the filesystem:
https://build.opensuse.org/package/view_file/openSUSE:Factory/grub2/grub2-btrfs-03-follow_default.patch?expand=1&rev=285

The design of the "Boot into Snapshot" functionality relies on this.

> > ============= Cross compiled grub image =====================
> > grub> ls -l (hd0,gpt3)/
> > DIR          20230302080325 @/
> >
> > grub> ls -l (hd0,gpt3)/@/
> > DIR          20230302080326 boot/
> > DIR         srv/
> > DIR          20230302080326 usr/
> > DIR         opt/
> > DIR          20230302080326 home/
> > DIR         var/
> > DIR         tmp/
> > DIR         root/
> >
> > grub> ls -l (hd0,gpt3)/@/boot/
> > DIR          20230302080326 grub2/
> >
> > grub>
> > ============= Stock grub image from the OpenSuse image=====================
> > grub> ls (hd0,gpt3)/
> > dev/ run/ boot/ config.partids lib sbin srv/ usr/ opt/ config.bootoptions 
> > lib64
> > .snapshots/ bin home/ etc/ var/ tmp/ sys/ mnt/ proc/ root/
> >
> > The same build steps works fine for RISC-V for OpenSuse image though.
> > However, I couldn't figure out what it was. Any help is appreciated.

It's possible that it does not use snapshot or not even btrfs.

Cheers,
Fabian

> > [1] https://en.opensuse.org/openSUSE:AArch64
> >
> > --
> > Regards,
> > Atish
> 
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel





reply via email to

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