3.3.1.1带有总线控制器的硬盘的使用
图3.2列出了总线控制器的硬盘命名习惯。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
cwtxdySz
z Slice (or partition) number (0 to 7)
y Drive number
t Physical bus target number
c Logical controller number
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
图3.2 具总线控制器的硬盘命名习惯
指定具有总线控制器(SCSI或IPI)的硬盘的某个分区,可这样规定设备名:/dev/dsk/cWtXdYsZ(块接口)或/dev/rdsk/cWtXdYsZ(原始接口)。注: SunOS 5.x使用"片"(slice)"一词来表示片号(在设备名中用"s"表示),其实"片"就是硬盘分区的别称。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表3.6 总线型驱动器硬盘的设备名举例
设备名 描述
/dev/rdsk/c0t0d0s0 该原始接口对应第一个控制器的第一个SCSI
目标地址的第一个硬盘的第一片(根)
/dev/rdsk/c0t0d0s2 该原始接口对应第一个控制器的第一个SCSI
目标地址上的第一个硬盘的第三片(表示整上
硬盘)
/dev/rdsk/c0t1d0s6 该原始接口对应第一个控制器的第二个SCSI
目标地址的第一个盘的第七片(/usr)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
下面列出了一些确定设备文件名的方法:
•;若系统中仅有1控制器,那么W的值通常为0;
•;对于SCSI控制器来说,X是该部件后面开关所设置的目标地址;
•;Y是与目标上相连的驱动器号,若硬盘的控制器是嵌入式的,则Y为0;
•;Z是片号(即分区号),标码由0到7,指定整个硬盘时,值为2,表3.5列出了带有根区的硬盘上分区的常规赋值。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表3.5 有根区硬盘的习惯分区
区(片) 文件系统 用途
0 / 根文件系统
1 Swap 虚拟内存空间
2 - 整个硬盘
6 /usr 可执行程序,程序及文档
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3.3.1.2带有直接驱动器的硬盘的使用
带直接驱动器的硬盘,设备名中没有目标项,指定这种硬盘的片(分区)应使用下列格式的设备名: /dev/dsk/cXdYsZ(块接口)/dev/rdsk/cXdYsZ(原始接口).
图3.3表示出具直接控制器的硬盘的命名约定,如果系统仅有1个控制器,则X为0,使用第二片表示整个硬盘。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
cXdYsZ
X Slice (or partion)llumber(¢to 7)
Y Drive number
Z Longical controller numver
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
图3.3直接控制器硬盘的命名规定
表3.7列出了几个直接控制器硬盘的原始设备命名
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表3.7直接控制器硬盘的设备名示例
设备名 描述
/dev/rdsk/c0d0s0 对应第一个控制器的第一个硬盘的第一片(根)的
原始接口/dev/rdsk/c0d0s2对应第一个控制器的
第一个硬盘的第三片(整个硬盘)的原始接口
/dev/rdsk/c0d1s6 对应第一个控制器和第二个硬盘的第七片(/usr)
的原始接口
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3.3.2检查硬盘使用状况
键入du可以查出每个文件或目录,占用了多少个512字节的硬盘块,若某目录含子目录,则计算块数时,子目录中的内容也算在内。
gtxa%du
2913 ./3.0templates
639 ./Srt
347 ./Howto
1998 ./Clipart
607 ./Newtemplates
38 ./Modemstuff
2004 ./Config/Art
6593 ./Config
13280
gtxa%
上面例子中的输出以512字节的块为单位,欲换算成兆字节(MB),应除以2048,上例中,13280/2048=6.48Mb。
也可以用du –k列出以K为单位的输出结果,使用du –s可以只列出总空间大小而不列详细目录大小。
3.3.3检查硬盘信息(Prtvtoc)
Prtvtoc命令仅对已分配空间的分区产生作用,否则就会显示"No such device or address"的出错信息,使用标准分区命名约定,那么指明第2片就显示整个硬盘的内容。
1、成为超级用户
2、键入prtvtoc /dev/rdsk/cWtXdYsZ显示指定硬盘信息。
gtxa%su
Password:
gtxa#Prtvoc /dev/rdsk/c0tld0s2
*/dev/rdsk/c0t1d0s2 Partition map
*
*Dimensions:
* 512 byres/sector
* 35 sectors/track
* 6 tracks/cylinder
* 210 sectors/cylinder
* 1019 cylinders
* 974 sccessible cylinders
*
*Flags:
* 1: unmountable
* 10: read-only
*
* First
* Partition Tag Flags Sector
0 0 00 0
1 0 00 24150
2 0 00 0
6 0 00 74550
Sector Last
Count Sector Mount Directory
24150 24149
50400 74549
204540 204530
129990 204539
gtxa%
下面讲述怎样修复坏硬盘或重装新硬盘
3.3.3.1将文件存档
如果硬盘坏了,但还可以访问硬盘,那么就把硬盘上的所有文件系统做一下ufsdump。ufsdump命令的用法见第4章。
3.3.3.2将硬盘上文件拷出
若无法对硬盘运行ufsdump,那么找一个同类型硬盘,联入系统,使用dd 命令从坏盘上拷出数据,dd的使用详见dd(1M)手册。
3.3.3.3修复坏块
若硬盘上有坏块, 使用format命令有可能修复磁盘上的坏块,format命令的用法见format(1M)手册。
3.3.3.4重新格式化硬盘
若硬盘上有坏块,重新格式化有时会解决问题,格式化硬盘的命令是format,其用法请见format(1M)手册,请记住格式化硬盘会毁掉磁盘上面的所有数据。
3.3.3.5换下旧硬盘
如果重新格式化和修复坏块都解决不了问题时,就要换下此坏硬盘,方法详见硬盘安装手册。
3.3.3.6加入错误表对硬盘进行格式化、分区及标记
下述步骤用于在新的硬盘上加入错误表、格式化硬盘、对硬盘进行分区和标记。注意:只有加入错误表后方可格式化硬盘,格式化时硬盘上的数据全部被坏破掉,故若硬盘不是新的,一定要保证在格式化前将数据备份出来。
1、 成为超级用户;
2、 键入format命令,显示各个硬盘清单;
AVAILABLE CISK SELSETIONS:
0.c0t0d0 at scsibus0 slave 24
sd0;
3、 从显示的清单中选择新硬盘的号,显示以"format>"为提示符的format菜单;
4、 键入defect
5、 键入primary原来的错误表就被加到硬盘中;
defect>primary
Extracring primary drfect list...Extraction complete.
Current Defect list updated.\
total of 30 defdcts.
6、 键入quit回到format>提示符
7、 键入format开始格式化硬盘,一个容量为10MB的硬盘格式化10分钟,硬盘容量越大,格式化时间越长;
8、 当format>提示符又出现了时,键入partition
9、 重建与损坏的硬盘的分区相匹配的分区表;
10、 键入label硬盘被标记好;
11、 键入quit回到format>提示符下;
12、 再键入quit回到shell提示符下。
gtxa%su
Password:
#format
Searching for disks...done
Extraction complete.
of 30 defects.
AVAILABLE DISK SELECTIONS:
O.sd0 at esp0 slave 24
sd0:
1.sd0 at esp0 slave 16
sd2:
Specify disk (enter its number):1
selecting c0t0dd0
[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 ti the disk
analyze'-surface analysis
defect'-defect list management
backup'-search for backup labels
verify'-read and display labels
save'-save new disk/partition defintions
inquiry'-show vendor,product and revision
volname'-set 8-character volume name
quit
format>defect
defect>primaty
Extracting primary defect list...Extraction complete.
Current Defect list updated.total of 30 defects.
defect>quit
format>format
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
quit
partition>
partition>label
partition>quit
format>quit
#
3.3.3.7重建文件系统(newfs)
硬盘经过格式化,分区和标记以后,就可以在上面建立ufs文件系统, 在重建原已存在的ufs文件系统时,必须先将此系统卸下(unmount)。
重建文件系统需依下列步骤:
1、 成为超级用户;
2、 键入newfs /dev/rdsk/cWtXdYsZ
系统提问是否继续。注意: 必须保证设备名中的分区号正确,否则会将其它分区中的内容删掉。
3、 键入"y"确认,newfs命令使用优化的缺省值创建文件系统。
下面例子在/dev/rdsk/c0t3d0s7上创建一个文件系统。
gtxa%su
Password:
#newfs /dev/rdsk/c0t3d0s7
newfs: constuct a new file system /dev/rdsk/c0t3d0s7(y/n)?y
/dev/drsk/c0t3d0s7: 163944 seotors in 506 cylinders of 9 tracks, 36 sectors 83.9MB in 32 cyl groups(16c/g,2.65MB/g,1216i/g)
super-block backups (for fsck-b#)at:
32. 5264. 10496. 15728. 20960. 26192. 31424. 366656. 41888.
47120. 52352. 578584. 62816. 68048. 73280. 78512. 82976. 88208.
93440. 98672. 103904. 109036. 114368. 119600. 124832. 130064.
1352696. 140528. 145760. 150992. 156224. 161456.
#
3.3.3.8在临时安装点安装文件系统(mount)
键入mount /dev/dsk/cWtXdYsZ /mnt文件系统安装到临时安装点/mnt上,安装硬盘时,使用块设备目录(/dev/dsk),而不是原始设备目录。
3.3.3.9向文件系统转储文件(ufsrestore)
下列步骤用于恢复最新的完整备份,然后由最低级到最高级依次恢复增量备份。
1、 键入cd /mnt;
2、 将磁带置于写保护状态;
3、 将0级磁带的第一卷插入磁带机;
4、 键入ufsrtore rvf /dev/rmt/若有多卷磁带需恢复,则在出现提示时插入下卷,这样就恢复了0级磁带;
5、 将0磁带取出,将下一最低级别的磁带插入,记住从0级磁带开始恢复,直到最高级;
6、 键入ufsrtore rvf /dev/rmt/则下一级别的磁带被恢复;
7、 对每卷磁带重复步骤5、6;
8、 键入ls命令;
9、 显示文件和目录列表,确认所有文件都已恢复;
10、 键入rm restore symtable删去为恢复而创建的restore sysmtable文件。
3.3.3.10自临时装入点拆卸文件系统(umount)其方法如下:
1、键入cd /
2、键入umount /mnt将文件系统自临时安装点卸下。
3.3.3.11检查文件系统的不一致性(fsck)
键入fsck /dev/rdsk/cWtXdYsZ本命令检查文件系统一致性。
3.3.3.12对恢复文件系统做0级备份
由于ufsrestore命令改变文件的位置及inode的分配,所以对新建的文件系统应立即做备份。
1、将具有写权限的新磁带插入磁带机;
2、键入ufsdump ouf /dev/rmt/
3.3.3.13在永久安装点安装文件系统(mount)
键入mount /dev/dsk/cWtXdYsZ则恢复的文件系统被装上并可以使用了。
第4章、文件系统管理
本章将介绍: 文件系统的类型、缺省的SunOS 5.x文件系统、虚拟文件系统表(/etc/vfstab)、文件系统管理命令、如何使文件系统有效、检测文件系统数据一致性(fsck)、备份与恢复文件系统
文件系统是用于查找和存贮文件的目录结构,文件系统这一术语可有下列不同的含义:
;描述由根目录向下的整个文件树
;描述文件系统的特定类型:磁盘文件系统、网络文件系统以及伪文件系统
;描述硬盘和其它存贮设备的数据结构
;描述安装在主文件树中可被访问的某一部分文件树的结构
通常你可通过上下文判断文件系统具体是哪个含义。
SunOS 5.x系统软件采用了虚拟文件系统(VFS)结构,这一结构为不同类型的文件系统提供了一个标准接口,核心处理基本操作时,如: 读、写、列表文件等,不需要用户或是程序知道具体的文件系统类型。
文件系统管理命令提供了一个公共的接口,这一接口可用于管理不同类型的文件系统,文件系统管理命令由两部分组成: 普通命令和针对每一类文件系统的特殊命令,普通命令适用于大多数文件系统,特殊命令只适用于某一类文件系统。
系统管理的重要任务之一是管理SunOS 5.x文件系统,理解复杂的文件系统便于更有效地管理文件系统,这一章介绍下面几方面的内容:
*文件系统类型
*缺省的SunOS 5.x文件系统
*虚拟文件系统表(/etc/vfstab)
*如何使用户的本地和远程文件系统有效
*备份与恢复文件系统
4.1文件系统类型
SunOS 5.x系统软件支持三种类型的文件系统:
*磁盘文件系统
*网络文件系统
*伪文件系统
4.1.1磁盘文件系统
磁盘文件系统存贮在硬盘、CD-ROM以及软盘等物理介质中,磁盘文件系统可以采用不同的格式进行读写操作,这几种格式是:
*ufs,UNIX文件系统(基于BSD Fat File系统,BSD 4.3 Tahke版提供),它是SunOS 5.x系统软件中缺省的磁盘文件系统。
*hsfs,High Sierra and ISO9660文件系统,High Sierra是第一个CD-ROM文件系统,ISO9660是一官方标准,hsfs文件系统用在CD-ROM上,是只读文件系统,SunOS 5.x hsfs支持RockRidge扩展,该扩展提供除可写性和硬链接以外的所有ufs文件系统语义和文件类型。
*pcfs,PC文件系统,该文件系统可以存取微机上基于DOS格式软盘上的数据和程序。
在SunOS 5.x系统软件中,没有包含由系统V版本提供的传统的System V(S5)文件系统,这是由于此文件系统最多为64,000个文件;文件名最长14个字符和分配限额(quota)等限制造成的。
每一种类型的磁盘文件系统通常与某一特定的存贮介质相对应:
*ufs与硬盘和其它介质(如: 磁带,CD-ROM,软盘)相对应:
*hsfs与CD-ROM相对应
*pcfs与软盘相对应
这些对应也并不是绝对的,如: ufs文件系统也可以安装在CD-ROM和软盘上。
4.1.2网络文件系统
网络文件系统是指可通过网络进行访问的文件系统,典型的基于网络的文件系统是指安装在一个系统上,可由其它系统通过网络进行访问的文件系统,基于网的文件系统有:
•;nfs----网络或分布式文件系统
•;rfs----远程文件共享
SunOS 5.x缺省的分布式文件系统是nfs。管理分布式文件系统是通过共享文件系统(从服务器输出)或者是将文件系统到各个系统中实现的,详细内容请参见后面的"使文件系统有效"一节。
4.1.3伪文件系统
伪文件系统是虚拟的或基于存贮器的文件系统,它提供访问特殊的核心信息和功能,伪文件系统并不需要文件系统盘空间,一些伪文件系统可以使用物理盘中的交换区,例如临时文件系统。
4.1.3.1临时文件系统(tmpfs)
临时文件系统(tmpfs)利用本地存贮器进行盘的读写,所以访问tmpfs文件系统的文件比访问ufs文件系统中的文件快得多,临时文件系统中的文件不是永久的,当文件系统被拆掉、系统关机或重新启动时,它们就被自动删掉。
SunOS 5.x目录中的缺省文件系统类型是tmpfs,与ufs类型的/tmp文件系统一样,可以将文件拷贝或移动到tmpfs类的/tmp文件系统中,或是从其中拷出,移出到其它的目录中。
使用tmpfs文件系统节省了本地盘或网络读写临时文件的开销,所以提高了系统性能,例如: 编译程序时生成很多临时文件,当使用这些文件时,操作系统产生大量的磁盘或网络的输入和输出请求,利用临时文件系统事先保存这些临时文件,可以明显地加快文件