[back] [Abstract] [Copyright Notice] [Contents] [next]

Installing Debian GNU/Linux 2.1 For Motorola 680x0 - Chapter 4
Partitioning your Hard Drive


4.1 Background

Partitioning your disk simply refers to the act of breaking up your disk into sections. Each section is then independent of the others. It's roughly equivalent to putting up walls in a house; if you add furniture to one room it doesn't affect any other room.

If you already have an operating system on your system (Windows95, Windows NT, OS/2, MacOS, Solaris, FreeBSD) and want to stick Linux on the same disk, you will probably need to repartition the disk. In general, changing a partition with a filesystem already on it will destroy any information there. Thus you should always make backups before doing any repartitioning. Using the analogy of the house, you would probably want to move all the furniture out of the way before moving a wall or you risk destroying it.

At a bare minimum, GNU/Linux needs one partition for itself. You can have a single partition containing the entire operating system, applications, and your personal files. Most people feel that the swap partition is also a necessity, although it's not strictly true. ``Swap'' is scratch space for an operating system, which allows the system to use cheap disk storage as ``virtual memory''. By putting swap on its own partition Linux can make much more efficient use of it (it is possible to force Linux to use a regular file as swap, but it is not recommended).

Most people choose to give GNU/Linux more than the minimum number of partitions, however. There are two reasons you might want to break up the filesystem into a number of smaller partitions. The first is for safety. If something happens to corrupt the file system, generally only one partition is affected. Thus, you only have to replace (from the backups you've been carefully keeping) a portion of your system. At a bare minimum, you should consider creating what is commonly called a ``root partition''. This contains the most essential components of the system. If any other partitions get corrupted, you can still boot into GNU/Linux to fix the system. This can save you the trouble of having to reinstall the system from scratch.

The second reason is generally more important in a business setting, but it really depends on your use of the machine. Suppose something runs out of control and starts eating disk space. If the process causing the problem happens to have root privileges (the system keeps a percentage of the disk away from users), you could suddenly find yourself out of disk space. This is not good as the OS needs to use real files (besides swap space) for many things. It may not even be a problem of local origin. For example, getting spammed with e-mail can easily fill a partition. By using more partitions, you protect the system from many of these problems. Using mail as an example again, by putting /var/spool/mail on its own partition, the bulk of the system will work even if you get spammed.

The only real drawback to using more partitions is that it is often difficult to know in advance what your needs will be. If you make a partition too small then you will either have to reinstall the system or you will be constantly moving things around to make room in the undersized partition. On the other hand, if you make the partition too big, you will be wasting space that could be used elsewhere. Disk space is cheap nowadays, but why throw your money away?


4.2 Device Names in Linux

Linux disks and partition names are different than under other operating systems. You need to know the names that Linux uses when you partition. Here's the basic naming scheme:

The partitions on each disk are represented by appending a decimal number to the disk name: ``sda1'' and ``sda2'' represent the first and second partitions of the first SCSI disk drive in your system.

Here is a real-life example. Let's assume you have a system with 2 SCSI disks, one at SCSI address 2 and the other at SCSI address 4. The first disk (at address 2) is then named ``sda'', and the second ``sdb''. If the ``sda'' drive has 5 partitions on it, these will be named ``sda1'', ``sda2'', ..., ``sda5''. The same applies to the ``sdb'' disk and its partitions.

Note that if you have two SCSI host bus adapters (i.e., controllers), the order of the drives can get confusing. The best solution in this case is to watch the boot messages, assuming you know yourself the drive models.


4.3 Recommended Partitioning Scheme

As described above, you should definitely have a separate smaller root partition, and a larger /usr partition, if you have the space. For examples, see below. For most users, the two partitions initially mentioned is sufficient. This is especially appropriate when you have a single small disk, since breaking out lots of partitions can waste space.

In some cases, you might need a separate /usr/local partition if you plan to install many programs that are not part of the Debian distribution. If your machine will be a mail server, you might need to make /var/spool/mail a separate partition. Often, putting /tmp on it's own partition, for instance 20 to 32MB, is a good idea. If you are setting up a server with lots of user accounts, it's generally good to have a separate, large /home partition. In general, the partitioning situation varies from computer to computer depending on its uses.

For very complex systems, you should see the Multi Disk HOWTO. This contains in-depth information, mostly of interest to ISPs and people setting up servers.

With respect to the issue of swap partition size, there are many views. One rule of thumb which works well is to use as much swap as you have system memory, although there probably isn't much point in going over 64MB of swap for most users. It also shouldn't be smaller than 16MB, in most cases. Of course, there are exceptions to these rules. If you are trying to solve 10000 simultaneous equations on a machine with 256MB of memory, you may need a gigabyte (or more) of swap. On the other hand, Atari Falcon and Macs feel pain when swapping, so instead of making a large swap partition, get as much RAM as possible.

Note that Linux will not use more than 128 megabytes of swap on a single swap partition. However, you can make multiple swap partitions by hand and edit /etc/fstab after you've installed to get more than 128 megabytes of swap. If your swap requirements are this high, however, you should probably try to spread the swap across different disks (also called ``spindles'').


4.4 Examples

As an example, the author's home machine has 32MB of RAM and a 1.7GB IDE drive on /dev/hda. There is a 500MB DOS partition on /dev/hda1 (should have made it 200MB as it never gets used). A 32MB swap partition is used on /dev/hda3 and the rest (about 1.2GB on /dev/hda2) is the Linux partition.


4.5 Partitioning Prior to Installation

There are two different times that you can partition: prior to the installation of Debian, or during installation of Debian.

The following sections contain information regarding partitioning in your native operating system prior to installation. Note that you'll have to map between how your existing operating system references partition names and how Linux names partitions; see Device Names in Linux, section 4.2.


4.5.1 Partitioning in AmigaOS

If you are running AmigaOS, you can use the HDToolBox program to partition your disk prior to installation. Here's how:

  1. Start HDToolBox, select the disk you want to use, click on the ``Partition Drive'' button and select or create the partition you want to use as the Debian root filesystem.

  2. Next, you need to enable the ``Advanced options'' and change the following items under ``Change'':

  3. If you are making more than one Linux partition, go ahead and create the additional partitions, just as above.

  4. After having done this, select a partition that is to be used as a swap partition, and repeat the same steps as above, but set the identifier to 0x53575000 instead (this represents "SWP\0" in ASCII).

  5. Write down the Linux partition names for the root and swap filesystems you just created. See Device Names in Linux, section 4.2 for more information on Linux partition naming.

  6. Go back to the main window of HDToolBox and select ``Save changes to drive''. Think twice before actually clicking on ``Yes'' -- have you chosen the correct partitions? No important data could get lost now if you made a mistake? Then click ``OK''. If required, the Amiga will reboot after this.


4.5.2 Partitioning in Atari TOS

Atari partition IDs are three ASCII characters, use ``LNX'' for data and ``SWP'' for swap partitions. If using the low memory installation method, a small Minix partition is also needed (about 2 MB), for which the partition ID is ``MNX''. Failure to set the appropriate partition IDs not only prevents the Debian installation process from recognizing the partitions, but also results in TOS attempting to use the Linux partitions, which confuses the harddisk driver and renders the whole disk inaccessible.

There are a multitude of third party partitioning tools available (the Atari harddisk utility doesn't permit changing the partition ID); this manual cannot give detailed descriptions for all of them. The following description covers SCSITool (from Hard&Soft GmBH).

  1. Start SCSITool and select the disk you want to partition (``Disk'' menu, item ``select'').

  2. From the ``Partition'' menu, select either ``New'' to add new partitions or change the existing partition sizes, or ``Change'' to change one specific partition. Unless you have already created partitions with the right sizes and only want to change the partition ID, ``New'' is probably the best choice.

  3. For the ``New'' choice, select ``existing'' in the dialog box prompting the initial settings. The next window shows a list of existing partitions which you can adjust using the scroll buttons, or by clicking in the bar graphs. The first column in the partition list is the partition type; just click on the text field to edit it. When you are finished changing partition settings, save the changes by leaving the window with the ``Ok'' button. For the ``Change'' option, select the partition to change in the selection list, and select ``other systems'' in the dialog box. The next window lists detailed information about the location of this partition, and lets you change the partition ID. Save changes by leaving the window with the ``Ok'' button.

  4. Write down the Linux names for each of the partitions you created or changed for use with Linux -- see Device Names in Linux, section 4.2.

  5. Quit SCSITool using the ``Quit'' item from the ``File'' menu. The computer will reboot to make sure the changed partition table is used by TOS. If you changed any TOS/GEM partitions, they will be invalidated and have to be reinitialized (we told you to back up everything on the disk, didn't we?).

There is a partitioning tool for Linux/m68k called atari-fdisk in the installation system, but for now we recommend you partition your disk using a TOS partition editor or some disk tool. If your partition editor doesn't have an option to edit the partition type, you can do this crucial step at a later stage (from the booted temporary install ramdisk). SCSITool is only one of the partition editors we know of which supports selection of arbitrary partition types. There may be others; select the tool that suits your needs.


4.5.3 Partitioning in MacOS

Partitioning tools for Macintosh tested include HD SC Setup 7.3.5 (Apple), HDT 1.8 (FWB), SilverLining (LaCie), and DiskTool (Tim Endres, GPL). Full versions are required for HDT and SilverLining. The Apple tool requires a patch in order to recognize third-party disks (a description on how to patch HD SC Setup using ResEdit can be found at http://www.euronet.nl/users/ernstoud/patch.html).

For IDE based Macs, you need to use Apple Drive Setup to create empty space for the Linux partitions, and complete the partitioning under Linux, or use the 68k MacOS version of pdisk available from the MkLinux FTP server.

The following recipe is for partition with Apple's HD SC Setup.

Whatever tool you use, the partition type has to be set to ``Apple_Unix_SVR2''. The partition names names need to be ``A/UX Root'', ``A/UX Root&Usr'' or ``A/UX Usr'' for data partitions; and ``A/UX swap'' for swap partitions. HD SC Setup will use the right names and type when creating A/UX partitions in a ``Custom'' partition scheme. Partitions are selected for deletion, creation or resizing using the mouse, the partition name and type can be selected from a list of predefined types. DiskTool can create A/UX type partitions but requires that the user type in the partition names manually. Descriptions for other tools are welcome.

Again, refer to the Debian Installation Instructions for Macintosh for a more detailed description.


[back] [Abstract] [Copyright Notice] [Contents] [next]
Installing Debian GNU/Linux 2.1 For Motorola 680x0
version 2.1.8, 27 February, 1999
Bruce Perens
Sven Rudolph
Igor Grobman
James Treacy
Adam Di Carlo