diff --git a/package/base-files/files/lib/preinit/20_device_fs_mount b/package/base-files/files/lib/preinit/20_device_fs_mount index f82f9a6f45..6ba7ccc6f1 100644 --- a/package/base-files/files/lib/preinit/20_device_fs_mount +++ b/package/base-files/files/lib/preinit/20_device_fs_mount @@ -2,6 +2,16 @@ # Copyright (C) 2006 OpenWrt.org # Copyright (C) 2010 Vertical Communications +do_move_devtmpfs() { + foo="`grep devtmpfs /proc/mounts`" + x=${foo#* } + x=${x%% *} + + if [ "$x" != "/dev" ] ; then + mount -o move "$x" /dev + fi +} + do_mount_devfs() { mount devfs /dev -t devfs } @@ -15,7 +25,9 @@ do_mount_udev() { } choose_device_fs() { - if grep -q devfs /proc/filesystems; then + if grep -q devtmpfs /proc/mounts; then + do_move_devtmpfs + elif grep -q devfs /proc/filesystems; then do_mount_devfs elif [ -x /sbin/hotplug2 ]; then do_mount_hotplug