Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
11 Aug 2010
Linux® systems are often installed on multiple partitions, each of which has a fixed
size. As your needs change, though, it is often necessary to resize partitions to suit
your changing needs. Several tools exist to do this in Linux, but there are a number
of potential pitfalls and restrictions that can make the task more difficult than it might
at first seem. This article guides you through the task of resizing Linux partitions,
beginning with basic preparations and moving on to common resizing scenarios
using graphical user interface (GUI) tools.
If you follow common partitioning advice, chances are your disk uses several
partitions. If you set the sizes incorrectly or if your needs change, you may find
yourself needing to resize your partitions. To do so, you must familiarize yourself
with the requirements for resizing partitions and the tools that can do the job. In
many cases, resizing operations can proceed smoothly; however, numerous
stumbling blocks can cause problems for the unwary, or even for those who take
adequate precautions.
This article first describes some of the underlying capabilities and limitations of
resizing tools, as well as the preparatory steps you should take before you begin a
resizing operation. It then covers the common GParted partition resizing tool (also
known as Gnome Partition Editor).
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 1 of 10
developerWorks® ibm.com/developerWorks
Note: For brevity, I use the term resize to refer to several operations, including
increasing the size of a partition, reducing the size of a partition, and moving a
partition. Sometimes one of these operations is possible but others aren't. Some of
these operations are inherently riskier than others. When these differences are
important, I note that fact.
Let's review the distinction between partitions and file systems. Partitions are
containers that consist of contiguous sectors on the disk; partitions are defined by
simple data structures. File systems, on the other hand, are data structures that
reside inside partitions. File systems enable the computer to locate individual files,
and they're much more complex than partitions. In practice, resizing a partition also
usually requires resizing the file system it contains. For brevity, I refer to "resizing
partitions" when I mean "resizing partitions and the file systems they contain."
Partition resizing is inherently at least a little bit risky. Partition resizing software
must alter low-level partition and file system data structures and possibly move
significant amounts of data. Problems such as corrupt data on the disk, power
failures, and system crashes can all cause catastrophic failure of the resizing
process. For this reason, you should not undertake a partition resizing operation
lightly, and, whenever possible, you should back up your data, as described in
"Preparing a backup."
As a general rule, I recommend against resizing unless the existing setup currently
causes problems or will soon cause them. That is, one or more partitions must be
nearly full or you must expect to add enough data to overfill a partition in the near
future before you consider resizing.
You must also keep in mind the limitations of resizing. For instance, you can't shrink
certain file systems, and you may need to carefully plan the positioning of primary
versus logical partitions in your new layout. In some cases, such problems can
become brick walls in your resizing plans, forcing you to adopt alternatives, as
described in Part 2 of this series.
The first step in planning your partition resizing operation is to obtain information
about how your disk is currently laid out and what partitions are running out of
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 2 of 10
ibm.com/developerWorks developerWorks®
space. One convenient way to obtain such information is to use GParted, which
presents a friendly GUI display, as shown in Figure 1. The display shows where
partitions are located relative to one another and how much space each consumes.
Unfortunately, GParted doesn't always present complete information, so you may
want to supplement its displays with the output of the text-mode df, fdisk, or other
utilities.
Figure 1 shows a system that has a cramped /usr partition (/dev/sdb5) and plenty of
free space in /home (/dev/sdb7), which can cause problems if you want to add more
software to the computer. Given this partition layout, you might want to reduce the
size of /home and increase the size of /usr. (Note that Figure 1 was obtained from an
emergency boot disc, so the Mount Point column doesn't reflect the running
system's mount points.)
Linux supports several native file systems, and dual-boot systems often share the
disk with others too. As a general rule, ext2fs, ext3fs, ex4fs, ReiserFS, and Btrfs are
the most flexible in terms of what you can do with them. These file systems can all
be grown, shrunk, and moved by most implementations of GParted. XFS and JFS,
unfortunately, cannot be shrunk, although they can be grown or moved.
Among common non-Linux file systems, FAT and NTFS can be grown, shrunk, and
moved. HFS and HFS+, used on Macintoshes, can usually be shrunk and moved,
but not grown. OS X's Disk Utility can sometimes grow HFS+ partitions.
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 3 of 10
developerWorks® ibm.com/developerWorks
In GParted, you can select View > File System Support to obtain a table of file
systems and the operations that GParted supports. If you try this in your regular
Linux system, however, you should be aware that what is supported varies from one
distribution to another. If you use an emergency disc, as described shortly, it may
support different options than your regular installation does.
With the existing partition data and information about what you can do with your
current file systems in hand, you can begin planning your new layout. You should
consider several important factors:
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 4 of 10
ibm.com/developerWorks developerWorks®
but if you add a logical partition, all your other logical partitions' numbers
may change.
Preparing a backup
Once your changes are planned, you may be tempted to rush to implement them;
however, because of the risks involved in repartitioning, you should back up your
most critical data, if at all practical. If a backup is not practical, you're well advised to
make it so by purchasing the necessary hardware. Even aside from the risks
involved in partition resizing, hard disks sometimes fail, and software problems can
render file systems useless. Thus, having a backup is a good idea.
You can back up to whatever medium is most convenient. You may be able to use
tar to create a system backup that will fit on a recordable DVD, once compressed;
however, most modern systems have enough user data that a single DVD won't hold
it all. Thus, you may need to resort to some other medium, such as an external hard
disk, to back up your user data.
Even if a full backup is impossible, you should back up the contents of /etc. This
directory holds critical system configuration files, so keeping a copy of it can speed
up recovery if you need to reinstall your operating system.
Most emergency discs come only in x86 (32-bit) form, but these discs work fine on
x86-64 (64-bit) computers, even if the system runs a 64-bit version of Linux. The file
system data structures are not affected by the central processing unit (CPU)
architecture. If you run on something other than standard personal computer (PC)
hardware, however, such as a Macintosh, you may need to check that your
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 5 of 10
developerWorks® ibm.com/developerWorks
Typically, you must boot an emergency disc much as you boot a Linux installation
disc. On some systems, inserting the disc and then rebooting the computer does the
job. On some systems, you must press a function key to select the boot device or
adjust a basic input/output system (BIOS) option to boot from the optical drive rather
than from your hard disk. The details of how to do this are system-specific, so you
may need to consult your manual for details.
When you boot PartedMagic, a boot menu appears. Select Default settings (Runs
from RAM) to boot into the standard system. When the system boots, you see a
desktop appear with icons for some common tools, including one called Partition
Editor, which launches GParted. Double-click this icon to begin resizing your
partitions.
To resize a partition, right-click it and select Resize/Move from the pop-up menu.
The result is a dialog box such as that shown in Figure 2. You can adjust the size
and position of the partition using the graphical slider or the text-entry fields.
Figure 2 shows a resizing of /dev/sdb7 from Figure 1, moving its start point to the
right to make room for an expansion of /dev/sdb5. To complete a resizing of Figure
1's partitions, you have to also move the swap partition (/dev/sdb6) to the right prior
to resizing /dev/sdb5. Alternatively, you can delete and recreate the swap partition;
however, this might require altering UUID references to swap space in /etc/fstab.
When the swap space is moved, you can expand /dev/sdb5.
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 6 of 10
ibm.com/developerWorks developerWorks®
Note the Align to field in Figure 2. This is a new feature with recent versions of
GParted, and it enables you to align partitions to cylinders, to mebibyte (MiB)
boundaries, or neither. Older disks are typically partitioned to align on cylinder
boundaries, but MiB alignment is common on disks partitioned with Windows Vista
or later. Linux is happy with either type of alignment. If your system dual-boots with
Windows XP, cylinder alignment may be required. If the system dual-boots with
Windows Vista or later, or if it uses a new disk with 4096-byte sectors, MiB
alignment may be required.
If you want to take space from a logical partition to give it to a primary partition or
vice versa, you must explicitly resize the extended partition that surrounds the logical
partitions. You do so just like you resize any other partition; however, you'll find it
easier to click on its list entry than its entry in the diagram above the partition list.
GParted doesn't allow you to resize partitions that are in use. Such partitions have a
padlock icon next to their entries. You can right-click the partition and select
Unmount to unmount it. Note that the extended partition is locked in this way if any
of its contained logical partitions are in use, including swap space.
After you tell GParted about your changes, you must implement them by selecting
the Edit > Apply All Operations menu item or by clicking the Apply icon. The result
is a progress dialog box that summarizes what the program is doing. If you decide
against an operation, you can use GParted's undo feature or exit from the program
without applying your changes. Your disk is then unchanged.
If you add or delete partitions, you may need to alter your /etc/fstab file or your boot
loader configuration, as noted earlier. To do so, you must mount the root (/) partition
and edit the file. In Figure 1, the root partition is /dev/sdb1, and GParted can mount it
at /media/sdb1, so you would then edit /media/sdb1/etc/fstab. If your system uses a
separate /boot partition, you may need to mount it separately to edit the boot loader
configuration in the boot partition's grub/menu.lst, grub/boot.conf, or grub/boot.cfg
file.
Examine these files and replace any references to the old partition ID numbers to
the new ones. If you make any changes, back up the original configuration file
before saving the new one.
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 7 of 10
developerWorks® ibm.com/developerWorks
Moving forward
At this point, you can reboot your system. In PartedMagic, you can click the icon in
the lower left of the screen and select Logout, which then gives you the option of,
among other things, rebooting. Be sure to remove the emergency disc, if you haven't
already done so. With any luck, your computer should reboot into your regular Linux
operating system, but you'll find that your disk space allocation has changed.
This article describes a basic partition resizing operation. Part 2 of this series
describes more advanced and alternative options, including resizing Logical Volume
Management (LVM), troubleshooting, and alternatives you may want to consider if
resizing operations are inadequate.
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 8 of 10
ibm.com/developerWorks developerWorks®
Resources
Learn
• "Setting up UNIX file systems" (developerWorks, February 2009) describes
common Linux and UNIX partitions and why you might want to set up your disk
using them.
• "Linux on 4KB-sector disks: Practical advice" (developerWorks, April 2010)
describes partition alignment rules on new disks that feature 4096-byte physical
sectors.
• The Debian backup configuration tutorials page provides links to summaries of
many backup technologies.
• Two articles in the foundational Learn Linux, 101 series on developerWorks
explain how to design a disk partitioning scheme and configure disk partitions
for your Linux system.
• In the developerWorks Linux zone, find hundreds of how-to articles and
tutorials, as well as downloads, discussion forums, and a wealth of other
resources for Linux developers and administrators.
• Stay current with developerWorks technical events and webcasts focused on a
variety of IBM products and IT industry topics.
• Attend a free developerWorks Live! briefing to get up-to-speed quickly on IBM
products and tools, as well as IT industry trends.
• Watch developerWorks on-demand demos ranging from product installation and
setup demos for beginners, to advanced functionality for experienced
developers.
• Follow developerWorks on Twitter, or subscribe to a feed of Linux tweets on
developerWorks.
Get products and technologies
• Download PartedMagic from its website.
• Download SystemRescueCd from its website.
• GParted is the most flexible Linux partition resizing tool, and it is included in
PartedMagic, SystemRescueCd, and most Linux distributions.
• GParted is based on libparted, which ships as part of the text-mode GNU
Parted package.
• Evaluate IBM products in the way that suits you best: Download a product trial,
try a product online, use a product in a cloud environment, or spend a few hours
in the SOA Sandbox learning how to implement Service Oriented Architecture
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 9 of 10
developerWorks® ibm.com/developerWorks
efficiently.
Discuss
• Get involved in the My developerWorks community. Connect with other
developerWorks users while exploring the developer-driven blogs, forums,
groups, and wikis.
Basics Trademarks
© Copyright IBM Corporation 2010. All rights reserved. Page 10 of 10