Bug 61771

Summary: /initrd/dev not unmounted when initrd uses devfs
Product: [Retired] Red Hat Public Beta Reporter: W. Michael Petullo <redhat>
Component: initscriptsAssignee: Bill Nottingham <notting>
Status: CLOSED DUPLICATE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: skipjack-beta1CC: rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-03-24 12:17:32 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:

Description W. Michael Petullo 2002-03-24 12:17:28 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 Galeon/1.0.2 (X11; Linux i686; U;) Gecko/20011226

Description of problem:
/etc/rc.d/rc.sysinit trys to unmount /initrd.  However, if the initrd uses
devfs, then this unmount fails because devfs is mounted at /initrd/dev.  Since
/initrd/dev can not be mounted until after chroot executes init in the initrd
linuxrc script (following a call to pivot_root), /initrd/dev/must be unmounted
by rc.sysinit.



Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1.  Make an initrd that supports devfs and have its linuxrc mount devfs at /dev.
2.  Linuxrc executes pivot_root and "chroot ... init".
3.  Rc.sysinit tries to unmount /initrd but fails because /initrd/dev is a
mounted devfs.


Actual Results:  Unmount of /initrd by rc.sysinit fails.  Unmounting all
filesystems at system shutdown also fails.



Expected Results:  /initrd and /initrd/dev should have been unmounted as they
are no longer needed.

Additional info:

This patch fixes the bug:

--- rc.sysinit.orig	Sun Mar 24 13:02:24 2002
+++ /etc/rc.d/rc.sysinit	Sun Mar 24 13:03:04 2002
@@ -54,6 +54,9 @@
 
 # Unmount the initrd, if necessary
 if grep -q /initrd /proc/mounts && ! grep -q /initrd/loopfs /proc/mounts ;
then+   if [ -e /initrd/dev/.devfsd ]; then
+      action $"Unmounting initrd devfs: " umount /initrd/dev
+   fi
    action $"Unmounting initrd: " umount /initrd
    /sbin/blockdev --flushbufs /dev/ram0 >/dev/null 2>&1
 fi

Comment 1 Bill Nottingham 2002-04-12 20:45:57 UTC

*** This bug has been marked as a duplicate of 59562 ***