@BlueKobold:
Well, that seems to have worked. Looks like it's all functioning again.
And can we also know what does the trick?
Sorry, of course.
Full disclosure: after some email with customer support at pfSense, I probably caused the original problem; pulled power without doing a shutdown first, causing fsck to get overly aggressive on reboot and making a mess of things. Lesson learned, do a full backup of the device before mucking with it.
What I did:
Grabbed the LiveCD ISO for amd64 from the pfSense support site, stuck it on my FreeBSD desktop. Unzipped, did the following:
mdconfig -f <diskimage.iso>-u 0
mount -t cd9660 /dev/md0 /mnt
find etc in the /mnt tree
copy passwd, master.passwd, group and crontab from the /mnt to a flash drive
umount /mnt
Boot the SG2440 with the serial console attached (I used a putty session), stick in the flash drive, then do:
mount -t msdosfs /dev/da1s1 /mnt (da1 was my device)
copy passwd, master.passwd, group and crontab from flash to SG2440 /etc
cd /etc
pwd_mkdb -p /etc/master.passwd
umount /flash
I then did passwd admin just to make sure I knew what the password was, rebooted and all was happy again.
The trick was finding install versions of passwd, master.passwd, group and crontab, LiveCD ISO was best shot at that, then it was digging back in my brain about mounting the ISO and pulling the files off. If you can mount an ISO file and get to the files on it, this should work just about anywhere.</diskimage.iso>