|
|
||
|
||
|
|
| Red Hat Documentation |
Partitioning with fdiskThis section shows you how to actually partition your hard drive with the fdisk utility. Linux allows only 4 primary partitions. You can have a much larger number of logical partitions by sub-dividing one of the primary partitions. Only one of the primary partitions can be sub-divided.Examples: Notes about fdisk: fdisk is started by typing (as root) "fdisk device" at the command prompt. "device" might be something like /dev/hda or /dev/sda. The basic fdisk commands you need are:
Changes you make to the partition table do not take effect until you issue the write (w) command. Here is a sample partition table: Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders Units = cylinders of 4032 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 * 1 184 370912+ 83 Linux /dev/hdb2 185 368 370944 83 Linux /dev/hdb3 369 552 370944 83 Linux /dev/hdb4 553 621 139104 82 Linux swapThe first line shows the geometry of your hard drive. It may not be physically accurate, but you can accept it as though it were. The hard drive in this example is made of 32 double-sided platters with one head on each side (probably not true). Each platter has 621 concentric tracks. A 3-dimensional track (the same track on all disks) is called a cylinder. Each track is divided into 63 sectors. Each sector contains 512 bytes of data. Therefore the block size in the partion table is 64 heads * 63 sectors * 512 bytes. The start and end values are cylinders. The first cylinder (0) is reserved for information about the drive layout.
Four primary partitionsThe overview:Decide on the size of your swap space and where it ought to go. Divide up the remaining space for the three other partitions.Example: I start fdisk from the shell prompt: # fdisk /dev/hdb
which indicates that I am using the second drive on my IDE controller. (See device numbers.) Now I need to plan my layout. In this example, I want to use only primary partitions for my linux partitions and my swap space. When I print the (empty) partition table, I just get configuration information. Command (m for help): p Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders Units = cylinders of 4032 * 512 bytesI knew that I had a 1.2Gb drive, but now I really know: 64 * 63 * 512 * 621 = 1281982464 bytes. I decide to reserve 128Mb of that space for swap, leaving 1153982464. If I use one of my primary partitions for swap, that means I have three left for ext2 partitions. Divided equally, that makes for 384Mb per partition. Now I get to work. Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-621, default 1):<RETURN> Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +384M Next, I set up the partition I want to use for swap: Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (197-621, default 197): Using default value 197 Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +128MNow the partition table looks like this: Device Boot Start End Blocks Id System /dev/hdb1 1 196 395104 83 Linux /dev/hdb2 197 262 133056 83 Linux I set up the remaining two partitions the same way I did the first. Finally, I make the first partition bootable: Command (m for help): a Partition number (1-4): 1And I make the second partition of type swap: Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap) Command (m for help): pThe end result: Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders Units = cylinders of 4032 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 * 1 196 395104+ 83 Linux /dev/hdb2 197 262 133056 82 Linux swap /dev/hdb3 263 458 395136 83 Linux /dev/hdb4 459 621 328608 83 Linux Finally, I issue the write command (w) to write the table on the disk. How to format partitions How to mount partitions How to activate swap space Mixed primary and logical partitionsThe overview: create one use one of the primary partitions to house all the extra partitions. Then create logical partitions within it. Create the other primary partitions before or after creating the logical partitions.Example: I start fdisk from the shell prompt: # fdisk /dev/sda
which indicates that I am using the first drive on my SCSI chain.
(See device numbers.First I figure out how many partitions I want. I know my drive has a 183Gb capacity and I want 26Gb partitions (because I happen to have back-up tapes that are about that size). 183Gb / 26Gb = ~7 so I will need 7 partitions. Even though fdisk accepts partition sizes expressed in Mb and Kb, I decide to calculate the number of cylinders that will end up in each partition because fdisk reports start and stop points in cylinders. I see when I enter fdisk that I have 22800 cylinders. > The number of cylinders for this disk is set to 22800. There is > nothing wrong with that, but this is larger than 1024, and could in > certain setups cause problems with: 1) software that runs at boot > time (e.g., LILO) 2) booting and partitioning software from other > OSs (e.g., DOS FDISK, OS/2 FDISK) So, 22800 total cylinders divided by seven partitions is 3258 cylinders. Each partition will be about 3258 cylinders long. I ignore the warning msg because this is not my boot drive. Since I have 4 primary partitions, 3 of them can be 3258 long. The extended partition will have to be (4 * 3258), or 13032, blocks long in order to contain the 4 logical partitions. I enter the following commands to set up the first of the 3 primary partitions (stuff I type is bold ): Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): <1> First cylinder (1-22800, default 1): <RETURN> Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-22800, default 22800): <13032>The last partition is the extended partition: Partition number (1-4): 4 First cylinder (9775-22800, default 9775): <RETURN> Using default value 9775 Last cylinder or +size or +sizeM or +sizeK (9775-22800, default 22800): <RETURN> Using default value 22800The result, when I issue the print table command is: /dev/sda1 1 3258 26169853+ 83 Linux /dev/sda2 3259 6516 26169885 83 Linux /dev/sda3 6517 9774 26169885 83 Linux /dev/sda4 9775 22800 104631345 5 Extended Next I segment the extended partition into 4 logical partitions, starting with the first logical partition, into 3258-cylinder segments. The logical partitions automatically start from /dev/sda5. Command (m for help): n First cylinder (9775-22800, default 9775): <RETURN> Using default value 9775 Last cylinder or +size or +sizeM or +sizeK (9775-22800, default 22800): 13032The end result is: Device Boot Start End Blocks Id System /dev/sda1 1 3258 26169853+ 83 Linux /dev/sda2 3259 6516 26169885 83 Linux /dev/sda3 6517 9774 26169885 83 Linux /dev/sda4 9775 22800 104631345 5 Extended /dev/sda5 9775 13032 26169853+ 83 Linux /dev/sda6 13033 16290 26169853+ 83 Linux /dev/sda7 16291 19584 26459023+ 83 Linux /dev/sda8 19585 22800 25832488+ 83 LinuxFinally, I issue the write command (w) to write the table on the disk. The next thing I need to do is format each partition. Formating PartitionsAt the shell prompt, I begin making the file systems on my partitions. Continuing with the previous example, this is:# mke2fs /dev/sda1 I need to do this for each of my partitions, but not for /dev/sda4 (my extended partition). If I want non-ext2 partitions, this is the time to make that decision. The kinds of file systems your kernel supports is in: /usr/src/linux/include/linux/fs.h The most common file systems can be made with programs in /sbin that start with "mk" like mkfs.msdos and mke2fs. To set up a swap partition: # mkswap -f /dev/hda5To activate the swap area: # swapon /dev/hda5Normally, the swap area is activated by the initialization scripts at boot time. Mounting PartitionsMounting a partition means attaching it to the linux file system. To mount a linux partition:# mount -t ext2 /dev/sda1 /opt
|
|
|