fstype error causes the root filesystem to not mount

Bug #76675 reported by hads
4
Affects Status Importance Assigned to Milestone
klibc (Ubuntu)
Fix Released
Critical
Colin Watson

Bug Description

Running Feisty current as of now.

After the update to klibc-utils 1.4.30-3ubuntu1 the fstype binary no longer works.

root@snowman:~# /usr/lib/klibc/bin/fstype < /dev/sda2
stdin: error 0

This then causes any initramfs generated to not know the root filesystem type and therefore not boot.

More specifically, on line 53 of the initramfs copy of /usr/share/initramfs-tools/scripts/local modprobe fails because $FSTYPE is not set. This in turn causes the mount of / to fail.

Related branches

Colin Watson (cjwatson)
Changed in klibc:
assignee: nobody → kamion
importance: Undecided → Critical
status: Unconfirmed → Confirmed
Revision history for this message
Colin Watson (cjwatson) wrote :

I'm pretty sure that the problem here is that klibc's internal sys/types.h does "typedef __kernel_loff_t off_t;" (sic), whereas debian/patches/10-use-exported-kernel-headers.patch backs this out in favour of <linux/types.h> which does "typedef __kernel_off_t off_t;" instead. usr/klibc/SYSCALLS.def uses off_t for a bunch of syscalls with 32/64-bit alternatives where the kernel uses loff_t for the 64-bit version. Changing these all to loff_t might work, since that's what the kernel was doing anyway.

In the meantime, though, I'm just going to back out this patch to fix booting again.

Revision history for this message
Colin Watson (cjwatson) wrote :

klibc (1.4.30-3ubuntu2) feisty; urgency=low

  * Back out debian/patches/10-use-exported-kernel-headers.patch for now;
    klibc's internal sys/types.h munges off_t into __kernel_loff_t, and
    having <linux/types.h> use __kernel_off_t instead confuses pread64()
    horribly, breaking fstype (LP: #76675).
  * debian/patches/10-sum-types.patch: Add __sum16 and __wsum from
    <linux/types.h>; __sum16 is required for ipconfig to build.
  * debian/patches/11-ext2-ext3-endianness.patch: Add a couple of
    __le32_to_cpu calls to fix ext2 and ext3 size detection on big-endian
    systems.

 -- Colin Watson <email address hidden> Thu, 21 Dec 2006 03:14:36 +0000

Changed in klibc:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.