excerpts from ntfsresize FAQ (Frequently Asked Questions)


excerpts taken from ntfsresize FAQ (Frequently Asked Questions)
http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html
by Szabolcs Szakacsits.
------------------------------------------------------------------------------


	  * boot CRK v2.4.24, login as root and run install-cdrom,
	    /cdrom/sbin/install-utils and /cdrom/sbin/install-ntfs

          * Locate  the  drive  and partition having the NTFS you plan to
            resize.  Red  Hat logs boot time messages during installation
            to  /tmp/syslog  that  can help you to find the disk drive if
            you missed it. IDE disks are usually hda, hdb, hdc or hdd and
            SCSI ones are sda, sdb, sdc and so on. We have only one disk,
            hdc. Let's see what partitions it has,

	    this shows all your drives for which are present and accesable:


            [tinker:root]:(~)# fdisk -l

            [tinker:root]:(~)# fdisk -l /dev/hdc

            Disk /dev/hdc: 255 heads, 63 sectors, 2480 cylinders
            Units = cylinders of 16065 * 512 bytes

            Device Boot    Start       End    Blocks   Id  System
            /dev/hdc1   *         1      2479  19912536    7  HPFS/NTFS


            Only  one  partition,  it's /dev/hdc1 and NTFS (OS/2 HPFS and
            Windows  NTFS  uses the same partition type, 7). Notice, it's
            also marked as bootable.

          * Find  out  where  you  could  resize: 


          [tinker:root]:(~)# ntfsresize -i /dev/hdc1
          ntfsresize v1.6.99
          NTFS volume version: 3.1
          Current volume size: 20390432768 bytes (20391 MB)
          Scanning volume ...
          100.00 percent completed
          You could resize at 10196025344 bytes or 10197 MB (freeing 10194 MB).


            So  we could free over 10 GB disk space using NTFS currently.
            ntfsresize  will warn you if it can't free any space. Also if
            you  get  too  small  value,  to be worth/possible installing
            Linux  on, you must defragment your NTFS. However be careful,
            some  defragmenters  relocates data to the end of the disk in
            cases, so you won't be able to free any space with ntfsresize
            if this happens.

          * Make  an  ntfsresize  test run, using the -n option. We chose
            trying to resize at 11 GB.


            [tinker:root]:(~)# ntfsresize -n -s11000M /dev/hdc1
            ntfsresize v1.6.99
            NTFS volume version: 3.1
            Current volume size: 20390432768 bytes (20391 MB)
            New volume size    : 10999996416 bytes (11000 MB)
            Scanning volume ...
            100.00 percent completed
            Updating $BadClust file ...
            Updating $Bitmap file ...
            Updating Boot record ...
            The read-only test run ended successfully.


            Everything  looks  good,  let's  go  on.  If  you would get a
            different  message  or an ERROR: then don't proceed or try to
            force resizing!

          * Resize NTFS.


    [tinker:root]:(~)# ntfsresize -s11000M /dev/hdc1
    ntfsresize v1.6.99
    NTFS volume version: 3.1
    Current volume size: 20390432768 bytes (20391 MB)
    New volume size    : 10999996416 bytes (11000 MB)
    Scanning volume ...
    100.00 percent completed
    WARNING: Every sanity check passed and only the DANGEROUS operations left.
    Please make sure all your important data had been backed up in case of an
    unexpected failure!
    Are you sure you want to proceed (y/[n])? y
    Schedule chkdsk NTFS consistency check at Windows boot time ...
    Resetting $LogFile ... (this might take a while)
    Updating $BadClust file ...
    Updating $Bitmap file ...
    Updating Boot record ...
    Syncing device ...
    NTFS had been successfully resized on device '/dev/hdc1'.
    You can go on to resize the device e.g. with 'fdisk'.
    IMPORTANT: When recreating the partition, make sure you
    1)  create it with the same starting disk cylinder
    2)  create it with the same partition type (usually 7, HPFS/NTFS)
    3)  do not make it smaller than the new NTFS filesystem size
    4)  set the bootable flag for the partition if it existed before
    Otherwise you may lose your data or can't boot your computer from the disk!


            Fine,   NTFS   had   been   shrunk.   Let's   continue   with
            repartitioning the disk.


          * Repartition  the  disk.  Warning!  Basically this is the only
            error-prone  step  and  several  people  made  mistakes  here
            forcing them to recover from backup!
            Below  in  order, we list the partition table, delete the 1st
            partition,  recreate  it  with the same starting cylinder and
            using  size  11000  MB  as above (note, old fdisk uses binary
            while  recent  ones  decimal  units  for  kilo-  and megabyte
            prefixes.  ntfsresize  uses decimal units), set the partition
            type  to  NTFS,  mark  it  bootable as it was before. Then we
            print  the  partition  table  again to check everything is OK
            before writing it to disk.


     [tinker:root]:(~)# fdisk /dev/hdc

     Command (m for help): p

     Disk /dev/hdc: 255 heads, 63 sectors, 2480 cylinders
     Units = cylinders of 16065 * 512 bytes

     Device Boot    Start       End    Blocks   Id  System
     /dev/hdc1   *         1      2479  19912536    7  HPFS/NTFS


     Command (m for help): d
     Partition number (1-4): 1

     Command (m for help): n
     Command action
     e   extended
     p   primary partition (1-4)
     p
     Partition number (1-4): 1
     First cylinder (1-2480, default 1): 1
     Last cylinder or +size or +sizeM or +sizeK (1-2480, default 2480): +11000M

     Command (m for help): t
     Partition number (1-4): 1
     Hex code (type L to list codes): 7
     Changed system type of partition 1 to 7 (HPFS/NTFS)

     Command (m for help): a
     Partition number (1-4): 1

     Command (m for help): p

     Disk /dev/hdc: 255 heads, 63 sectors, 2480 cylinders
     Units = cylinders of 16065 * 512 bytes

     Device Boot    Start       End    Blocks   Id  System
     /dev/hdc1   *         1      1403  11269566    7  HPFS/NTFS

     Command (m for help): w
     The partition table has been altered!

     Calling ioctl() to re-read partition table.
     Syncing disks.


          * Reboot to Windows to check everything is right (e.g. pressing
            [Ctrl]-[Alt]-[Del]).
       Now  you  should  have  unallocated  disk  space  that  all  Linux
       distribution installations must be able to handle. Enjoy!

* Expanding your NTFS Volume .
	
	one should proceed in the opposite way. First run fdisk like
	above. throw away your NTFS partition, then create a new partition
	again which is of course bigger. Make sure if its your windows C:
	drive that it is tagged as active and has type 7 (HPFS/NTFS).

	next run ntfsresize like this :


	[tinker:root]:(~)# ntfsresize /dev/hdc1


	so without any options, just add your partition as argument.
	One has to reboot and boot windows, i think twice, because windows
	chkdsk will of course check the changed disk settings.
	Here are the command line options for ntfsresize :


[tinker:root]:(~)# ntfsresize -h
ntfsresize v1.8.4

Usage: ntfsresize [options] device
    Resize an NTFS volume non-destructively.

    -i      --info             Calculate the smallest shrunken size supported
    -s num  --size num         Resize volume to num[k|M|G] bytes

    -n      --no-action        Do not write to disk
    -f      --force            Force to progress (DANGEROUS)
    -P      --no-progress-bar  Don't show progress bar
    -V      --version          Display version information
    -h      --help             Display this help

    If -i and -s are used together then print information about relocations.
    If both are omitted then the volume will be enlarged to the device size.

Please report bugs to linux-ntfs-dev@lists.sourceforge.net
Linux NTFS homepage: http://linux-ntfs.sourceforge.net



* Speed up the installation of your Windows XP

A couple a things can happen when you want to install or re-install Windows
XP on your 120 Gbyte disk. 

1. after 3 or 4 installs your serial-number on the label of your Windows-XP 
   cdrom cannot be used again.
2. Formatting a 120 Gbyte harddisk can be a timely thing to wait for.

So the first thing to do is to erase your disk :


[tinker:root]:(~)# dd if=/dev/zero of=/dev/sda bs=40M count=1
1+0 records in
1+0 records out
[tinker:root]:(~)# 


The will wipe enough info from the entire drive, that even Windows XP will 
forget it was even installed on the same drive before. So the old 
serial-number on the label of your Windows-XP cdrom can be used again. 
So it seems by zero-ing the first 40Mb of your disk the hardware history 
database which windows XP builds up is erazed too.
However this is a wild guess, and not backed up by some real evidence.
So don't flame me if the above disk cleaning command stops working suitable
enough :)

Next we are going to create a new fresh NTFS partition on /dev/sda 
which we are going to install Windows XP on :


[tinker:root]:(~)# fdisk /dev/sda
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 2231.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2231, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2231, default 2231): 
Using default value 2231

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 7
Changed system type of partition 1 to 7 (HPFS/NTFS)

Command (m for help): a
Partition number (1-4): 1

Command (m for help): p

Disk /dev/sda: 18.3 GB, 18351959040 bytes
255 heads, 63 sectors/track, 2231 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1      2231  17920476    7  HPFS/NTFS

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[tinker:root]:(~)# 


Next we need to format it into a NTFS Filesystem Volume. To create a NTFS 
filesystem, mkntfs needs a disk sector-size and a Volume cluster-size. 
The following command adresses those :


[tinker:root]:(~)# mkntfs -s 512 -c 4096 -Q /dev/sda1
mkntfs v1.8.4
Creating NTFS volume structures.
Setting the volume dirty so check disk runs on next reboot into Windows.
mkntfs completed successfully. Have a nice day.
[tinker:root]:(~)# 


For documentation on which sector and cluster size to use see :

Microsoft Knowledge Base Article - 314878 :
http://support.microsoft.com/default.aspx?scid=kb;[LN];314878
http://www.ntfs.com/partition-table-heads.htm

Now start up your machine with the Windows XP installation cdrom and
choose to format the existing NTFS partition (Quick).

With large partitions and disks this will save some time.

-------------------------------------------------------------------------------
excerpts taken from ntfsresize FAQ (Frequently Asked Questions)
http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html
by Szabolcs Szakacsits.