Disclaimer: This procedure can render your computer unbootable and corrupt your data if you do it wrong. Perform a backup prior to doing it and verify you can read the backup. Don’t attempt it on a critical laptop. I am in no way responsible if you attempt this and end up with an expensive brick or it results in data loss.
1 Dell Latitude D610 with a 60GB HDD
1 IT Guy about to go on holiday but not wanting just to take a Windows XP box
Shrink the XP install down to 30GB and use the new volume to install Fedora 9. Keep the standard windows boot loader (i.e. Nothing to see here move along)
- Boot XP and run disk check (chkdsk c:) on the volume you want to shrink – this is a good idea
- Boot XP and run defrag (defrag c:) till it’s as contiguous volume as it’s going to be
- Grab a Knoppix CD and boot from it
- In Knoppix get a root console and do the following
- use fdisk -l to get the hard disk volumes – in my case it’s /dev/sda
ntfsresize --info /dev/sda2to get the minimum size of what you can shrink it to. We will be leaving the Dell Utility partition alone the C: drive is /dev/sda2
- In this case I didn’t go to the minimum size I just divided the hard disk in half 60011642880/2 = 30005821440
ntfsresize -s 30005821440 -n /dev/sda2to test (-n or not really) if it seems OK
- Then run
ntfsresize -s <size IN BYTES> /dev/sda2to do it for real
- When it’s finished make a note of the new partition size in MiB that it has created you need this for fdisk
fdisk /dev/sda, make note if the partition you are shrinking has the bootable flag, partition type (7) and start sector. Delete the old partition (/dev/sda2)
- Create a new partition with the new partition size as specified by the output of the previous ntfsresize operation. When entering the partition size use +<size IN MiB>M e.g. (+28616M note: This size is a guess I am writing this from memory make sure you use the size recommended by ntfsresize as the size of the new partition), mark it bootable if it was before and set it to be NTFS (type 7). When it’s right, commit it to disk
- Reboot back into Windows twice. It will run chkdsk the first time and find new hardware, the second time is just to make sure it’s all in a consistent state
- Now install Fedora 9 onto the empty part of the hard disk. When prompted for the location of the GRUB bootloader code choose the /dev/sda3 partition which is the /boot partition of the linux installation. Don’t chose to install the GRUB bootloader to the MBR as this will wipe out your Windows bootloader
- Once you reboot you will find that you still have your Windows bootloader but no option to select Fedora 9 from the Windows boot menu.
- Here is a fdisk /dev/sda listing after installing Fedora 9
- Using the Knoppix CD once again boot into Knoppix and gain a root console
- You now need to take a copy of the GRUB bootloader from /dev/sda3
- Plug a USB key in and copy the bootloader to it with
dd if=/dev/sda3 of=/media/MYKEY/bootsect.bin count=1 bs=512– I think these days you could mount and write straight to the NTFS partition but when I tried to get Knoppix to write directly to the NTFS partition it complained that the volume was dirty. This, I think, was because I had power cycled when Windows XP was half booted, so I just used the USB key to get a copy of the GRUB bootloader.
- Booting back into Windows copy the bootsect.bin file from the USB key to c:\
- Then making sure Windows Explorer has the show hidden files option enabled and hide system files disabled find c:\boot.ini, remove the readonly attribute, and add a Fedora 9 entry to it pointing to the Linux bootsector thusly:
- After another reboot you should now have both OS options on your standard Windows boot menu
fdisk -l Disk /dev/sda: 60.0 GB, 60011642880 bytes 255 heads, 63 sectors/track, 7296 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x41ab2316 Device Boot Start End Blocks Id System /dev/sda1 1 8 64228+ de Dell Utility /dev/sda2 * 9 7296 XXXXXXX 7 HPFS/NTFS
ntfsresize --info /dev/sda2
ntfsresize -s 30005821440 -n /dev/sda2
ntfsresize -s 30005821440 /dev/sda2
fdisk /dev/sda Disk /dev/sda: 60.0 GB, 60011642880 bytes 255 heads, 63 sectors/track, 7296 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x41ab2316 Device Boot Start End Blocks Id System /dev/sda1 1 8 64228+ de Dell Utility /dev/sda2 * 9 3829 30692182+ 7 HPFS/NTFS /dev/sda3 3830 3854 200812+ 83 Linux /dev/sda4 3855 7296 27647865 5 Extended /dev/sda5 3855 7296 27647833+ 8e Linux LVM
dd if=/dev/sda3 of=/media/MYKEY/bootsect.bin count=1 bs=512
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect C:\bootsect.bin="Fedora 9"
I can now go on holidays with a dual boot Laptop containing a standard work OS and a Fedora 9 environment. If I need to give the laptop over to anyone, I can remove the boot.ini entry and hand it to them.
PS. Fedora 9 found the Intel wireless and I could connect straight up to my WAP with no issues. GNU/Linux Rocks!