http://bugzilla.novell.com/show_bug.cgi?id=445490
User andreas.osterburg@digide.net added comment
http://bugzilla.novell.com/show_bug.cgi?id=445490#c60
Andreas Osterburg changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEEDINFO |NEW
CC| |andreas.osterburg@digide.ne
| |t
Info Provider|mmccarthy@lojack.com |
--- Comment #60 from Andreas Osterburg 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.