Disclaimer: I am no Linux guru. I would describe my competency in linux as "passing" at best, meaning I'm comfortable using the command line, but still rely very heavily on the man pages/forums to get anything beyond the basics done.
We have a product that runs on Ubuntu desktop, and for no compelling reason other than consistency the "official" supported version is 10.04.
Now, one thing we have to deal with is interfacing with tons of crazy external devices over serial/usb/RS422/ethernet/802.11/etc. Ubuntu is sort of a nice choice because of the ease of setup for customers and the pretty decent driver support available that means most devices "just work". Among these devices is a USB to serial converter with an FTDI chip, using linux FTDI drivers.
Recently we had a customer running our software in a headless setup on Ubuntu 10.04 using the USB to serial converters. Everything was working great for many days prior to this, though it was a relatively new install not connected to the internet. After one unlucky power cycle on the system (no nice shutdown) the usual FTDI drivers were replaced by "uhci_hcd" drivers.
Through forum surfing and trial and error, we discovered that uninstalling the "britty" package and using modprobe to (re?)load the ftdi_sio and usb_storage modules, everything worked great again.
So there are really two questions here:
1) What in the world coud cause something like that to happen?
And 2) What resources/books/forums can anyone point me to for researching more about configuring a linux (prefereably ubuntu 10.04...? :) ) system that will withstand random power cycling without corrupting configuration files, or whatever happened? This is pretty much a case of needing to know what I don't know, and some good sources to look at to gain that knowledge.