systemd binary and udevadm are not needed to be outside the squash
image. Some binaries are kept outside because they are required before
mounting the image, or after umounting the image (when switching root),
or they may block umounting the image. But we are using lazy umounting,
so actually nothing will block the umount.
Keep more binaries outside the squash image won't hurt but cost extra
memories, the idea of squash image is to save memory usage.
So, there is no reason to keep udevadm outside, that should be a debug
left over. For systemd binary, it's running when switch root happens,
But we have lazy umounted the image and overlay, once systemd process
exec the new systemd in new root, everything will be cleared by kernel.
Also tidy up the comment make it less confussing.
Signed-off-by: Kairui Song <kasong@redhat.com>
mv $initdir/$folder $squash_dir/$folder
done
- # Reinstall required files, because we have moved some important folders to $squash_dir
- inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" \
- "systemctl" "udevadm" "$systemdutildir/systemd"
+ # Reinstall required files for the squash image setup script.
+ # We have moved them inside the squashed image, but they need to be
+ # accessible before mounting the image. Also install systemctl,
+ # it's requires for switch-root, but we will umount the image before switch-root
+ inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" "systemctl"
hostonly="" instmods "loop" "squashfs" "overlay"
for folder in "${squash_candidate[@]}"; do