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.