I've noticed when trying to run Linux from a USB flash drive that on some PC's (seems to be mostly older Dell's) that, after a while, something happens where the system thinks that the drive is disconnected, even though it is not physically disconnected.
I have an old Inspiron laptop, for example, where, after about a day or so running from a USB stick, this occurs and everything crashes because suddenly Linux can't find its root volume.
I didn't do enough troubleshooting to determine if it was the flash drive (a 4GB Kingston), the fact that it is a flash drive and not a USB-enclosed hard disk, etc. but have seen this on other Dell PCs. I don't know if it's a subtle problem in the chipset the Linux drivers don't account for, some possible interaction with ACPI, or what.
Several years ago when I was using an old HP Pavillion as a server, I would have issues where USB attached drives would stop being recognized as connected. Only physically disconnecting and reconnecting them would get them to be recognized by Linux again. I was using a Belkin USB 2.0 PCI card at the time. I've placed the same card in a Dell Poweredge 2500 and have run drives for months off of it with no issues.
You may try partitioning your hard drive, or installing a second hard drive in your system, and running Linux from that.