initramfs should not rely on /dev existing after init-bottom
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
initramfs-tools (Ubuntu) |
Fix Released
|
Low
|
Adam Conrad | ||
udev (Ubuntu) |
Invalid
|
Medium
|
Unassigned |
Bug Description
initramfs's "init" calls the "init-bottom/udev" script:
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/
run_scripts /scripts/
[ "$quiet" != "y" ] && log_end_msg
"init-bottom/udev" moves the real filesystem's "/dev" away:
mount -n -o move /dev ${rootmnt}/dev
so update_progress() called by log_end_msg() will not succeed:
echo "PROGRESS_
the directory "/dev/.initramfs" does not exist any more.
furthermore it's a bad idea to move "/dev" away because other scripts in "/scripts/
i suggest cutting this mount call and pasting it to initramfs's "init" file:
# Move virtual filesystems over to the real filesystem
mount -n -o move /sys ${rootmnt}/sys
mount -n -o move /dev ${rootmnt}/dev # <---
mount -n -o move /proc ${rootmnt}/proc
so the initramfs-tools package would be affected to.
martin
-- package information:
udev-079-0ubuntu3
initramfs-
Changed in initramfs-tools: | |
assignee: | nobody → adconrad |
This is deliberate, it means that udev's behaviour is entirely self-contained within the files supplied by the udev package.
The introduction of the /dev/.initramfs is recent (within the last few days) and incorrect ... nothing after init-bottom should rely on /dev existing.
Scripts in init-bottom should use the existing ordering to ensure they are run *before* udev is tidied away.