Mailinglist Archive: opensuse-bugs (4060 mails)

< Previous Next >
[Bug 445490] boot stops on mounting a software RAID - Invalid root filesystem
  • From: bugzilla_noreply@xxxxxxxxxx
  • Date: Thu, 11 Jun 2009 01:32:51 -0600
  • Message-id: <20090611073251.98F0324550C@xxxxxxxxxxxxxxxxxxxxxx>
http://bugzilla.novell.com/show_bug.cgi?id=445490

User andreas.osterburg@xxxxxxxxxx added comment
http://bugzilla.novell.com/show_bug.cgi?id=445490#c60


Andreas Osterburg <andreas.osterburg@xxxxxxxxxx> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEEDINFO |NEW
CC| |andreas.osterburg@xxxxxxxxx
| |t
Info Provider|mmccarthy@xxxxxxxxxx |




--- Comment #60 from Andreas Osterburg <andreas.osterburg@xxxxxxxxxx>
2009-06-11 01:32:46 MDT ---
After upgrading to the latest kernel on openSUSE 11.1 the same problem
occured.
The problem behind is very simple and the solution, too.

The main problem is, that all udev rules are fired when a new MD
array is assembled, but this does not necessarily has to be started in these
moments.

The critical section is within the udev-rules-file "64-md-raid.rules"
(/lib/udev/rules.d/)

==> HERE IS THE PROBLEMATIC RULE:

IMPORT{program}="vol_id --export $tempnode"

vol_id will be called on an array that is assembled, but not started,
so the determination of the filesystem type fails (env-Var ID_FS_TYPE)
(and then the remaining parts in iniramfs fail)
It can be seen when you call "mdadm --detail $tempnode" and pipe it to
/dev/console within these rules (separate script needed)
It says "status: clean, Not Started"

The solution is simple: Wait until the array is started.

My quick solution is the following:

A new udev program called "md-stat.sh" which waits, until the array is ready.
Run it before vol_id will be called (file is attached).

So add the following rule before the vol_id rule:

IMPORT{program}="md-stat.sh $tempnode"

(the dirtiest hack is to wait 3 seconds [IMPORT{program}="/bin/sleep 3"])

4 steps are needed to fix:

1. Put md-stat.sh to /lib/udev
2. Modify /lib/udev/rules.d/64-md-raid.rules
3. run "mkinitrd"
4. reboot ;-)

--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

< Previous Next >