Reboot system repeatedly, occasionally found usb automount failed, a
low probability but it happens.
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
none
1024972 4
1024968 0% /dev
/dev/sda3
7689384 3540940 3757840 49% /media/sda3
/dev/sda2
146127424 1238432 137466120 1% /media/sda2
/dev/sda1 17845 14570 2354 86% /media/sda1
/dev/sdb 293400 288560 4840 98% /media/sdb
/dev/sdc4 457632 32 457600 0% /media/sdc4
/dev/sdc1 475018 2321 447749 1% /media/sdc1
/dev/sdd
1382298 1382298 0 100% /media/sdd
/dev/sdc2 475694 2320 448374 1% /media/sdc2
/dev/loop0 270649 181249 75644 71% /
df: /media/sdc3: No such file or directory
tmpfs
1029352 0
1029352 0% /dev/shm
tmpfs
1029352 2816
1026536 0% /run
tmpfs
1029352 0
1029352 0% /sys/fs/cgroup
tmpfs
1029352 4
1029348 0% /tmp
tmpfs
1029352 0
1029352 0% /media/ram
tmpfs
1029352 116
1029236 0% /var/volatile
When boot media has been found, udev will be killed. If udev is busy
to mount other medias at the killing time (especially medias is many),
the above issue will occur occasionally.
Invoke `udevadm settle' before killing udev will resolve this
issue, it watches the udev event queue, and exits if all current
events are handled.
Use variable `_UDEV_DAEMON' to replace hardcoded `udevd' to keep
consistent with previous.
[YOCTO #4745]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
}
boot_live_root() {
- killall udevd 2>/dev/null
+ # Watches the udev event queue, and exits if all current events are handled
+ udevadm settle --timeout=3 --quiet
+ killall "${_UDEV_DAEMON##*/}" 2>/dev/null
# Move the mount points of some filesystems over to
# the corresponding directories under the real root filesystem.