Bug 8676

Summary: Kernel 3.8.0 fails to mount XFS filesystems breaking boot and installation
Product: Mageia Reporter: Christiaan Welvaart <cjw>
Component: InstallerAssignee: Thierry Vignaud <thierry.vignaud>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Normal CC: mageia, tmb
Version: Cauldron   
Target Milestone: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Source RPM: dracut-023-12.mga3.src.rpm CVE:
Status comment:

Description Christiaan Welvaart 2013-01-12 23:04:00 CET
Description of problem:

The xfs filesystem module in kernel-desktop 3.8.0rc3 depends on libcrc32c but it (also?) needs the crc32c module to be loaded, at least on my AMD x86-64 system. Otherwise it will complain about unresolved symbols. The installer has this module available but does not load it when loading xfs.ko, so it can't mount XFS filesystems. Initrds do not get the crc32c module - I guess some dependency is missing - so booting with this kernel fails to mount an XFS root fs. 

How reproducible:

Try to install a system with a XFS root fs.

and/or

Update an existing system that uses XFS to kernel 3.8.0rc3.1 .

Workaround:

In the installer, manually load crc32c.

After installing e.g. kernel-desktop-3.8.0-0.rc3.1.mga3, regenerate the initrd with mkinitrd --with=crc32c --preload crc32c ...

There is also a crc32c_intel module that I can't load on this AMD system.
Comment 1 Manuel Hiebel 2013-01-12 23:25:01 CET
I guess you are using cauldron ? :)

Version: 2 => Cauldron
Assignee: bugsquad => tmb

Comment 2 Christiaan Welvaart 2013-01-13 00:31:41 CET
Yes cauldron only, thanks.

The problem is not really in xfs.ko but in libcrc32c and is apparently an old issue that won't be solved in the kernel. The new thing is that XFS now uses (lib)crc32c. The problem was reported for btrfs in bug #3214 and can be resolved in dracut. I'm not sure if an additional fix is needed for the installer.

Assignee: tmb => mageia
Source RPM: kernel-3.8.0-0.rc3.1.mga3.src.rpm => dracut-023-12.mga3.src.rpm

Comment 3 Colin Guthrie 2013-01-13 14:46:37 CET
Yeah I remember fixing this for btrfs, same can be done with xen I reckon... tho' btrfs is kinda specially handled in dracut, so it might need a more generic fix (i.e. just changing our default config to always include that modules...?)
Comment 4 Colin Guthrie 2013-01-13 15:10:00 CET
I think I've included an appropriate fix in dracut for this now.

Can you please check as I've not got an easy way to test.
Comment 5 Christiaan Welvaart 2013-01-13 17:10:02 CET
- dracut-023-14.mga3 installed
- old initrd saved
- mkinitrd /boot/initrd-3.8.0-desktop-0.rc3.1.mga3.img 3.8.0-desktop-0.rc3.1.mga3
- lilo (with this kernel as default)

The system still boots with the right kernel so I think the boot problem is fixed. I have not tried a new install.
Comment 6 Christiaan Welvaart 2013-01-17 00:14:47 CET
I believe something like the following patch is needed to get XFS mounts working with the installer + kernel 3.8.0 . Patch not tested.

Index: perl-install/modules.pm
===================================================================
--- perl-install/modules.pm     (revision 7107)
+++ perl-install/modules.pm     (working copy)
@@ -111,7 +111,7 @@
     my @l = map {
        if_(member($_, 'plip', @parallel_zip_modules), 'parport_pc'),
        if_($_ eq 'vfat', 'nls_cp437', 'nls_iso8859_1'),
-       if_($_ eq 'btrfs', 'crc32c', 'crc32c-intel'),
+       if_($_ eq 'btrfs' || $_ eq 'xfs', 'crc32c', 'crc32c-intel'),
        dependencies_closure(cond_mapping_24_26($_));
     } @$l;

Component: RPM Packages => Installer
Assignee: mageia => thierry.vignaud

Thierry Vignaud 2013-01-18 19:34:05 CET

CC: (none) => tmb

Comment 7 Thierry Vignaud 2013-01-18 19:38:42 CET
Fixed in SVN.
Colin, Thomas, shouldn't the kernel or udev autoloads the module when needed?

Status: NEW => RESOLVED
CC: (none) => mageia
Resolution: (none) => FIXED

Comment 8 Thierry Vignaud 2013-01-18 19:53:22 CET
I forgot we run insmod instead of modprobe in installer
Comment 9 Thierry Vignaud 2013-01-18 19:58:53 CET
Since we now include modprobe in drakx for udev, we could as well run modprobe instead of insmod...
Comment 10 Thomas Backlund 2013-01-18 20:10:14 CET
Yep, I think that would be a good idea, and would help avoiding cases like this
Comment 11 Thierry Vignaud 2013-01-18 22:07:25 CET
Done in SVN.
Comment 12 Colin Guthrie 2013-01-23 14:38:20 CET
OK, there is actually a bug in my dracut module hack in some setups, but I'll fix that one shortly.