Prerequisite: This tutorial covers adding a new disk drive to your linux computer. First it is assumed that the hard drive was physically added to your system.
IDE based systems, can support two drives on each ribbon cable. The cable is attached to either the Primary or Secondary IDE controller. A “jumper” is pressed onto two pins (thus connecting the two pins) on the drive to define the drive as a “Master” or a “Slave” drive. Each cable can support one master and one slave drive. Typically new desktop systems have one hard drive connected as a Master on the Primary controller and one CD-Rom on the second cable configured as a master.
|Linux Hard Drive Naming Convention:|
IDE drives are referred to as hda for the first drive, hdb for the second etc…IDE uses separate ribbon cables for primary and secondary drives. The partitions on each drive are referred numerically. The first partition on the first drive is referred to as hda1, the second as hda2, the third as hda3 etc …
Linux IDE naming conventions:
|/dev/hda||1st (Primary) IDE controller||Master|
|/dev/hdb||1st (Primary) IDE controller||Slave|
|/dev/hdc||2nd (Secondary) IDE controller||Master|
|/dev/hdd||2nd (Secondary) IDE controller||Slave|
|Command and Response Dialog of Adding a New IDE Drive:|
As root perform the following: (as highlighted in bold)
[root]# fdisk /dev/hdb Command (m for help): m (Enter the letter "m" to get list of commands) 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) Command (m for help): n Command action e extended p primary partition (1-4) Command (m for help): p Disk /dev/hdb: 240 heads, 63 sectors, 2654 cylinders Units = cylinders of 15120 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 2654 20064208+ 5 Extended Command (m for help): w (Write and save partition table) [root]# mkfs.ext3 /dev/hdb1 mke2fs 1.27 (8-Mar-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 2508352 inodes, 5016052 blocks 250802 blocks (5.00%) reserved for the super user First data block=0 154 block groups 32768 blocks per group, 32768 fragments per group 16288 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 34 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root]# mkdir /opt2 [root]# mount -t ext3 /dev/hdb1 /opt2
Note: A computer system may have multiple drives with primary partitions but only one primary partition may be active on one drive only. The active primary partition is used for booting the system and is referenced by the Master Boot Record (MBR). Each hard drive may only have a maximum of four primary partitions. One may only boot an OS from a primary partition. Extended partitions allow one to place up to 24 partitions on a single drive.
The above example shows the addition of a drive as one whole extended partition used to extend the storage space of the system. It was not created to hold additional operating systems as this would require a primary partition. Primary partitions can be used to extend the storage space of the system as well. It is not precluded from such a function but it will then limit you to four partitions for that hard drive.
Enter the drive into the fstab file so that it is recognized and mounted upon system boot.
LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda2 swap swap defaults 0 0 /dev/hdb1 /opt2 ext3 defaults 1 2 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0