Update: I have applied the BIOS update by putting the old hard disk back in, and using the working windows install there to do it. It still can't see all 4G of my RAM.
Apologies for this slight rant. I need to get it off my chest.
I have a Toshiba Portege M400 (3G) laptop which I bought just over a year ago. It had a 100GB hard disk which initially came with Windows XP pre-installed. The very first thing I did was wipe Windows off and install Ubuntu. I wasn't entirely happy because the system ran slowly. It turns out that a BIOS update from Toshiba fixes this. Unfortunately the particular BIOS update can only be installed from within Windows running on the bare metal.
I booted off an Ubuntu Live CD and copied the contents of my Ubuntu partition from the hard disk to a USB attached hard drive. I then used the Toshiba XP recovery CD which came with the laptop to wipe the drive again, and install a minimal-sized (10G) Windows XP Professional setup. I then booted to it and installed the BIOS update and the system became much quicker. I then reinstalled Ubuntu on the remaining space and copied back all my data from the USB disk.
Everything was fine.
I now use Ubuntu daily and only use Windows when I am using the 3G card built into the laptop - which doesn't work in Ubuntu (bug filed here:- https://bugs.launchpad.net/ubuntu/+source/linux/+bug/128556 )
Skip forward to this month. I started running out of disk space in Ubuntu so I bought myself a nice new 320G disk. Here's how I migrated from the 100G disk to the 320G one.
1. Connect a USB hard disk. 2. Boot to ubuntu live cd. 3. dd if=/dev/sda1 of=/media/disk/windows.img # this backed up my Windows XP install to a file. 4. mount /dev/sda2 # root (/) filesystem for ubuntu 5. mount /dev/sda3 # home (/home) filesystem for ubuntu 6. rsync -avz /mnt/sda2/* /media/disk/ubuntu/root/ # backup root filesystem 7. rsync -avz /mnt/sda3/* /media/disk/ubuntu/home/ # backup home filesystem
I then yanked the 100G disk out and slapped in the 320G disk and again booted to the Ubuntu Live CD. Using similar tools as above I partitioned and copied everything back onto the disk. I happily use Ubuntu and all my data is intact.
However, Windows refuses to boot. I get the Windows splash screen (where you get the bouncing blue bar) and then it bluescreens and reboots. This repeats.
I have mounted the Windows filesystem from within Ubuntu to make sure it's sane and it looks good. The usual files are all there. When I reboot I of course get the usual "We're sorry" and am offered a "Safe Mode" option. This fails in the same way.
A kind guy at work loaned me a proper XP CD (not these silly recovery ones you get with laptops these days) so that I might use the "recovery" option. However when I choose that, Windows says it can't find any hard disks because (presumably) it doesn't have the driver for the SATA controller my laptop has.
The reason I _need_ to use Windows is because there is a new BIOS update for the laptop, and I need to install it. 64-bit Ubuntu can't see all 4G of memory in the laptop - which it should. Installing the BIOS update will eliminate that from the list of possible causes. I can't install the BIOS update without Windows however.
So my pain is summarised by:-
1. Windows wont boot and I don't know how to make it boot 2. Windows XP CD can't see the SATA controller without a driver disk (I have no floppy drive) 3. I have to use Windows to install Toshiba BIOS updates
So far the only thing I can think of doing is putting the _old_ hard disk back in the machine and using that (working) Windows install to do the BIOS update. In fact, I could of course keep that 100G disk just for Windows, and only put it in the machine when I need this kind of BIOS sillyness. Then I could remove Windows from my new 320G disk, thus giving me 10G back.
End of rant. Carry on.
The good news is that I'm off out for a curry with my colleagues from work at lunchtime.