summaryrefslogtreecommitdiffstats
path: root/testing/udev/udev-mount.initd
diff options
context:
space:
mode:
Diffstat (limited to 'testing/udev/udev-mount.initd')
-rw-r--r--[-rwxr-xr-x]testing/udev/udev-mount.initd48
1 files changed, 13 insertions, 35 deletions
diff --git a/testing/udev/udev-mount.initd b/testing/udev/udev-mount.initd
index 839565a5b..f0d8cc39f 100755..100644
--- a/testing/udev/udev-mount.initd
+++ b/testing/udev/udev-mount.initd
@@ -1,5 +1,5 @@
#!/sbin/runscript
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
description="Mount tmpfs on /dev"
@@ -7,13 +7,20 @@ description="Mount tmpfs on /dev"
mount_dev_directory()
{
+ if mountinfo -q /dev; then
+ einfo "/dev is already mounted"
+ return 0
+ fi
+
# No options are processed here as they should all be in /etc/fstab
ebegin "Mounting /dev"
- if fstabinfo --quiet /dev; then
- mount -n /dev
- else
+ if ! fstabinfo --mount /dev; then
+ # we mount devtmpfs if supported
+ local fs=tmpfs
+ grep -qs devtmpfs /proc/filesystems && fs=devtmpfs
+
# Some devices require exec, Bug #92921
- mount -n -t tmpfs -o "exec,nosuid,mode=0755,size=10M" udev /dev
+ mount -n -t "$fs" -o "exec,nosuid,mode=0755,size=10M" udev /dev
fi
eend $?
}
@@ -35,18 +42,6 @@ seed_dev()
# so udev can add its start-message to dmesg
[ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
- # copy over any persistant things
- if [ -d /lib/udev/devices ]; then
- cp -RPp /lib/udev/devices/* /dev 2>/dev/null
- fi
-
- # Not provided by sysfs but needed
- ln -snf /proc/self/fd /dev/fd
- ln -snf fd/0 /dev/stdin
- ln -snf fd/1 /dev/stdout
- ln -snf fd/2 /dev/stderr
- [ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core
-
# Create problematic directories
mkdir -p /dev/pts /dev/shm
return 0
@@ -55,27 +50,10 @@ seed_dev()
start()
{
- # do not run this on too old baselayout - udev-addon is already loaded!
- if [ ! -f /etc/init.d/sysfs ]; then
- eerror "The $SVCNAME init-script is written for baselayout-2!"
- eerror "Please do not use it with baselayout-1!".
- return 1
- fi
-
- _start
-}
-
-_start()
-{
mount_dev_directory || return 1
- # Selinux lovin; /selinux should be mounted by selinux-patched init
- if [ -x /sbin/restorecon -a -c /selinux/null ]; then
- restorecon /dev > /selinux/null
- fi
-
# make sure it exists
- mkdir -p /dev/.udev
+ mkdir -p /dev/.udev /dev/.udev/rules.d
seed_dev