Getting back to the initial question,
requiemforroksy, your machine randomly halts on boot with the mentioned symptoms on the site.
On one of the occasions when the machine doesn't hang and successfully boots, open a terminal ("Applications->Accessories->Terminal", if memory serves me correctly), then simply either type in the commands or copy-and-paste them, line by line. A description of each:
Code:
$ gksudo gedit /usr/share/initramfs-tools/scripts/init-top/load_ata_piix
This gives you root (or Administrator in Window parlance) access to write a file using the editor
gedit called
load_ata_piix in directory
/usr/share/initramfs-tools/scripts/init-top/
Executing the above should open a small window that will ask for your password, enter it and a new editor window will open that is blank. Into this document, copy the listed code (this is the only thing that's not copied into the terminal and run)
Code:
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
modprobe -Qb ata_piix
I could explain what this does precisely, but it's not that important. Just know that it tells initrd (which is a group of modules or drivers that the kernel loads early on to allow access to fundamental hardware, such as your SATA controllers and such, so that other modules can be loaded off of the hard disk by the kernel) to load the SATA controller module before the USB module, avoiding a race condition (don't worry about what this is either, just know that it's a bad thing). Once you've copied it into the editor, save the file (File->Save or Ctl+S) and close it.
You need to tell Linux that the file itself can be executed (run like a .exe or .bat file in Windows), so you use
Code:
$ sudo chmod +x /usr/share/initramfs-tools/scripts/init-top/load_ata_piix
to change the permissions of the file to make it e
xecutable.
Once you've made the file and made it executable, the reason the file was place where it was is because any executable file in the location will modify the way the initrd ramfile is created. What you're in essence doing is putting instructions in a place where this tool will look at a bunch of instructions and configurations (let's say it's like leaving notes for a co-worker on how something needs to be done) and make this special file which is used to tell the kernel how to access hardware early in the boot process (it's akin to "teaching" the kernel how to read books, wherein the books teach the kernel how to ride a bike, make a souffle, etc.). To build this file, run
Code:
$ sudo /usr/share/initramfs-tools/scripts/init-top/load_ata_piix
//Then run
$ sudo update-initramfs -u -k all
And that should be it! close the terminal, reboot the computer, and see if it fixes your problem. Let us know if you have any other issues.
Additionally, as the others have mentioned, for future tinkering, it might be a good idea to use an external drive to house linux.