Management of drive partitions utilizing fdisk, mkfs and fsck:
Preparation
When you format a computer hard drive, you will lose everything that is on the drive. Therefore it is very important to back up anything you might later want.
In order to format a secondary drive you will need root access. All commands used in this tutorial are run from a command line (terminal) as root. You may also want to make note of the size (total capacity in MB) of the drive.
Linux refers to hard drives as either “hdx” or “sdx” where x is a letter, starting with a, which represents the order in which the drive was added to or detected by the computer. The “hd” prefix is used for IDE and PATA (formerly just ATA), and the “sd” prefix is used for SCSI, SATA, and USB drives. Usually a number is also put at the end of “hdx” or “sdx” to denote different partitions on the same phisical drive, but for the purpose of formatting you only need to know which letter the drive you want to format is.
The examples given in this how-to are for a computer with two IDE hard drives attached as a master and slave. In this, the drives are “hda” and “hdb.” You will need to determine the letter of drive you want to format for your own setup. We will be formatting the drive hdb. For all examples, replace “hdb” with whatever your drive designation is.
You can see all the drives attached to you system by typing the command “ls /dev/hd*” or “ls /dev/sd*” depending on which type (IDE, SATA, etc.) the drives are. On the example system the result of this command looks like “/dev/hda /dev/hda1 /dev/hda2 /dev/hdb /dev/hdb1” The operating system is installed on hda, which has two partitions (hda1 and hda2), and there is one partition on hdb and hdb1.
Using fdisk
First you will use the fdisk command to erase any old partitions on the drive and create a new one. Any changes you make using fdisk are only made permanent if you then issue the “w” command before quitting, so feel free to play around a little if you like. If at any time you find yourself stuck, you can quit the program without saving changes by holding the "Ctrl" key and pressing "c."
At the command prompt, type “fdisk /dev/hdb” replacing the "hdb" with the letters for your drive. Upon opening, fdisk may give you a couple of warnings, all of which can be ignored. It then gives you a prompt that looks like this: Command (m for help):
Enter “p” to see the partition table of the drive. The first line of output from the “p” command will also tell you size of the drive. This is a good way to double check that you are working with the correct drive.
If there are any partitions already on the drive they will be listed as the last lines of the “p” command. On our example, this looks like “/dev/hdb1” followed by some information about the partition's size and file system.
To delete any existing partitions, press “d” then enter. It will ask you which partition number you wish to delete. The number of the partition is the number that follows hdb, so on our example system we enter 1. If there are multiple partitions repeat the “d” command for each one. You can always view the partition table again with the “p” command.
Once you have deleted all existing partitions on the drive you are ready to make a new one. Type “n” and hit enter. Then press “p” to create a primary partition. It asks you for a partition number, enter “1." Now you are asked which cylinder the partition should start at, the beginning of the drive is the default, so just hit Enter. Then you are asked for the last cylinder, the end of the drive is default so you can just press Enter again.
Now you are back at fdisk's command prompt. Use the “p” command to check the partition table. You should now see your new partition at the bottom of the output. In the example it lists “/dev/hdb1.”
You now need to set the filesystem type for your new partition with the “t” command. You are asked for the Hex code of the filesystem you wish to use. We wll use the standard Linux ext2 filesystem which is “83." If you are doing something special and know of a particular filesystem that you need to use, you can press “L” to see all the codes, which are one or two characters made up of the numbers 0-9 and the letters a-f.
Now just issue the “w” command to write your new partition table and exit fdisk.
Creating the New File System with mkfs
Now you need to create the filesystem on the drive. This is done with the “mkfs” command.
At the command prompt, enter “mkfs -t ext2 /dev/hdb1” while remembering to change the hdb1 to whatever the letters are for the partition you just created.
If you are using a different filesystem than ext2, you will have to specify that where "ext2" is in the above command.
Finalizing the Format with fsck
All that is left is to run a check on the drive and enter it into your fstab so that the drive mounts each time you start your computer. This can be done with a single fsck command.
At the command prompt, type “fsck -f -y /dev/hdb1” again replacing hdb1 with the letters and number for your partition.
After fsck runs, your new drive is formatted. Restart your system before using it.
If you reformatted your system drive, you will now need to boot off an installation disk to install an Operating system.