You are not logged in.
EDIT 02/04 - I "fixed" this by re-installing arch. Since it was on a relatively new system anyway (I had just installed it the previous week and hadn't touched it since), it's possible I messed something up while doing various installer things. Anyway, everything works now and the mystery will continue...
I have an encrypted root partition with a keyfile on a usb stick and a persistent udev rule to find the stick and mount it at boot. Before I upgraded today, this was working fine. I would normally see "Waiting 10 seconds for /dev/.." followed by a bunch of messages about the usb stick not having a cache and then it would find my keyfile and continue with the boot process.
After upgrading today, I see the "Waiting 10 seconds for ..." message but then it says device not found and reverts to password (which I don't have). I tried putting my keyfile on my boot partition (on my hard drive) and loading it from there but that didn't work either - it couldn't find the device.
I know the problem occurs here
elif resolved=$(resolve_device "${ckdev}" ${rootdelay}); then
in the encrypt hook because resolve_device is returning an error. Following the rabbit hole I found this in /usr/lib/initcpio/init_functions
poll_device() {
local device=$1 seconds=${2//[!0-9]}
[ "${seconds:-x}" = x ] && seconds=10
deciseconds=$(( seconds * 10 ))
# tenths of a second
sleepinterval=1
[ -b "$device" ] && return 0
if [ "$udevd_running" -eq 1 ]; then
msg "Waiting $seconds seconds for device $device ..." >&2
while [ ! -b "$device" -a "$deciseconds" -gt 0 ]; do
if [ "$sleepinterval" -ge 10 ]; then
sleep 1
deciseconds=$(( deciseconds - 10 ))
else
sleep .$sleepinterval
deciseconds=$(( deciseconds - sleepinterval ))
sleepinterval=$(( sleepinterval * 2 ))
fi
done
fi
[ -b "$device" ]
}
From which I gather that udev is not finding the device I am looking for. I'm not sure where to go from here, suggestions would be greatly appreciated.
Last edited by jynnantonix (2013-02-05 03:56:47)
Offline