Linux Partition Naming Convention ( IDE Drive Mappings )

by on May 4, 2006 · 9 comments· LAST UPDATED March 6, 2009

in , ,

Q. I am new to Linux and I not able to understand /dev/hdc (is it C: drive?) under Linux. This is quite confusing for a new Linux user like me. What device naming convention followed by Linux? Can you explain it in layman's term?

A. Linux does not follows DOS or Windows XP style partition names or drive names. It is true that it is a bit confusing for a new Linux user. Linux use combination of bus and . For example if you are using IDE hard disk or CDROM it is will use HD word. If you are using SCSI interface it will use SD word.

A typical home pc or laptop has 2 or 4 IDE channels as follows:

  • ide0 = primary
  • ide1 = secondary
  • ide2 = tertiary
  • ide3 = quaternary

For example:

  • ide0 = primary master = hda
  • ide1 = primary slave = hdb
  • ide2 = secondary master = hdc
  • ide3 = secondary slave = hdd

and so on...

SCSI devices are listed as devices sda, sdb, sdc, sdd, sde, sdf, and sdg in the /dev directory. Similarly, partitions on these disks can range from 1 to 16 and are also in the /dev directory.

Now each hard drive has 4 primary partitions (limit of PC x86 architecture). First partition is denoted by number 1. For example:

  • First partition : /dev/hda1
  • Second partition : /dev/hda2
  • Third partition : /dev/hda3
  • Fourth partition : /dev/hda4

You can run command fdisk -l to display list of partitions:

WARNING! These examples may result into data loss. Use fdisk command with caution as it manipulate your partition table.

# fdisk -l
Output:

Disk /dev/hda: 20.0 GB, 20060651520 bytes
255 heads, 63 sectors/track, 2438 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1275    10241406   83  W95 FAT32
/dev/hda2            1276        1530     2048287+  82  Linux swap / Solaris
Disk /dev/hdb: 80.0 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/hdb1   *           1        2432    19535008+  83  Linux
/dev/hdb2            2433        2554      979965   82  Linux swap / Solaris
/dev/hdb3            2555        6202    29302560   83  Linux
/dev/hdb4            6203        9733    28362757+   5  Extended
/dev/hdb5            6203        9733    28362726   83  Linux

In above output /dev/hda1 is FAT32 partition with Windows XP installed (windows XP/Vista C: ).

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 9 comments… read them below or add one }

1 Anonymous May 4, 2006 at 4:53 pm

It is true that PC/X86 impose a limit of 4 primary partitions per hard drive, but one of those partitions can be designated as an extended partition. Inside of this extended partition, logical partitions can be specified. So you can have partition number as follows:

a) 1-4 primary partitions
b) 5-16 logical partitions

For example /dev/hda5.

Reply

2 Anonymous July 20, 2006 at 11:16 am

Having looked at the answer to the question, I think that output “fdisk -l” suggests that windows OS is at ide0, and linux is ide1.

Some time ago I was trying to do the same configuration( windows OS-primary master, linux – primary slave). The installation was ok. During the boot up, I was getting error some think like ” MBR error “.
Then I had to create a boot disk in order to get my windows to work.
Is your boot loader on MBR or on hda1?

My ide0 has 4 partions-
partition 1(NTFS)- windows os
partition 2 & 3(NTFS)- windows data
partition 4 – Unallocated.

Any suggestion how could I get the same configuration to work?

Reply

3 nixcraft July 23, 2006 at 9:02 pm

You can install mbr on /dev/hda (IDE0) and use grub to boot both oses or use Windows 2000/XP to boot Linux. Both operations require modification of MBR, hence backup is suggested. If you need specific procedure let me know… or just post your question to our forum.cyberciti.biz

Reply

4 Anonymous August 2, 2006 at 7:01 pm

—————————————–
DISK ==> Your device
—————————————–
/dev/hda ==> Primary Master IDE
/dev/hdb ==> Primary Slave IDE
/dev/hdc ==> Secondary Master IDE
/dev/hdd ==> Secondary Slave IDE
/dev/sda ==> SCSI Disk 0
/dev/sdb ==> SCSI Disk 1
/dev/sdc ==> SCSI Disk 2
/dev/sdd ==> SCSI Disk 3
—————————————–

in order to address the actual data that is being held on your data, you need to address it by partitions.

For example if you had 2 parition on /dev/hda.

First parition => /dev/hda1
Second parition => /dev/hda2

Hope this helps someone :)

Reply

5 ghanshyam Gupta March 6, 2009 at 1:16 pm

For example:

ide0 = primary master = hda
ide1 = primary slave = hab
ide2 = secondary master = hdc
ide3 = secondary slave = hdd
Hi ,
ide1 = primary slave = hab should be
thanks
ghanshyam gupta

Reply

6 ghanshyam Gupta March 6, 2009 at 1:18 pm

ide1 = primary slave = hab
should be ide1 = primary slave = hdb

Reply

7 sangeetha June 18, 2009 at 11:42 am

hi,can any one suggeess me, how to run an application in linux

Reply

8 VARMA April 18, 2011 at 9:51 am

Shortcut Key for RUN command = Alt+f2

Reply

9 Brian Esserlieu September 14, 2011 at 3:14 pm

Works on openSUSE 11, make sure to change the ownership of the new partition from root (sudo chown ).

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: