日期:2014-05-16  浏览次数:20689 次

在Linux系统中存储设备的两种表示方法
作者:北南南北
来自:LinuxSir.Org http://www.linuxsir.org/main/?q=node/127
摘要: 硬盘和硬盘分区在Linux都表示为设备,按我们通俗的说法来说,就是怎么来表示或描述硬盘和或硬盘分区,但这种描述应该是科学和具体的;比如IDE硬盘,在Linux 可以表示为 /dev/hda、/dev/hdb ... ;SCSI接口的硬盘、SATA接口的硬盘表示为/dev/sda、/dev/sdb ... ... ;而IDE接口的硬盘/dev/hda,也可以表示为hd0,而 SCSI 接口的如果是/dev/sda ,另一种表示方法是sd0;理解两种表示方法有何用?至少GRUB引导管理器用到这些知识;另外我们mount (挂载)文件系统(分区),也会用到这些知识;

一、对于IDE接口硬盘的两种表示方法;

1、IDE接口硬盘,对于整块硬盘的两种表示方法;
     IDE接口中的整块硬盘在Linux系统中表示为/dev/hd[a-z],比如/dev/hda,/dev/hdb ... ... 以此类推,有时/dev/hdc可能表示的是CDROM ,还是以具体的fdisk -l 输出为准吧;
另一种表示方法是hd[0-n] ,其中n是一个正整数,比如hd0,hd1,hd2 ... ... hdn ;
如果机器中只有一块硬盘,无论我们通过fdisk -l 列出的是/dev/hda 还是/dev/hdb ,都是hd0;如果机器中存在两个或两个以上的硬盘,第一个硬盘/dev/hda 另一种方法表示为hd0,第二个硬盘/dev/hdb,另一种表法是hd1 ;感觉大家对hd0,hd1这种表示方法并不寞生,现在新的机器,在BIOS 中,在启动盘设置那块,硬盘是有hd0,hd1之类的,这就是硬盘表示方法的一种;对于/dev/hda 类似的表示方法,也并不寞生吧;我们在Linux通过fdisk -l 就可以查到硬盘是/dev/hda还是/dev/hdb;

[root@localhost ~]# fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device    Boot      Start     End      Blocks        Id    System
/dev/hda1   *           1         970     7791493+     7   HPFS/NTFS
/dev/hda2             971        9729    70356667+   5  Extended
/dev/hda5             971        2915    15623181     b  W95 FAT32
/dev/hda6            2916        4131     9767488+  83  Linux
/dev/hda7            4132        5590    11719386   83  Linux
/dev/hda8            5591        6806     9767488+  83  Linux
/dev/hda9            6807        9657    22900626    83  Linux
/dev/hda10           9658       9729      578308+    82  Linux swap / Solaris

请注意第一行, Disk /dev/hda: 80.0 GB, 80026361856 bytes ,这个就是表示机器中只有一个硬盘设备/dev/hda ,体积大小为 80.0G;下面的就是硬盘的分区,每个分区都有详细的信息,在这里不详细说了;

2、IDE接口硬盘分区的两种表示方法;

1)硬盘分区的第一种表示方法/dev/hd[a-z]X;
    硬盘的分区也有两种表示方法,一种是/dev/hd[a-z]X,这个a-z表示a、b、c......z
,X是一个从1开始的正整数;比如/dev/hda1,/dev/hda2 .... /dev/hda6,/dev/hda7 ... ... ,值得注意的是/dev/hd[a-z]X,如果X的值是1到4,表示硬盘的主分区(包含扩展分区);逻辑分区从是从5开始的,比如/dev/hda5肯定是逻辑分区了;我 用fdisk -l 就能列出一个硬盘的分区表,比如:

[root@localhost ~]# fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device   Boot      Start     End         Blocks      Id    System
/dev/hda1   *           1         970     7791493