Installing Ubuntu 10.10 on a SATA-3 disk
First, I have to brag about the specs for this little monster (compared to the old Core 2 Duo rig it’s replacing):
- GA-X58A-UD3R motherboard
- 24GB of Corsair DDR3 1333mhz CL9 ram
- Intel i7 950
- Crucial RealSSD C300 2,5" 128GB SATA-3 (6gb/s)
- Silverstone Fortress II miditower
- Corsair HX 750W PSU
- 2 x Western Digitial Caviar® Green 2TB SATA2
- Nvidia GTX 295
It’s a bit over-specced for web-development, but it sure is fast when running the cucumber test suite on the project I’m working on right now :)
I always install Windows before Ubuntu on a new rig, because I’m lazy enough to appreciate the automagic adding of the windows boot partition to grub. Installing windows on the SSD disk required it to be on a Sata-2 controller, and then switching to the Marvell 9128 chip once everything was installed.
However, when running the Ubuntu 10.10 installer for the first time, it only came up with my two Sata-2 drives at the partitioning step. Turns out, Ubuntu needs AHCI enabled for the Sata-3 controller in order to correctly identify the disks on it. AHCI, or Advanced Host Controller Interface, is a add-on for the Sata spec, which enables hot-plugging and native command queuing, as far as I know.
Enabling AHCI on the Marvell 9128 chip’s port 6-7 in the bios worked, and enabled me to install Ubuntu 10.10 beta without any more hassle. All devices working smoothly, and everything felt snappy and nice. However, when trying to boot Windows 7 again, I was getting this annoying and infamous BSOD (Blue Screen of Death). I rolled up my sleeves, and got to googling.
When you install Windows 7, which is the only windows version actually supporting AHCI, without any AHCI devices, Windows actually unloads the AHCI driver (which imo is a good thing). This resulted in my newly AHCI enabled system disk to be unreadable for Windows. Luckily, it’s pretty easy to re-enable the AHCI driver in Windows 7:
- Shut down the machine, and turn off AHCI
- Reboot into Windows 7 (Grub will still load)
- Open regedit.exe, the equivalent of /etc/ on a *nix system
- Navigate to HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Msahci
- Set it’s value to 0, and close regedit.
- Reboot and celebrate
Now, you should have both Windows 7 and Ubuntu working perfectly alongside each other – and you can enjoy the awesomeness of having a Sata-3 system disk (Ubuntu uses 3 seconds (seriously) to boot on my rig).