I've been dual-booting debian for a while now with windows 7 on a 500GB HDD.
What I do first is load up a gparted live cd, or a linux live-cd which has gparted on it,
then i create a extended partition which will be where my linux related partitions will go,
I position the partition to be at the end or start of the hard drive just by dragging it in gparted,
this leaves me with around 170GB for windows 7 and makes things much neater.
In the extended partition of 300GB, I first create a swap the same size as the amount of RAM, I have (4GB)
then I create my root partition ( / ) which is 25GB and EXT4, then whatever space is left in the extended partition,
I give to my home partition ( /home ) EXT4.
Then on one side of the hard drive im left with the 170GB of empty space / unformatted which is were windows
will be installed.
I then install windows first, get to the partition part, click on the unformatted space, go to options or somthing (cant remember) and click on New, the dvd then creates two partitions (one is system reserved and is only 100MB the other is the actual partition of windows)
Once im done installing windows, I then install debian.
When i get to the partition part in debian i just navigate to the root partition first ( 25GB ) i then assign it to be the root partition ( / ) and I then do the same for my home partition ( /home ). Debian automatically realises that there is a swap partition and automatically sets itself up to you it.
Then i just make sure to install GRUB bootloader at the end of the debian install, then once i reboot, I get a choice between Debian (default) and debian (recovery mode) and the windows 7.
Done
** Notes -
The reason I put my linux partitions in a extended partition is because i wanted to have a seperate /home partition, and since Windows 7 creates two partitions, if i was to set the linux partitions up without the extended partition i would get message in gparted saying i've reached a limit on the amount of primary partitions i can have.
No matter what distro I'm using to dual boot with windows, i always install windows first, it makes things alot easier when it comes to GRUB and booting the OS, for example i can just continue to replace my linux partitions with other linux distros and windows will just remain there, and the install cd will always install grub by default anyway.
Here's a screenshot to give you a idea of how my partitions are setup -
sda 1 = windows 7 system reserved
sda 2 = windows 7 partition
sda 3 = extended partition
sda 5 = swap partition (linux-swap)
sda 6 = / partition (EXT4)
sda 7 = /home partition (EXT4)
Hope this helps you
