diff options
Diffstat (limited to 'testing/udev/udev-mount.initd')
-rw-r--r--[-rwxr-xr-x] | testing/udev/udev-mount.initd | 48 |
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 |