Bug 9922

Summary: udev not creating /dev/sdxX devices for some partitions
Product: Mageia Reporter: Frank Griffin <ftg>
Component: RPM PackagesAssignee: Mageia Bug Squad <bugsquad>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Normal CC: mageia
Version: Cauldron   
Target Milestone: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Source RPM: udev CVE:
Status comment:

Description Frank Griffin 2013-04-29 21:13:48 CEST
Lately I've noticed that i no longer have /dev entries for my hard disk partitions that aren't defined in fstab.  This makes it impossible to chroot these guys from a different system, format them, etc.

I've verified that if I place them in fstab, the devices are then created normally.

Reproducible: 

Steps to Reproduce:
claire robinson 2013-04-30 10:27:07 CEST

CC: (none) => mageia

Comment 1 Colin Guthrie 2013-04-30 10:53:23 CEST
I *really* don't think it's related to fstab! Can you confirm this however?

Summary: udev not creating /dev/sdxX devices for partitions not in fstab => udev not creating /dev/sdxX devices for some partitions

Comment 2 Frank Griffin 2013-04-30 12:40:11 CEST
I saw this in two scenarios.  I keep three root patitions on the HD and rotate them for fresh installs and fallback.  They have been there, formatted, forever.  The ones other than the booted root are not mentioned in the fstab of the booted one, and that is exactly the subset for which devices weren't created.

In the second scenario, I created a new install root partition, did an install to that, and rebooted the normal system.  The new partition was also not in fstab, and did not have a device created.

I then added all of the devices to fstab, rebooted, and devices were created for all of them.  I can't tie it up any tighter than that.

Another interesting, although unrelated, issue is that if any of the partitions in fstab are not available at boot, systemd drops you into a recovery shell.  I found this by adding some partitions on a flash drive and then booting without the drive plugged in.
Comment 3 Colin Guthrie 2013-04-30 13:10:53 CEST
Very interesting indeed - I may need to eat my words in the last comment! :) I will have to try and recreate this to debug it further I think.

As for the recovery shell thing, yes, this is expected. If you mention a filesystem in fstab where the device does not exist, systemd will consider this a critical part of the boot process and drop you to shell to fix it. If you don't care about such mountpoints (i.e. you as the administrator feel they are not important or critical to the boot), you can mark them with the nofail option and systemd will continue the boot as normal. I think this behaviour makes sense generally (e.g. you likely wouldn't want the boot to continue with your /var partition not mounted for example, but your /data partition might not matter too much in your setup so you can configure them accordingly to your needs).
Comment 4 Colin Guthrie 2013-05-04 11:59:40 CEST
I tried to reproduce this in a VM. I created partitions / /foo /usr /bar swap in the installer and then removed the mountpoints for /foo and /bar. The install when fine. After rebooting, I could see all my partitions fine. I then dd'ed them to 0 and rebooted, but again they still showed up. (they are of course unlisted in fstab).

So I'm really struggling to see how to reproduce this issue. I wonder if there is some kind of issue with udev itself? Perhaps the recent update to fix the FPE (floating point exception) stuff properly has actually fixed this problem?
Comment 5 Frank Griffin 2013-05-04 13:32:36 CEST
I'll retest on the affected machine and let you know.
Comment 6 Frank Griffin 2013-05-04 14:46:30 CEST
You're right.  In current cauldron (as of about 10 mins ago), the missing devices are now being created just fine.

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

Comment 7 Colin Guthrie 2013-05-04 14:52:17 CEST
Nice thanks for confirming :)