fdisk – How to add a Drive in Linux

1. List the hard drives sda, sdb, sdc …

# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc
In this example, /sdc is the new hard drive.

2. Creat a Linux Partition using fdisk:

# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xefd2497b.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):

3. Switch off DOS-compatibility mode.

Command (m for help): c
DOS Compatibility flag is not set

4. fdisk commands:

Command (m for help): help
h: unknown command
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   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)

5. The example below is for 1 partition. Type n to add a new partition, then p for primary, and w to write and exit fdisk:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): 1
First cylinder (1-32635, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-32635, default 32635): 
Using default value 32635

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

The new partition is /dev/sdc1

6. Create an ext4 File System, the -L option is for Label, example /newPartition:

# mkfs.ext4 -L labelName /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=labelName
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
16384000 inodes, 65534903 blocks
3276745 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
2000 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, ...

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

7. Mount the new drive:

# mkdir /newPartion
# mount /dev/sdc1 /newPartion
# mount
/dev/sdc1 on /newPartionDirectory type ext4 (rw)

8. Add newPartion to fstab

LABEL=/backup     /backup     ext4     defaults     1 2