Change Disk Capacity

Top  Previous  Next

The -capacity command is used to resize the number of blocks that a disk reports. You would use it to short-stroke a disk (resize the disk to make it smaller).  Once you resize the disk with the command, then you can use the resized disk immediately, and it does not need to be reformatted.  This function can be quite useful, either to hide a partition on a disk, or to unlock space that was hidden by your hardware supplier.

 

You may reverse the effects of changing capacity by sending it a new size of 0.  This will allocate all available disk space, and cause the disk to report the full factory-configured capacity.

 

Usage

smartmon-ux -capacity NewBlockSize|0 DeviceList

Send 0 to reset capacity to factory default, or pass it a number of blocks that you wish capacity to be set to.  (There are 2048 blocks in 1 MB, assuming a standard 512-byte block size).

 

Example

First, we instruct the computer to report the drive size to establish a base-line. The fields in GREEN are of most interest for this example.

 

D:\>smartmon-ux -I \\.\PHYSICALDRIVE10

SMARTMonUX [Release 1.30, Build  5-DEC-2005] - Copyright 2001-2005 SANtools, Inc. http://www.SANtools.com

Discovered SEAGATE ST3300007FC S/N "3KR0EYV4" on \\.\PHYSICALDRIVE10 [SES] (Not Enabling SMART) [Bus/Port/ID.LUN=1/2/13.0](286102 MB)

Inquiry Text Page Data - ANSI defined fields

 Device Type:                         disk

 Peripheral Qualifier:                Connected to this LUN

 Removable Device:                    NO

 ANSI Version:                        3 (SPC ANSI X3.301:1997)

 Vendor Identification:               SEAGATE

 Product Identification:              ST3300007FC

 Firmware Revision:                   XR32

 Async event reporting: (AERC)        NO

 Terminate task supported:            NO

 Response data format:                2

 Relative addressing supported:       NO

 Supports request/ACK data transfer:  NO

 Normal ACA Supported:                NO

 Enclosure services available:        YES

 Multi-ported device:                 YES

 Medium-changer attached: (removable) NO

 Linked commands supported:           YES

 Command queuing supported:           YES

 VS bit (byte #6/bit #5 set):         YES

 VS bit (byte #7/bit #0 set):         NO

 Total Capacity (In Bytes):           300000000000

 Total grown defects:                 0

 Total Primary (factory) defects:     5246

Inquiry Page Hex Dump:

 0000: 00 00 03 12 8B 00 70 0A 53 45 41 47 41 54 45 20    ......p.SEAGATE

 0010: 53 54 33 33 30 30 30 30 37 46 43 20 20 20 20 20    ST3300007FC

 0020: 58 52 33 32 33 4B 52 30 45 59 56 34 00 00 00 00    XR323KR0EYV4....

 0030: 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 00    ................

 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

 0060: 00 43 6F 70 79 72 69 67 68 74 20 28 63 29 20 32    .Copyright (c) 2

 0070: 30 30 35 20 53 65 61 67 61 74 65 20 41 6C 6C 20    005 Seagate All

 0080: 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64       rights reserved

 

The Seagate disk reports as 300,000,000,000 bytes which corresponds to 2861024 MB.  We will now resize the drive to exactly 204800 blocks which

is exactly 100 MB. The reported capacity on the "Discovered" line is the capacity that the disk reported before resizing.

 

D:\>smartmon-ux -capacity 204800 \\.\PHYSICALDRIVE10

SMARTMonUX [Release 1.30, Build  5-DEC-2005] - Copyright 2001-2005 SANtools, Inc. http://www.SANtools.com

Discovered SEAGATE ST3300007FC S/N "3KR0EYV4" on \\.\PHYSICALDRIVE10 [SES] (Not Enabling SMART) [Bus/Port/ID.LUN=1/2/13.0](286102 MB)

Capacity is 204800 blocks (100 MB)

 

Now, we issue the standard inquiry command to see what the disk reports. Unless the -capacity command was rejected by the disk, it will report the new size.

 

D:\>smartmon-ux -I \\.\PHYSICALDRIVE10

SMARTMonUX [Release 1.30, Build  5-DEC-2005] - Copyright 2001-2005 SANtools, Inc. http://www.SANtools.com

Discovered SEAGATE ST3300007FC S/N "3KR0EYV4" on \\.\PHYSICALDRIVE10 [SES] (Not Enabling SMART) [Bus/Port/ID.LUN=1/2/13.0](10000 MB)

Inquiry Text Page Data - ANSI defined fields

 Device Type:                         disk

 Peripheral Qualifier:                Connected to this LUN

 Removable Device:                    NO

 ANSI Version:                        3 (SPC ANSI X3.301:1997)

 Vendor Identification:               SEAGATE

 Product Identification:              ST3300007FC

 Firmware Revision:                   XR32

 Async event reporting: (AERC)        NO

 Terminate task supported:            NO

 Response data format:                2

 Relative addressing supported:       NO

 Supports request/ACK data transfer:  NO

 Normal ACA Supported:                NO

 Enclosure services available:        YES

 Multi-ported device:                 YES

 Medium-changer attached: (removable) NO

 Linked commands supported:           YES

 Command queuing supported:           YES

 VS bit (byte #6/bit #5 set):         YES

 VS bit (byte #7/bit #0 set):         NO

 Total Capacity (In Bytes):           104857600

 Total grown defects:                 0

 Total Primary (factory) defects:     5246

Inquiry Page Hex Dump:

 0000: 00 00 03 12 8B 00 70 0A 53 45 41 47 41 54 45 20    ......p.SEAGATE

 0010: 53 54 33 33 30 30 30 30 37 46 43 20 20 20 20 20    ST3300007FC

 0020: 58 52 33 32 33 4B 52 30 45 59 56 34 00 00 00 00    XR323KR0EYV4....

 0030: 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 00    ................

 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

 0060: 00 43 6F 70 79 72 69 67 68 74 20 28 63 29 20 32    .Copyright (c) 2

 0070: 30 30 35 20 53 65 61 67 61 74 65 20 41 6C 6C 20    005 Seagate All

 0080: 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64       rights reserved

 

We will now reset the disk by sending it a value of 0, which instructs the program to set the disk to the maximum capacity.

 

D:\>smartmon-ux -capacity 0 \\.\PHYSICALDRIVE10

SMARTMonUX [Release 1.30, Build  5-DEC-2005] - Copyright 2001-2005 SANtools, Inc. http://www.SANtools.com

Discovered SEAGATE ST3300007FC S/N "3KR0EYV4" on \\.\PHYSICALDRIVE10 [SES] (Not Enabling SMART) [Bus/Port/ID.LUN=1/2/13.0](10000 MB)

Capacity is 585937500 blocks (286102 MB)

 

The disk has been resized from 10000MB to the factory default of 286102MB.

 

Application Functional Notes

Other vendors may have used this program or similar programs to resize disks, so if you believe your disk is reporting fewer blocks than it should, then use -capacity 0 option to resize the disk to the maximum capacity.
This function is specific to SCSI, Fibre Channel, SAS, and SSA disks, as well as most USB flash memory devices. The command will not work on ATA/SATA disks.
Do not resize the disk if there is a file system on it, or any partitions that use any part of the older capacity that was deleted.  If you do, then your operating system won't be able to access the hidden space, and this will likely corrupt the remaining file system.
It doesn't matter what O/S version of our software you use to resize the disk, nor does it matter what operating system(s) the resized disk is used with. The changes are made to the disk, and not any O/S-specific drivers or configuration files.
Blocks that have been removed via this command come from the end of the disk, so if you send smartmon-ux -capacity 2048, then the disk will report a size of 2048 blocks, ranging from block 0-2047.  These blocks are not hidden or zeroed, the disk just thinks it is 2048 blocks in size and any program or utility or O/S that asks the disk how large it is will get an answer of 2048.