Bug 8676 - Kernel 3.8.0 fails to mount XFS filesystems breaking boot and installation
Summary: Kernel 3.8.0 fails to mount XFS filesystems breaking boot and installation
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Installer (show other bugs)
Version: Cauldron
Hardware: x86_64 Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Thierry Vignaud
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-12 23:04 CET by Christiaan Welvaart
Modified: 2013-01-23 14:38 CET (History)
2 users (show)

See Also:
Source RPM: dracut-023-12.mga3.src.rpm
CVE:
Status comment:


Attachments

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.

Note You need to log in before you can comment on or make changes to this bug.