Bug#1051543: grub2: Fails to load normal.mod from a XFS v5 parition.

Daniel Kiper daniel.kiper at oracle.com
Tue Sep 12 14:43:34 BST 2023


Hey,

Adding Lidong...

Sebastian, Lidong is working on a fix for this issue.

Lidong, please keep Sebastain in the loop.

Daniel

On Sat, Sep 09, 2023 at 03:41:55PM +0200, Sebastian Andrzej Siewior wrote:
> Package: grub2
> Version: 2.12~rc1-9
> Severity: Serious
> control: forwarded -1 https://savannah.gnu.org/bugs/?64376
>
> I have a single XFS partition which contains the root filesystem and the
> boot partition. Since the recent upgrade to the 2.12 series I can't boot
> anymore because grub complains that it can't find normal.mod and remains in
> the rescue shell.
> The ls command kind of works. A ls in /boot/grub/i386-pc/ (where the
> normal.mod should be) shows a few files and then abort with the error
> message: 'error: invalid XFS directory entry'.
>
> I figured out that if I remove that directory and create a new one only
> with normal.mod then it was able to find it and complained about onother file.
> I then repeated the game until I had more files… The invocation of grub-install
> copied all files and broke it again.
>
> I then looked at various places and stumbled uppon
> https://savannah.gnu.org/bugs/?64376 and this indeed matches what I see.
> I rebuilt the grub2 package with commit ef7850c757fb3 ("fs/xfs: Fix
> issues found while fuzzing the XFS filesystem") reverted, installed from
> a rescue system and voila it boots again.
>
> My xfs filesystem is a normal v5 as in:
> | # xfs_info /dev/sdb1
> | meta-data=/dev/sdb1              isize=512    agcount=4, agsize=655360 blks
> |          =                       sectsz=512   attr=2, projid32bit=1
> |          =                       crc=1        finobt=1, sparse=1, rmapbt=1
> |          =                       reflink=1    bigtime=0 inobtcount=0 nrext64=0
> | data     =                       bsize=4096   blocks=2621440, imaxpct=25
> |          =                       sunit=0      swidth=0 blks
> | naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
> | log      =internal log           bsize=4096   blocks=3693, version=2
> |          =                       sectsz=512   sunit=0 blks, lazy-count=1
> | realtime =none                   extsz=4096   blocks=0, rtextents=0
>
> Sebastian



More information about the Pkg-grub-devel mailing list