1. Install FC2 2. Start anaconda to upgrade anaconda bind mounts its own /dev for the upgraded system 3. Have anaconda upgrade 4. anaconda installs new packages. Including udev. 5. anaconda starts removing old packages. It gets to dev. 6. dev starts removing its files... including device nodes in the /dev shared between anaconda and the upgraded system? 7. udev has the following trigger: triggerpostun scriptlet (using /bin/sh) -- dev <= 0:3.12-1 if [ $2 = 0 ]; then if [ -x /sbin/MAKEDEV ]; then /sbin/MAKEDEV null else /bin/mknod /dev/null c 1 3 fi /sbin/start_udev >/dev/null 2>&1 if [ -e /dev/mapper/control -a -x /sbin/lvm ]; then /sbin/lvm vgmknodes >/dev/null 2>&1 fi fi exit 0 start_udev runs... which not only starts udev in the chroot, it also starts loading modules - sound modules, hardware monitors, random drivers. It also starts firing off all the helper programs for these - unmuting sound, etc. All this during the end of the upgrade. Not sure what we want to do here, but this probably isn't it. :) I *think* this can be solved by adding dev to the upgrade_remove_blacklist; this should run before the dev is bind mounted, even...
Yeah, sounds like a sane enough resolution I guess. That or the call to start_udev in the trigger should call something which doesn't do all the module loading stuff that udev has grown.
Hmm, we cannot disable module loading without loosing device creation, without altering the rules...
Added dev to the upgrade_remove_blacklist