Bug 130574
| Summary: | /etc/rc.d/rc.sysinit starts udev even when it is not really available | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Michal Jaegermann <michal> |
| Component: | initscripts | Assignee: | Bill Nottingham <notting> |
| Status: | CLOSED RAWHIDE | QA Contact: | Brock Organ <borgan> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 3 | CC: | ckloiber, rvokal |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2004-10-14 04:44:15 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 123268 | ||
Even if the current rawhide version of udev is changing a default
configuration to UDEV_RAMFS=no then it seems to me that a check
like that should be employed:
--- /etc/rc.d/rc.sysinit~ 2004-08-20 09:57:15.000000000 -0600
+++ /etc/rc.d/rc.sysinit 2004-08-24 14:30:05.563598249 -0600
@@ -34,7 +34,13 @@ if [ -f /etc/udev/udev.conf ];then
fi
if [ "$USE_UDEV" = "yes" -a "$UDEV_RAMFS" = "yes" ]; then
- [ -x /sbin/start_udev ] && /sbin/start_udev
+ if [ "$UDEV_KEEP_DEV" = "yes" ] ; then
+ [ -r /proc/mounts ] && \
+ grep -q " ${udev_root%/} " /proc/mounts && \
+ [ -x /sbin/start_udev ] && /sbin/start_udev
+ else
+ [ -x /sbin/start_udev ] && /sbin/start_udev
+ fi
fi
# Check SELinux status
(although a logic in /sbin/start_udev seems to be somewhat
convoluted). Alternatively something like a patch attached to
bug #130808 seems to be needed; or maybe both so initscripts
may not presume that /sbin/start_udev is always correct.
I've found it's currently impossible to use MD or LVM devices thanks to this. It only seems to work whan there is no software raid or LVM on the system. udev is currently being started on the real rootfs when it's mounted ro, so no device entries are being created. This is 'fixed' now in the way that udev is used. |
Description of problem: In the current version of startup there is the following code: if [ -f /etc/udev/udev.conf ];then . /etc/udev/udev.conf fi if [ "$USE_UDEV" = "yes" -a "$UDEV_RAMFS" = "yes" ]; then [ -x /sbin/start_udev ] && /sbin/start_udev fi So far, so good but if 'initrd' image was done without udev (for whatever reasons; a flag '--noudev' was used, for example, or anything else) then this will run /sbin/start_udev when really there is no such thing. See bug #130573 for an example of side-effects. A check that something is indeed mounted on $udev_root, as defined in /etc/udev/udev.conf, is missing here. It will have to peek into /proc/mounts but if /proc is not mounted yet then /sbin/start_udev will fail too. Version-Release number of selected component (if applicable): initscripts-7.66-1 How reproducible: Always