[Bug 518582] Re: mount ext fileystem fails, booting fails, blkid produces no output
Daniel Drake
518582 at bugs.launchpad.net
Wed May 27 03:21:24 UTC 2020
A decade later, found the same bug in grub.
It might not affect "standard" grub usage (e.g. Ubuntu) where it may not
need to probe and guess filesystem type just to boot the system, but
thank you for the excellent diagnosis nevertheless!
https://lists.gnu.org/archive/html/grub-devel/2020-05/msg00205.html
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to util-linux in Ubuntu.
https://bugs.launchpad.net/bugs/518582
Title:
mount ext fileystem fails, booting fails, blkid produces no output
Status in util-linux package in Ubuntu:
Fix Released
Status in util-linux source package in Lucid:
Fix Released
Bug description:
Symptoms: (Ubuntu 9.10 on an ext4 partition /dev/sda1)
1. Booting fails with error message:
Gave up waiting for root device. common problems
-Boot args(cat/proc/cmdline)
-check rootdelay=(did the system wait long enough?)
-check root=(did the system wait for the right device?)
Missing modules(cat/proc/modules; IS/dev)
Alert!/dev/disk/by-uuid/d3bb8e26-9798-49 ce-bc57-afb6ca6za7ba does not exist. Drop to a shell!
2. "mount /dev/sda1 /mnt" gives "mount: you must specify the filesystem type"
but "mount -t ext4 /dev/sda1" is successful
3. "blkid /dev/sda1" returns nothing
4. "blkid -p /dev/sda1" gives "ambivalent result (probably more
filesystems on the device)"
5. "hexdump -s 0x410 -n 2 /dev/sda1" returns on of the four numbers
hexadecimals 137f, 138f, 2468,2478,
6. "sudo BLKID_DEBUG=0xffff blkid -p /dev/sda1 | grep "minix: magic"
returns
"ambivalent result (probably more filesystems on the device)"
minix: magic sboff=16, kboff=1
7. After installing util-linux-ng-2.17 from source: "wipefs /dev/sda1" returns:
offset type
----------------------------------------------------------------
0x410 minix [filesystem]
0x438 ext4 [filesystem]
UUID: d3bb8e26-9798-49ce-bc57-afb6ca62a7ba
I was able to cure the problem by creating a file on "/dev/sda1" and whereby changing the number of free inodes.
There have been seven of these case in the Ubuntu forums by now:
http://ubuntuforums.org/showthread.php?t=1397193
http://ubuntuforums.org/showthread.php?t=1414662
http://ubuntuforums.org/showthread.php?t=1068895
http://ubuntuforums.org/showthread.php?t=1422558
My diagnosis:
Minix uses the "magic number" 137f, 138f, 2468,2478, at the location
0x410 to mark a Minix file system.
0x410 is also the location any ext filesystem uses to record the
number of free inodes.
In decimals those four numbers are 4991,5007,9320,9336
If the number of free inodes happens to be one of those four numbers
plus a multiple of 65536, then the ext filesystem will write one
of the four Minix magic numbers to the 0x410 location.
So blkid gets confused and does not know whether the files system is Minix or Ext.
In particular, if this happens on the root partition, Ubuntu will no longer boot.
Cure:
Boot from the Ubuntu LiveCD and create a file on the affected
partition:
sudo mount /dev/sda1 /mnt
sudo touch /mnt/empty_file
This solution works for an ext4 filesystem. But does not work for
ext2. For ext2 one needs to replace the UUID in fstab and grub.cfg by
the device name. See
https://sourceforge.net/apps/mediawiki/bootinfoscript/index.php?title=Boot_Problems:minix
for more details.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/518582/+subscriptions
More information about the foundations-bugs
mailing list