Today, I experimented with shrinking Windows Server 2008 disk volumes. Very quickly, one realizes that you can only shrink a volume up to 50% of its original size when using Windows 2008 Disk Management and/or Diskpart. Diskpart used for this post and it has the handy command line option shrink querymax that returns the maximum number of bytes that the volume can be reduced.

I read that diskpart can only shrink a volume up to the value of “the largest free space extent”. This value can be obtained by running the command defrag <drive letter> -a; the output for the command being shown below:

So, they were right, whoever they were, sorry I can’t remember. We from the output of the diskpart and defrag commands that the maximum number of reclaimable bytes and the largest free space extent are equal.

At this point I wondered what was stored on the 50th GB disk sector? To begin my search, I started with NTFSInfo. A disk utility from Microsoft which can provide you with the following:

• The size of the volume in megabytes
• The total number of sectors and clusters
• The free space available
• The starting cluster and size of the Master File Table (MFT)
• The starting cluster of the MFT Mirror

When I ran NTFSInfo, I saw the output below and was, at that moment, very interested in the MFT Mirror:

As you can see, the total number of clusters on my volume is 26213887. The MFT Mirror started on sector 13106943, the 50th GB.

I did some more searching and finally came across an HP document entitled Technical overview of Windows Server 2008 with Microsoft Exchange Server 2007 on the HP EVA array family. In it, I found the next two paragraphs (and Figure 11) which explain why you cannot shrink a volume by more than 50% of its original size.

You cannot shrink a volume behind 50 percent of the original volume size. This limitation is by design and is caused by the NTFS structure and the most important key system (metadata) file that defines an NTFS volume: The Master File Table (MFT). The MFT is the place where information about every file and directory on an NTFS volume is stored, and is, in essence, a relational database table that contains various attributes about different files. It acts as the “starting point” and central management feature of an NTFS volume − sort of a “table of contents” for the volume.

A mirror copy of the MFT vital records exists for reliability and is stored exactly in the middle of the logical disk (see Figure 11). The MFT mirror copy cannot be moved and is the root cause of the shrink limitation of 50 percent of the original volume size; simply put, where the copy of the MFT resides on the logical disk.”

Figure 11