Next: 2.3.4 Creating the swap Up: 2.3 Installing the Linux Previous: 2.3.2 Drives and partitions

## 2.3.3 Creating Linux partitions

Now you are ready to create Linux partitions with the `fdisk` command. As described in Section 2.2.3, in general you will need to create at least one partition for the Linux software itself, and another partition for swap space.

After booting the installation media, run `fdisk` by typing

`fdisk`

where is the Linux device name of the drive you plan to add partitions to (see Table 2.1). For instance, if you want to run `fdisk` on the first SCSI disk in your system, use the command `fdisk /dev/sda`. `/dev/hda` (the first IDE drive) is the default if you don't specify one.

If you are creating Linux partitions on more than one drive, run `fdisk` once for each drive.

`# fdisk /dev/hda`

Command (m for help):

Here `fdisk` is waiting for a command; you can type `m` to get a list of options.

`Command (m for help): m
Command action
a toggle a bootable flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)`

Command (m for help):

The `n` command is used to create a new partition. Most of the other options you won't need to worry about. To quit `fdisk` without saving any changes, use the `q` command. To quit `fdisk` and write the changes to the partition table to disk, use the `w` command.

The first thing you should do is display your current partition table and write the information down, for later reference. Use the `p` command.

`Command (m for help): p
Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders
Units = cylinders of 608 * 512 bytes`

       Device Boot  Begin   Start     End  Blocks   Id  System
    /dev/hda1   *       1       1     203   61693    6  DOS 16-bit >=32M

Command (m for help):

In this example, we have a single MS-DOS partition on `/dev/hda1`, which is 61693 blocks (about 60 megs). This partition starts at cylinder number 1, and ends on cylinder 203. We have a total of 683 cylinders in this disk; so there are 480 cylinders left to create Linux partitions on.

To create a new partition, use the `n` command. In this example, we'll create two primary partitions (`/dev/hda2` and `/dev/hda3`) for Linux.

`Command (m for help): n
Command action
e extended
p primary partition (1-4)
p`

Here, `fdisk` is asking the type of the partition to create: extended or primary. In our example, we're creating only primary partitions, so we choose `p`.

`Partition number (1-4):`

`fdisk` will then ask for the number of the partition to create; since partition 1 is already used, our first Linux partition will be number 2.

`Partition number (1-4): 2
First cylinder (204-683):`

Now enter the starting cylinder number of the partition. Since cylinders 204 through 683 are unused, we'll use the first available one (numbered 204). There's no reason to leave empty space between partitions.

`First cylinder (204-683): 204
Last cylinder or +size or +sizeM or +sizeK (204-683):`

`fdisk` is asking for the size of the partition to create. We can either specify an ending cylinder number, or a size in bytes, kilobytes, or megabytes. Since we want our partition to be 80 megs in size, we specify `+80M`. When specifying a partition size in this way, `fdisk` will round the actual partition size to the nearest number of cylinders.

`Last cylinder or +size or +sizeM or +sizeK (204-683): +80M`

Warning: Linux cannot currently use 33090 sectors of this partition

If you see a warning message such as this, it can be ignored. `fdisk` prints the warning because it's an older program, and dates before the time that Linux partitions were allowed to be larger than 64 megabytes.

Now we're ready to create our second Linux partition. For sake of demonstration, we'll create it with a size of 10 megabytes.

`Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (474-683): 474
Last cylinder or +size or +sizeM or +sizeK (474-683): +10M`

At last, we'll display the partition table. Again, write down all of this information---especially the block sizes of your new partitions. You'll need to know the sizes of the partitions when creating filesystems, later. Also, verify that none of your partitions overlap.

`Command (m for help): p`

Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders
Units = cylinders of 608 * 512 bytes

       Device Boot  Begin   Start     End  Blocks   Id  System
    /dev/hda1   *       1       1     203   61693    6  DOS 16-bit >=32M
    /dev/hda2         204     204     473   82080   81  Linux/MINIX
    /dev/hda3         474     474     507   10336   81  Linux/MINIX

As you can see, `/dev/hda2` is now a partition of size 82080 blocks (which corresponds to about 80 megabytes), and `/dev/hda3` is 10336 blocks (about 10 megs).

Note that many distributions (such as Slackware) require you to use the `t` command in `fdisk` to change the type of the swap partition to ``Linux swap'', which is usually numbered 82. You can use the `L` command to print a list of known partition type codes, and then use `t` to set the type of the swap partition to that which corresponds to ``Linux swap''.

In this way, the installation software will be able to automatically find your swap partitions based on type. If the installation software doesn't seem to recognize your swap partition, you might want to re-run `fdisk` and use the `t` command on the partition in question.

In the example above, the remaining cylinders on the disk (numbered 508 to 683) are unused. You may wish to leave unused space on the disk, in case you wish to create additional partitions later.

Finally, we use the `w` command to write the changes to disk and exit `fdisk`.

`Command (m for help): w`

#

Keep in mind that none of the changes you make while running `fdisk` will take effect until you give the `w` command, so you can toy with different configurations and save them when you're done. Also, if you want to quit `fdisk` at any time without saving the changes, use the `q` command. Remember that you shouldn't modify partitions for operating systems other than Linux with the Linux `fdisk` program.

Remember that you may not be able to boot Linux from a partition using cylinders numbered over 1023. Therefore, you should try to create your Linux root partition within the sub-1024 cylinder range. Again, if this is impossible, you can simply boot Linux from floppy.

Some Linux distributions require you to reboot the system after running `fdisk`. This is to allow the changes to the partition table to take effect before installing the software. Newer versions of `fdisk` automatically update the partition information in the kernel, so rebooting isn't necessary. To be on the safe side, after running `fdisk` you should reboot the installation media, as before, before proceeding.

Next: 2.3.4 Creating the swap Up: 2.3 Installing the Linux Previous: 2.3.2 Drives and partitions