Resizing NTFS partition onto a smaller drive Was: Resizing NTFS partition to make room for FC10

Tod Thomas fr33zone at gmail.com
Thu Mar 12 01:25:30 UTC 2009


Tod Thomas wrote:

> I know this is a little off topic.  I did google around looking for the
> correct forum to post this question but had little luck.  If anyone can
> make an informed suggestion I'd very much appreciate it.
>
> I have a 150GB ATA disk, /dev/hdb, containing winxp.  I'd like to move
> the contents to an spare 80GB ATA disk, /dev/hda, to make room for a
> full install of FC10 on the larger disk in preparation for ultimately
> getting the winxp install running under a linux based VM.
>
> From knoppix, I started by using ntfsresize to shrink the xp partition
> down to 20GB.  That worked suprisingly fine.
> I then installed the smaller drive and used dd to copy over the image of
> the xp installation:  dd if=/dev/hdb of=/dev/hda bs=10000000 count=2000
>
> I rebooted and voila! it worked - sort of.  The new disk boots xp but it
> still, according to fdisk, thinks its 150GB.  So I used fdisk to delete
> and redefine the xp partition (primary, bootable type=7) with the new
> size of the drive, 20GB.  After rebooting xp came up but then started
> quickly blue screening a message I couldn't read, and rebooting.  This
> repeated in a loop until I just rebooted.  I tried the whole process
> over again but this time specified 80GB to dd and fdisk, same disaster.
>
> I tried everything again, but this time instead of fdisk I fired up
> gparted to see if I could resize from there hoping that if it could some
> magic would also fix the invalid sizing detected by fdisk.  gparted
> could see the drive but couldn't recognize it as having anything it
> could work with.  I highlighted the drive and the progress bar stayed gray.
>
> So far it seems I can use the drive this way without causing xp any
> problems.  The issue is things just don't look right and I suspect it
> will come back to bite me one day.  I'm not an expert at manipulating
> bits on a hard drive just yet.  Could someone point me to my error?  Is
> what I'm trying do-able?  If its a conceptual problem a little education
> would come in handy too.
>   

Just a footnote, I finally got it working.  This linked helped me the 
most:  http://public.ok2life.com/welcome/index/81

source = /dev/hdb 150GB ATA
target  = /dev/hda    80GB ATA

I have single XP partition /dev/hdb1 I want to copy over to smaller 
drive /dev/hda1.

For brevity's sake  here are the bullet pointed details:

- Backup source drive !
- Boot knoppix
- ntfsresize SOURCE drive to comfortable size that is smaller than the 
target disk
- fdisk -ul source drive
  - make note of starting sector of windows partition
- fdisk -u target drive
  - blow away all partitions
  - redefine partition using same starting sector and size as source 
drive partition
  - set to NTFS, make bootable
  - write partition table, exit
- ntsfclone --overwrite /dev/targetpartition  /dev/sourcepartition
  - order is VERY important as source and target partitions are reverse 
of what you would normally expect
- gparted, resize target to fill available space
- dd if=/dev/hdb of=dev/hda bs=446 count=1
  - this restores the windows boot loader (MBR)
- reboot
  - XP runs chkdsk upon startup
  - will likely recognize the new hard drive and want to reboot


This worked like a charm.  I tried everything, but I could never get 
gparted to recognize my new partitions size so could never resize to 
take advantage of the rest of the target drive's space.  As a result, XP 
would boot but could never detect more than the size of the copied 
partition - 20GB of an 80GB drive.  The link above provided the final 
solution.

Thanks again everyone for your comments.




More information about the fedora-list mailing list