56 Resize Linux Partitions

Resize Linux Partitions

figs/moderate.gif figs/hack56.gif

Use utilities, such as qtparted and parted, to resize ext2, ext3, linux-swap, ReiserFS, and XFS partitions.

Despite even the best planning, files sometimes fill up a partition. In the case of a drive with multiple partitions, you might end up moving one of the partitions to a second drive, back up the first drive, increase the size of the first partition, and restore. Of course, to back up and restore, you must have a spare drive large enough to store your important files, which may not always be the case. If you have a Knoppix CD handy, you can quickly and easily resize partitions without having to back up and restore.

While resizing partitions does not require a backup and restore, resizing partitions is always a potentially dangerous activity that could result in data loss. Back up any important data on a partition, if possible, before you attempt to resize it.

Use the QTParted utility to resize partitions easily. This graphical tool lets you add, delete, move, and resize partitions with many filesystems, including ext2, ext3, ReiserFS, XFS, FAT, FAT32, and NTFS. To start QTParted, click K MenuSystemQTParted. The QTParted window that appears has two main sections: a left panel, which contains all the disks on the system, and a right panel, which displays partitions from the disk that you have selected on the left.

First, select the disk that has the partitions to be resized from the left panel. QTParted scans all of the partitions on that drive and displays them graphically along the top of the right panel. Below the graphical display is a table that lists all the drive's partitions with information, such as the partition's filesystem type, size, and used space. If you need to delete a different partition to make room to resize this partition, you must first delete the partition. To delete a partition, right-click on the partition in the right panel (either on the graphical representation or in the table) and choose the Delete option. The partition is not actually deleted until you commit your changes by clicking FileCommit.

To resize a partition, right-click on the partition you want to resize and select Resize. The window that appears allows you to drag the corners of the partition to increase its size, or you can enter the new size manually in a lower text box (see Figure). Once the partition is resized to your liking, click OK and then commit your changes. Once you commit your changes, the filesystem is officially resized. You might want to reboot your machine to make sure that the changes to the partition table have been applied universally.

QTParted resize window

1 Resize Without X

QTParted is an easy and useful program, but what if you don't have access to X? Parted is the command-line backend for QTParted. Start parted from a terminal by running:

[email protected][knoppix]$ sudo parted /dev/hda

GNU Parted 1.6.9

Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.

This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful, but 

WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 

or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 

for more details.

Using /dev/hda

Information: The operating system thinks the geometry on /dev/hda is

4865/255/63.  Therefore, cylinder 1024 ends at 8032.499M.


Replace /dev/hda with the drive containing partitions you wish to resize. To see a full list of parted commands and their syntax, type:

(parted) help

If you want help on a specific command, type:

(parted) help command

To list your drives partition table, type:

(parted) print

Disk geometry for /dev/hda: 0.000-38166.679 megabytes

Disk label type: msdos

Minor    Start       End     Type      Filesystem  Flags

1          0.031  38162.219  primary   fat32       boot, lba


The partition table that parted outputs shows you the minor number, the start, the end, the partition type, the filesystem, and any flags the partition has. Reference this information as you use the resize command.

Once you have found the partition you want to resize, note its minor number, where it starts, and then where you want it to end. Parted displays the start and end values in megabytes, so if you want to grow a partition by 500 MB, add 500 to the end value. If you want to shrink the partition by 500 MB, simply subtract 500 from the end value. Once you are ready to resize, type:

(parted) resize 1 0.031 2000.000

where 1 is the minor number for your partition, 0.031 is the starting point in megabytes, and 2000.000 is the ending point in megabytes. Of course, replace these values with the actual values of your partition. Once you are finished, exit by typing:

(parted) quit

There are many other filesystem-specific tools on Knoppix that can resize partitions, such as resize2fs, resize_reiserfs, and xfs_growfs, but QTParted and parted take much of the work and risk out of resizing your partitions, and, if possible, I recommend trying these utilities before using filesystem-specific utilities.

     Python   SQL   Java   php   Perl 
     game development   web development   internet   *nix   graphics   hardware 
     telecommunications   C++ 
     Flash   Active Directory   Windows