3、分析
我们来看一下目录/dev/rdsk/下有那些内容:
# pwd
/dev/rdsk
# lf
c0b0t0d0p0 c2b0t5d0s1 c2b0t5d1s7 c2b0t5d2sd f05q f15d16
c0b0t0d0p1 c2b0t5d0s2 c2b0t5d1s8 c2b0t5d2se f05qt f15d16t
c0b0t0d0p2 c2b0t5d0s3 c2b0t5d1s9 c2b0t5d2sf f0d8d f15d4
c0b0t0d0p3 c2b0t5d0s4 c2b0t5d1sa f0 f0d8dt f15d4t
c0b0t0d0p4 c2b0t5d0s5 c2b0t5d1sb f03c f0d8t f15d8
c0b0t0d0s0 c2b0t5d0s6 c2b0t5d1sc f03ct f0d9d f15d8t
c0b0t0d0s1 c2b0t5d0s7 c2b0t5d1sd f03d f0d9dt f15d8u
c0b0t0d0s2 c2b0t5d0s8 c2b0t5d1se f03dt f0d9t f15d9
c0b0t0d0s3 c2b0t5d0s9 c2b0t5d1sf f03e f0q15d f15d9t
c0b0t0d0s4 c2b0t5d0sa c2b0t5d2p0 f03et f0q15dt f15h
c0b0t0d0s5 c2b0t5d0sb c2b0t5d2p1 f03h f0q18d f15ht
c0b0t0d0s6 c2b0t5d0sc c2b0t5d2p2 f03ht f0q18dt f15q
c0b0t0d0s7 c2b0t5d0sd c2b0t5d2p3 f03m f0q9dt f15qt
c0b0t0d0s8 c2b0t5d0se c2b0t5d2p4 f03mt f0t f1d8d
c0b0t0d0s9 c2b0t5d0sf c2b0t5d2s0 f03n f1 f1d8dt
c0b0t0d0sa c2b0t5d1p0 c2b0t5d2s1 f03nt f13c f1d8t
c0b0t0d0sb c2b0t5d1p1 c2b0t5d2s2 f05d16 f13ct f1d9d
c0b0t0d0sc c2b0t5d1p2 c2b0t5d2s3 f05d16t f13d f1d9dt
c0b0t0d0sd c2b0t5d1p3 c2b0t5d2s4 f05d4 f13dt f1d9t
c0b0t0d0se c2b0t5d1p4 c2b0t5d2s5 f05d4t f13e f1q15d
c0b0t0d0sf c2b0t5d1s0 c2b0t5d2s6 f05d8 f13et f1q15dt
c2b0t5d0p0 c2b0t5d1s1 c2b0t5d2s7 f05d8t f13h f1q18dt
c2b0t5d0p1 c2b0t5d1s2 c2b0t5d2s8 f05d8u f13ht f1q9dt
c2b0t5d0p2 c2b0t5d1s3 c2b0t5d2s9 f05d9 f13m f1t
c2b0t5d0p3 c2b0t5d1s4 c2b0t5d2sa f05d9t f13mt
c2b0t5d0p4 c2b0t5d1s5 c2b0t5d2sb f05h f13n
c2b0t5d0s0 c2b0t5d1s6 c2b0t5d2sc f05ht f13nt
表1-3
在表1-3中具有/dev/[r]dsk/cCbBtTdDsS或者/dev/[r]dsk/cCbBtTdDpP格式的设备文件名称都代表了系统中的硬盘,可以归纳如下4行。
1 c0b0t0d0p[0-4],c0b0t0d0s[0-f]
2 c2b0t5d0p[0-4],c2b0t5d0s[0-f]
3 c2b0t5d1p[0-4],c2b0t5d1s[0-f]
4 c2b0t5d2p[0-4],c2b0t5d2s[0-f]
表1-4
注意:以上4行中[0-X],不是代表0到X中的任何一个,而是一个实际的范围,例如c0b0t0d0p[0-4]代表c0b0t0d0p0、c0b0t0d0p1、c0b0t0d0p2、c0b0t0d0p3。
表1-4中的每一行都代表着一个硬盘,实际情况是第1行代表本地IDE硬盘,即表1-2中第3行所示之硬盘;第2行代表磁盘阵列柜的逻辑分区1,设置此分区的LUN号为0,即表1-2中第7行对应磁盘阵列的逻辑分区1;第3、4两行代表磁盘阵列的逻辑分区2和3,LUN号分别为1和2。
我们结合上面的说明对表1-2重新进行分析:

上图中标出了表1-2每一个字符代表的意思,从表1-2可以看出三个控制器(第2、4、6行)是按照顺序进行编号0、1、2,不分控制器的类型,第2、4行代表的是IDE类型,第6行代表的是SCSI类型;每一个控制器都有自己的B、T、D号,巧合的是本系统中的三个控制器的T(target)都是7,这样通过该控制器相连接的设备的T就不能是7;同时我们看到,磁盘阵列上设置的通道ID在UnixWare7.1.x操作系统中是T,而磁盘阵列柜的逻辑盘中的分区对应的ID号(LUN),对应着系统中的D,况且这样的分区是作为一个完整的硬盘来进行处理的。
我们再回过头来看看表1-4,发现每一个硬盘对应的系统自动创建的设备文件都是一样的cXbXtXDxp[0-4]和cXbXtXdXs[0-f]共21个设备文件。这些设备文件是系统启动时由VTOC(Volume Table of Contents)驱动程序自动为硬盘创建的,这些设备文件是Slice的体现。下面我们具体的来看一下Slice与设备文件的对应情况。
1)cXbXtXdXs0是Slice0,对应整个活动的UNIX系统分区;
2)cXbXtXdXs1是slice1,是slice0所代表的当前活动的UNIX系统分区的第一个slice(类似于子分区,它可以用做swap分区、root分区或者boot分区等等);
3)cXbXtXdXs2是slice2,对应当前活动的UNIX系统分区的第二个子分区(请允许我如此称呼它),依次类推,直到cXbXtXdXsb7(slice183),它对应的是当前活动的UNIX系统分区的第183(b7是十六进制,换算到十进制是183)个子分区,也就是说,当前活动的UNIX系统分区最多具有184个slice,同时也说明了slice管理机制只能对当前活动的UNIX系统分区通过slice0到slice183来进行子分区的划分和管理;
4)cXbXtXdXp0对应slice184,代表整个硬盘;
5)cXbXtXdXp1到cXbXtXdXp4对应slice185到slice188,代表了硬盘的fdisk分区1到分区4。
4. 总结
综合以上1、2、3的内容可以看出slice、Partition和文件名称的关系如图1-1所示,对图中的内容说明如下:
1)用fdisk命令可以将一个硬盘划分为最多4个分区,当然也可以是一个分区。
2)UnixWare7.1.x操作系统在启动是由VTOC驱动程序自动为每个硬盘创建了设备文件名/dev/[r]dsk/cXbxtXdXp0-4和/dev/[r]dsk/cXbxtXdXs0-f共21个slice,他们的对应情况如图1-1所示。
3)从s0到sb7对Partition分区进一步分区只对active的Partition有效。
4)对于系统通过VTOC驱动程序自动创建的21个设备文件在硬盘还没有做fdisk分区的时候是没有什么作用的,如硬盘还没有用fdisk分区,则只能通过/dev/[r]dsk/cXbxtXdXp0和/dev/[r]dsk/cXbxtXdXs0这2个文件中对该硬盘进行操作,在对硬盘进行了fdisk分区以后,s1-15文件仍然无法使用,只有通过命令disksetup –I /dev/[r]dsk/cXbxtXdXs0对活动分区创建了slice子分区以后才能够正常使用,而pX则对应着具体的fdisk分区。
5)如果硬盘的fdisk分区只有2个,p1和p2对应着分区1和分区2,而p3和p4其实没有任何作用了,应为它们没有对应的fdisk分区。
6)系统自动创建的s1-sf共15个slice有对应的文件,如果通过命令prtvtoc和edvtoc去增加slice时,系统会在启动时为增加的slice创建设备文件,它们从s11开始,最多到sb7。
