Solaris10中级读书笔记之二:管理本地磁盘设备

一、基本的磁盘结构的介绍

磁盘设备有物理和逻辑成分.物理成分包括磁盘浅盘和读写磁头.逻辑成分包括磁盘片,柱面,磁轨和扇区.

1.物理磁盘结构

磁盘的物理结构由一系列平面的,在轴上有一堆有磁力的盘片组成的.当读写头定位机械臂移动,盘片则在旋转.读写数据写入到磁盘上.

下面描述了磁盘的物理组成:

l          磁盘存储区域是由一个或多个磁片组成.

l          这些磁片是旋转的.

l          磁盘读写定位机械臂移动磁盘头来进行定位.

l          读写头读写数据到磁盘表面的磁介质上.

2. 在磁盘磁片上的数据组织

一个磁盘磁片分为扇区,磁道,柱面.

扇区:磁片上的最小单元地址.一个扇区有512byte的数据,也就是一个磁盘块.

磁道:一系列扇区定位在首尾相连的圆形轨道上.

柱面:一堆磁道.

许多扇区的每个磁道在磁片上随着磁道的变化而变化.最外面的磁道最大,可以支撑比里面磁道更多的扇区.

因为磁盘读写定位机械臂继续移动磁盘头来定位,最有效的搜索会发生,当扇区被读或被写到指定的柱面上.

3. 磁盘片

磁盘片就是将一个磁盘在逻辑上被分为出来的分区.磁盘片被柱面分组,他们一般被功能上组织数据.

例如,一个磁盘片可以存储重要的系统文件和程序,当另一个磁片在同一磁盘上可以存储用户创建的文件.

Solaris OS,一个磁盘可以分成8个区,他们是从Slice0~Slice 7

一般来说,Slice2代表了整个磁盘, Slice2维护了关于整个磁盘的重要的数据,比如目前磁盘的大小,可用柱面存储文件和目录的总的数字.

下面显示磁盘片和他们所有的不同文件系统

Slice

Name

Function

0

/

根目录的系统文件

1

swap

交换区域

2

 

整个磁盘

5

/opt

可选的软件

6

/usr

系统可执行的程序

7

/export/home

用户文件和目录

 

(1)磁片命名规则

磁片的全名由8个字符组成.字符包括控制号,目标号,磁盘号和磁片号.

 

Controller number: 识别主机总线适配器HBA(host bus adapter),它控制系统和磁盘单元之间的通信.HBA关心接收和发送到设备上的命令和数据.控制号按顺序排列,c0,c1,c2…

Target number: 目标号,t0,t1,t2t3,符合唯一硬件地址,它分配给每一个磁盘,磁带,CD-ROM.一些外部磁盘驱动器有一个地址开关定位于后面板.一些内部磁盘有地址插脚,它的跳号作为磁盘的目标号.

Disk number:磁盘号也作为合理的单元数LUN(logical unit number).这个数字在目标位置上反应了磁盘的数字.

Slice number:磁片号的范围从07.

嵌入SCSI配置和集成电路设备IDE配置(integrated device electronics)表现磁盘片的命名规则,它是通过两个不同的结构组成.磁盘号通常设为d0为嵌入SCSI磁盘.

磁盘的命名规则一般为:c#t#d#s#的方式.

 

二、Solaris OS设备命名规则的介绍

Solaris OS,所有的设备分成三种不同类型的命名:逻辑设备名、物理设备名、实名.

1. 逻辑设备名

逻辑设备名是来源于物理设备名的一个连接,它连接于/device目录.当你在命令行用命令进入时,逻辑设备名主要是涉及到一些设备.所有的逻辑设备名都在/dev目录下.逻辑设备名包含控制号,目标号,磁盘号和磁片号.

每个磁盘设备既可以用/dev/dsk,又可以用/dev/rdsk目录进入块设备和字符磁盘设备.显示/dev/dsk目录,执行命令:

# ls /dev/dsk

c0t0d0s0 c0t0d0s4 c0t2d0s0 c0t2d0s4 c1t1d0s0 c1t1d0s4

c0t0d0s1 c0t0d0s5 c0t2d0s1 c0t2d0s5 c1t1d0s1 c1t1d0s5

c0t0d0s2 c0t0d0s6 c0t2d0s2 c0t2d0s6 c1t1d0s2 c1t1d0s6

c0t0d0s3 c0t0d0s7 c0t2d0s3 c0t2d0s7 c1t1d0s3 c1t1d0s7

 

2. 物理设备名

物理设备名是系统中唯一用来标识硬盘设备的物理位置.设备名在/devices目录下.

物理设备名由硬盘信息,一系统的接点名组成,指向设备的路径.显示物理设备名的执行命令:

# ls -l /dev/dsk/c0t0d0s0

lrwxrwxrwx 1 root root 46 Sep 24 10:59 /dev/dsk/c0t0d0s0 ->

../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a

FC-AL磁盘与其他的有点不同,因为他们显示的是WWN(World Wide Name).下面的以SUN企业的3500服务器为例.

# ls -l /dev/rdsk/c0t0d0s0

lrwxrwxrwx 1 root root 78 Jun 16 2000 /dev/rdsk/c0t0d0s0 ->

../../devices/sbus@2,0/SUNW,socal@d,10000/sf@0,0/ssd@w21000020375b9ab6,0:a,raw

 

3. 实例名

实例名是由内核为每个设备分配的缩写名.

实例名是物理设备名的简短的名字.下面显示两个例子:

sdn: sd是磁盘名,n是数字.sd0表示第一个SCSI磁盘设备.

dadn: dad(direct access device)是磁盘名,n是数字.dad0表示第一个IDE磁盘设备.

 

三、列出系统的设备

Solaris OS,有一些方法列出系统的设备,包括:

l          使用/etc/path_to_inst文件

l          使用prtconf命令

l          使用format命令

1. /etc/path_to_inst文件

对每个设备来说, 系统在/etc/path_to_inst文件中记录它的物理名和实例名. 这些名字被内核用来标识每个可能的设备.这个文件只在启动时可读.

/etc/path_to_inst文件是由内核来维护的,一般没有必要,也不建议系统管理员去改变这个文件.

下面授例子显示/etc/path_to_inst文件的条目.括号内的文本指定条目中的设备引用的设备,这在实际的文件中是不会显示的.

#cat /etc/path_to_inst

"/pci@1f,0" 0 "pcipsy" (PCI bus controller, “psycho” chip)

"/pci@1f,0/pci@1,1" 0 "simba" (PCI bus B)

"/pci@1f,0/pci@1,1/ebus@1" 0 "ebus" (extended bus)

"/pci@1f,0/pci@1,1/ebus@1/power@14,724000" 0 "power" (power management bus)

"/pci@1f,0/pci@1,1/ebus@1/fdthree@14,3023f0" 0 "fd" (floppy disk)

"/pci@1f,0/pci@1,1/ebus@1/SUNW,CS4231@14,200000" 0 "audiocs" (crystal semiconductor)

"/pci@1f,0/pci@1,1/network@1,1" 0 "hme" (Fast Ethernet)

上例中显示的设备实例号,是被记录到这个文件是的设备实例名的前半截.

Note:不同的系统有不同的物理设备路径.上例中是一个PCI总线架构的机器的设备.

下面是一个不同的架构机器的/etc/path_to_inst文件. 这是一台在SUN系统总线SBus(System bus).

#cat /etc/path_to_inst

“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@3,0” 3 “sd”

“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@2,0” 2 “sd”

“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@1,0” 1 “sd”

“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@0,0” 0 “sd”

“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@6,0” 6 “sd”

“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@5,0” 5 “sd”

“/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@4,0” 4 “sd”

 

2. prtconf命令

使用prtconf命令显示系统的配置信息,包括安装的内存的总数,系统外设的配置,这些形成一个设备树.

prtconf命令开出所有可能设备的实例名,不论设备有没有连接到系统中.要列出只连接到系统中的设备的列表.执行命令:

prtconf | grep -v not

System Configuration: Sun Microsystems sun4u

Memory size: 256 Megabytes

System Peripherals (Software Nodes):

SUNW,Ultra-5_10

scsi_vhci, instance #0

options, instance #0

pci, instance #0

pci, instance #0

ebus, instance #0

power, instance #0

su, instance #0

su, instance #1

fdthree, instance #0

network, instance #0

SUNW,m64B, instance #0

ide, instance #0

sd, instance #3

dad, instance #1

pci, instance #1

scsi, instance #0

pseudo, instance #0

#

Note: grep -v命令用于从输出中忽略包含单词“not”的行,例如driver not attached

 

3. format命令

使用format命令列出所有当前可用的硬盘的物理设备名与逻辑设备名.执行如下命令查看当前可用的硬盘的物理设备与逻辑设备名:

# format

Searching for disks...done

AVAILABLE DISK SELECTIONS:

0. c0t0d0 <ST38410A cyl 16706 alt 2 hd 16 sec 63>

/pci@1f,0/pci@1,1/ide@3/dad@0,0

1. c1t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>

/pci@1f,0/pci@1/scsi@1/sd@3,0

Specify disk (enter its number):^D

#

Note:Ctrl+D不做任何选择退出format命令.

 

四、重新配置设备

如果调用重新配置启动或运行devfsadm命令,有两种方式系统会去识别新增加的外围设备.

1. 执行重新配置启动

例如,你可以使用启动程序添加新的设备到新产生/etc/path_to_inst文件与到/dev/devices目录中.

下面的步骤重新配置系统去识别新的磁盘.

1) 创建/reconfigure文件.这个文件让系统在加电或启动时检测新安装的设备的存在.

# touch /reconfigure

#

2) 使用init 5命令关闭系统.这个命令安全地关闭系统电源,虑及到增加的设备或移除的设备.(如果设备已经连接到你的系统,你可以使用init 0命令关闭到ok提示符下.)

# init 5

3) 安装外围设置.确定在系统上要添加的设备地址没有和其他设备的地址相冲突.

4) 打开电源开启所有的外部设备.

5)使用prtconf命令或者format命令检查是否被添加到系统中.

在磁盘经过系统难后,开始处理定义的磁盘片.

Note: 如果/reconfigure文件在系统关闭前没有被创建,你可以使用PROM级命令来执行一个手工的重新配置启动:boot –r.

 

2. 使用devfsadm命令

许多系统7*24小时的运行重要的客户应用软件.在这些系统中,它不可能执行重新配置启动.在这种情况下,你可以使用devfsadm命令.

devfsadm命令执行设备重新配置程序,并且在重新配置事件中更新/etc/path_to_inst文件和/dev/devices目录.

/devfsadm命令尝试装载系统中所有的驱动程序,且将之与可能的设备实例匹配.然后它在/device目录中创建设备文件,/dev目录中创建逻辑连接.另外devfsadm命令也维护/etc/path_to_inst文件.

# devfsadm

为了限制devfsadm命令到只搜索特定类的设备文件,使用-c 选项.

devfsadm –c device_class

device_calss的值包括disk, tape, port, audio, and pseudo. 例如,要限制devfsadm命令到disk设备类型,执行命令:

# devfsadm –c disk

要指定多个设备类型,可以多次使用-c选项.,指定disk, tapeaudio设备类型,执行命令:

# devfsadm –c disk –c tape –c audio

要限制devfsadm命令只配置与某个已知的设备驱动程序相关的设备,使用-i选项.

devfsadm –i driver_name

下面的例子使用-i选项.

l          为配置只由dad驱动支持的硬盘.执行命令:

#devfsadm –i dad

l          为配置只由sd驱动支持,执行命令:

#devfsadm –i sd

l          为配置只由st驱动的支持,执行命令:

#devfsadm –i st

l          如果打印改变的设备树,执行命令:

#devfsadm –v

l          要执行不再被引用的符号链接清除,使用命令:

#devfsadm -C

 

五、硬盘分区

Solaris OS,format工具是一个重要的系统管理工具,它用于对使用硬盘前的准备操作.

虽然format工具也执行各种磁盘管理动作,但它主要的功能是分区

Note:在安装Solaris OS之前,不需要对硬盘进行分区.

1. 介绍磁盘分区的基本原理

要把磁盘分成片:

1) 标识正确的磁盘.

2) 规划磁盘分片布局

3) 使用format工具把磁盘分区.

4) 把磁盘新的分片标上卷标.

只有超级用户有权限使用format工具.如果是一般用户运行format工具,会出现下面的错误信息:

$ /usr/sbin/format

Searching for disk...done

No permission (or no disk found)!

 

2. 认识磁盘空间及其内部条件

磁盘分片以柱面的偏移量与大小来定义.偏移量是距离柱面0的距离.

3. 浪费的磁盘空间

当一个勤务多个柱面没有被分配给磁盘分片时,就会产生浪费的磁盘空间.

浪费的磁盘空间产生于分区过程中,当一个或多个柱面没有被分配磁盘分片时.这可能是由于无意或是偶然造成的.如果有未分配的分片,浪费的空间可以后来指定给新的分片.

 

4. 认识磁盘分片交错

当一个或多个磁盘分片被分配给一个以上的磁盘分片时,磁盘分片交错就会出现.

这种情况出现在当一个磁盘分片的大小增长了,而下一个磁盘分片的起始柱面号没有校正的情况下.只有format工具的modify命令会警告你有磁盘分片交错.

partition> modify

Select partitioning base:

0. Current partition table (unnamed)

1. All Free Hog

Choose base (enter number) [0]? 0

Warning: Overlapping partition (1) in table.

Warning: Fix, or select a different partition table.

警告:不要改变当前正在使用的磁盘分片的大小.当已有分息的磁盘被重新分区与重新标记卷标以后,磁盘上的数据会丢失且不可访问.在分区前,把磁盘上已有的数据拷贝到备份介质上,然后在磁盘被重新标记卷标并安装了新的文件系统后,把数据恢复到磁盘上来.

Note:如果两个分区出现了交错,当数据保存到其中一个分区时,数据被在相同磁盘柱面上的位于磁道上的另一个分区所覆盖.

 

5. 磁盘分区表的介绍

作为root用户,使用format工具选择一个磁盘去分区时,磁盘的分区表的一份拷贝被从磁盘的卷标中读到内存中,并作为当前磁盘分区表显示.

format工具还使用一个工作文件称作/etc/format.dat, format工具运行时会读取该文件.

/etc/format.dat文件的内容是可用的磁盘类型与一个预定义分区的集合,使用这些预定义分区表,就可以很快的对磁盘进行分区.

1) 磁盘卷标的介绍

磁盘卷标是一个保留区域,它存储了关于磁盘的控制器,几何学和分片的信息.用于描述磁盘卷标的另一个术语是内容卷表(VTOC). 磁盘的卷标或VTOC被存储在磁盘的第一个扇区中.

标记一个磁盘就是写分片信息到磁盘上,如果你不能在定义分片后标记磁盘,分片信息就会丢失.

磁盘卷标的一个重要部分是分区表,它识别磁盘的分片,分片以柱面为边界,及分片的总的大小.

Note:术语磁盘分片与磁盘分区是可互换的.

 

6. 使用format命令

format工具中的命令被分为两个层次.

当你在命令行输入format,第一层的命令出现,这个命令集可以选择磁盘,选择分区,保存新的磁盘和定义的分区,及写入标签到磁盘上.最高层的命令是format>提示符所表示.

当在format>提示符下输入partition,第二层的命令出现.这个命令集可以家底各分片的特征,打印已有的分区表,写分区位图与卷标到硬盘.其提示符是partition>.

磁盘分区术语与使用描述

术语

描述

Part

分片即分区号,有效值得0-7.

Tag

分片使用的指示值.

0 = unassigned

1 = boot

2 = boot

3 = swap

4 = usr

5 = backup

6 = stand

8 = home

卷标管理组标识:

14 = public

15 = private

Flag

00 wm = 磁盘分片可写,可挂载.

01 wu = 磁盘分片可写,但不可挂载.这是用于交换区域的分片为默认状态.

10 rm = 磁盘分片只读,可挂载.

11 ru = 磁盘分片只读,但不可挂载.

Cylinders

硬盘分片的起始柱面号与终止柱面号

Size

分片大小:MB, GB, b(blocks), c(柱面).

Blocks

分片中柱面的总数与扇区的总数.

 

7. 磁盘分区

警告:不要改变当前正在使用的磁盘分片的大小.

下面的步骤演示如何分区磁盘分片:

1) root身份,在命令行输入format,回车.

#format

Searching for disks...done

AVAILABLE DISK SELECTIONS:

0. c0t0d0 <ST38410A cyl 16706 alt 2 hd 16 sec 63>

/pci@1f,0/pci@1,1/ide@3/dad@0,0

1. c1t3d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>

/pci@1f,0/pci@1/scsi@1/sd@3,0

Specify disk (enter its number):

format工具搜索所有安装并加电的硬盘.对于找到的每个硬盘,format工具都会显示其逻辑设备名,SUN的产品代号,物理参数,与物理设备名.

2) 选择第二块硬盘,只要输入位于硬盘的逻辑设备名的左边的数字序号即可.对于前面的显示,选择1.然后format工具会出现主菜单.

Specify disk (enter its number): 1

selecting c1t3d0

[disk formatted]

FORMAT MENU:

disk - select a disk

type - select (define) a disk type

partition - select (define) a partition table

current - describe the current disk

format - format and analyze the disk

repair - repair a defective sector

label - write label to the disk

analyze - surface analysis

defect - defect list management

backup - search for backup labels

verify - read and display labels

save - save new disk/partition definitions

inquiry - show vendor, product and revision

scsi - independent SCSI mode selects

cache - enable, disable or query SCSI disk cache

volname - set 8-character volume name

!<cmd> - execute <cmd>, then return

quit

format>

用来查看,改变,提交硬盘分区的选项包括:

partition 显示分区菜单

label     将当前的分区定义写至硬盘卷标中

verify    读并显示硬盘卷标

quit      退出format工具

3) format提示符下输入partition. partition分区菜单出现:

format> partition

PARTITION MENU:

0 - change ‘0’ partition

1 - change ‘1’ partition

2 - change ‘2’ partition

3 - change ‘3’ partition

4 - change ‘4’ partition

5 - change ‘5’ partition

6 - change ‘6’ partition

7 - change ‘7’ partition

select - select a predefined table

modify - modify a predefined partition table

name - name the current table

print - display the current table

label - write partition map and label to the disk

!<cmd> - execute <cmd>, then return

quit

分区菜单可以使你执行下面的功能:

0-7      指定8个分片的偏移量及大小

select   /etc/format.dat文件中选择预定义的分区表

modify  更改当前内存中的分区表

name  提供了指定在/etc/format.dat文件中的分区表的方法

print   显示内存中当前分区表

label   写当前的分区表到硬盘卷标中

!<cmd> 不退出format执行shell中的cmd命令,如要执行ls, 输入!ls即可.

4) partition提示符下输入print显示当format启动时读入RAM中的磁盘卷标.

partition> print

Current partition table (original):

Total disk cylinders available: 4924 + 2 (reserved cylinders)

Part        Tag         Flag        Cylinders              Size        Blocks

0     unassigned   wm       0                   0        (0/0/0)                 0

1     unassigned  wm       0                 0        (0/0/0)                    0

2     backup          ru         0 - 4923       8.43GB  (4924/0/0)    17682084

3     unassigned  wu       0                   0            (0/0/0)                         0

4     unassigned  wm       0                   0            (0/0/0)                         0

5     unassigned  wm              0                   0            (0/0/0)                         0

6     unassigned  wu       0                   0            (0/0/0)                         0

7     unassigned   wm       0                   0            (0/0/0)                         0

分区表的名字在输出的表的第一行的括号中显示.

Part       磁盘分片号

Tag       预定义的,可选标签

Flag       预定义的,可选标记

Cylinders   分片的起始与终止柱面号

Size       分片大小,单位可以是块(b),柱面(c),兆字节(MB), G字节(GB)

Blocks     各分区柱面总数与扇区总数

5) 输入0,选择分片0.

partition> 0

Part       Tag               Flag       Cylinders      Size       Blocks

0    unassigned  wm         0                 0          (0/0/0)        0

6) 当提示ID标签时, 输入问号(?), 按回车列出可用的选择.可以输入新的标签名改变标签.

Enter partition id tag[unassigned]: ?

Expecting one of the following: (abbreviations ok):

unassigned boot root swap

usr backup stand var

home alternates reserved

Enter partition id tag[unassigned]:

7) 输入标签alternates, 按回车键.

Enter partition id tag[unassigned]: alternates

8) 当提示输入权限标记时,输入问号(?),按回车查看可用选项.输入新的标签名可更改标签.

Enter partition permission flags[wm]: ?

Expecting one of the following: (abbreviations ok):

wm - read-write, mountable

wu - read-write, unmountable

rm - read-only, mountable

ru - read-only, unmountable

Enter partition permission flags[wm]:

9) 按回车接受默认标签.即上面的wm.

Enter partition permission flags[wm]: <return>

10) 按回车接受起始柱面号为0.

Enter new starting cyl[0]: <return>

11) 输入分片0的大小为400mb.

Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 980mb

12) 输入print, 按回车,显示分区表.

partition> print

Current partition table (unnamed):

Total disk cylinders available: 1965 + 2 (reserved cylinders)

Part       Tag               Flag       Cylinders      Size              Blocks

0     alternates    wm               0 - 558         980.16MB     (559/0/0)      200736

1     unassigned wm               0                   0                   (0/0/0)                   0

2     backup         ru          0 - 4923       8.43GB         (4924/0/0) 17682084

3     unassigned wm               0                   0                   (0/0/0)                   0

4     unassigned wm               0                   0                   (0/0/0)                   0

5     unassigned wm               0                   0                   (0/0/0)                   0

6     unassigned wu         0                   0                   (0/0/0)                   0

7     unassigned wm               0                   0                   (0/0/0)                   0

当前的分区表显示了对分片0的更改.

现在调整分片1的起始柱面.

13) 输入1,选择分片1.

partition> 1

Part       Tag               Flag       Cylinders      Size       Blocks

1     unassigned wm               0                   0            (0/0/0)          0

14) 输入标签swap,按回车.

Enter partition id tag[unassigned]: swap

15) 在权限标签选项中输入wu, 按回车.

Enter partition permission flags[wm]: wu

16) 输入分片1新的起始柱面号.

Enter new starting cyl[0]: 559

17) 输入分片1新的分区大小.

Enter partition size[0b, 0c, 603e, 0.00mb, 0.00gb]: 512mb

18) 输入print, 按回车.

partition> print

Current partition table (unnamed):

Total disk cylinders available: 1965 + 2 (reserved cylinders)

Part       Tag               Flag       Cylinders      Size                     Blocks

0     alternates    wm               0 - 558         980.16MB            (559/0/0)      2007369

1     swap            wu         559 - 851     513.75MB            (293/0/0)      1052163

2     backup         ru          0 - 4923       8.43GB                (4924/0/0)   17682084

3     unassigned   wm               0                   0                          (0/0/0)          0

4     unassigned wm               0                   0                          (0/0/0)          0

5     unassigned wm               0                   0                          (0/0/0)          0

6     unassigned wu         0                   0                          (0/0/0)          0

7     unassigned wm               0                   0                          (0/0/0)          0

当前分区表显示了对分片1的更改.

分片1的起始柱面号是分片0的结束柱面号加1.

现在调整分片7的起始柱面号.

19) 输入7,选择分片7.

partition> 7

Part       Tag               Flag       Cylinders      Size       Blocks

7     unassigned wm               0                   0            (0/0/0)          0

20) 输入标签home,按回车

Enter partition id tag[unassigned]: home

21) 按回车接受默认的标签wm.

Enter partition permission flags[wm]: <return>

22) 输入分片7的新的起始柱面号.

Enter new starting cyl[0]: 694

23) 输入分片7的分片号,这里输入美元$.

Enter partition size[0b, 0c, 694e, 0.00mb, 0.00gb]: $

Note:输入一个美元($)符的值是最后分区的大小是在这磁盘分片上自动分配余下空间.

24) 输入print显示当前的分区表

partition> print

Current partition table (unnamed):

Total disk cylinders available: 1965 + 2 (reserved cylinders)

Part       Tag               Flag       Cylinders      Size              Blocks

0     alternates    wm               0 - 558         980.16MB     (559/0/0)      2007369

1     swap            wu         559 - 851     513.75MB     (293/0/0)      1052163

2     backup         ru          0 - 4923       8.43GB         (4924/0/0)    17682084

3     unassigned wm               0                   0                   (0/0/0)          0

4     unassigned wm               0                   0                   (0/0/0)          0

5     unassigned wm               0                   0                   (0/0/0)          0

6     unassigned wu         0                   0                   (0/0/0)          0

7     home            wm               852 - 4923   6.97GB         (4072/0/0)    14622552

将分片0,1,7blocks栏中的柱面数加起来.其结果应该等于分片2中所含的柱面总数.

25) 在检查分区表确认无误后,输入label将卷标写入硬盘.

partition> label

Ready to label disk, continue? y

partition>

 

六、管理磁盘卷标

Solaris OS中每个硬盘都有卷标,用来存储关于磁盘控制器,几何特征及分片的信息.

1. 查个把磁盘VTOC

可以使用两个方法查看磁盘的卷标或VTOC:

l          使用format工具的verify命令

l          在命令行上输入prtvtoc命令

1) 使用verify命令读取磁盘的VTOC

verify命令可以在format工具内查看磁盘的VTOC.读取磁盘的VTOC,执行下面的步骤:

1. format提示符下,输入verify命令,按回车

format> verify

Primary label contents:

Volume name = < >

ascii name = <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>

pcyl = 4926

ncyl = 4924

acyl = 2

nhead = 27

nsect = 133

Part       Tag               Flag       Cylinders      Size              Blocks

0     alternates    wm               0 - 558         980.16MB     (559/0/0)      2007369

1     swap            wu         559 - 851     513.75MB     (293/0/0)      1052163

2     backup         ru          0 - 4923       8.43GB         (4924/0/0)    17682084

3     unassigned wu         0                   0                   (0/0/0)                        0

4     unassigned wm               0                   0                   (0/0/0)                        0

5     unassigned wm               0                   0                   (0/0/0)                        0

6     unassigned wu         0                   0                   (0/0/0)                        0

7     home            wm               852 - 4923   6.97GB         (4072/0/0)    14622552

2. 输入quitq,按回车退出format菜单

 

2) 使用prtvtoc命令读取磁盘的VTOC

prtvtoc命令可在命令行查看磁盘的VTOC.从命令行中查看磁盘的VTOC,输入以下命令:

# prtvtoc /dev/dsk/c1t3d0s0

* /dev/dsk/c1t3d0s0 partition map

*

* Dimensions:

* 512 bytes/sector

* 133 sectors/track

* 27 tracks/cylinder

* 3591 sectors/cylinder

* 4926 cylinders

* 4924 accessible cylinders

*

* Flags:

* 1: unmountable

* 10: read-only

*

*                                               First              Sector           Last

* Partition    Tag               Flags     Sector           Count           Sector        Mount Directory

0            9            00                 0            2007369       2007368

1            3            01          2007369       1052163       3059531

2            5            11                 0            17682084     17682083

7            8            00          3059532       14622552     17682083

磁盘标签信息包括以下领域:

Dimensions    描述磁盘的逻辑空间

Flags           描述列在分区表中的标志信息

Partition        分区号.

Tag             标识分区如何使用.

Flags            00标签是读/,挂接; 01是读/,不挂接; 10是只读.

First Sector      定义分片的起始扇区.

Sector Count    定义分片中的扇区计数

Last Sector      定义分片中的最后一个扇区.

Mount Directory 如果这域是空,分片当前未挂接,且在/etc/vfstab文件中没有关于该分片的条目.

 

2. 重标记磁盘

使用prtvtoc命令将磁盘的VTOC存储到文件中.以后就可以使用fmthard命令来重标记硬盘,如果出现下列情况:

l          磁盘上的VTOC已经被损坏.

l          无意中在磁盘上修改了分区信息,却没有在/etc/format.dat文件保存备份的卷标.

保存磁盘的VTOC到文件上,执行命令:

# prtvtoc /dev/dsk/c1t3d0s0 > /var/tmp/c1t3d0.vtoc

1) fmthard命令

重标记磁盘,可将prtvtoc命令的输出重定向到另一个磁盘上的文件中,并使用该文件作为fmthard命令的参数.

fmthard -s datafile /dev/rdsk/c#t#d#s2

警告: fmthard命令不能写磁盘卷标到未标记的磁盘上.使用format工具标记磁盘.

如果需要重标记磁盘,而且有以前保存的磁盘的VTOC文件记录,可以使用下面的选项:

l          运行fomrat,选择磁盘,并使用默认的分区表标记它.

l          使用fmthard命令写入想要的卷标信息,及以前存放在datafile中的VTOC备份.

# fmthard -s /var/tmp/c1t3d0.vtoc /dev/rdsk/c1t3d0s2

l          使用fmthard命令初始化磁盘的VTOC

# fmthard -s /dev/null /dev/rdsk/c1t3d0s2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章