Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52223
  • 博文数量: 17
  • 博客积分: 1471
  • 博客等级: 上尉
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-27 11:44
文章分类

全部博文(17)

文章存档

2012年(1)

2011年(1)

2008年(15)

我的朋友

分类:

2008-06-10 13:57:01

一  文件系统的介绍:
●基于磁盘文件系统
●分布式文件系统
●伪文件系统(Pseudo file systems)
磁盘文件系统:
 ·ufs-Solaris OE中的UNIX文件系统,基于Berkeley快速文件系统
 ·hsfs-High Sierra文件系统是特定用途的文件系统,是为在CDROM介质上使用而   开发的
 ·pcfs-PC文件系统是DOS FAT32文件系统的UNIX实现。pcfs文件系统允许Solaris   OE访问PC-DOS格式的文件系统。用户可以使用UNIX命令对PC-DOS文件进行  直接读写。
 ·udfs-该文件系统用于访问光存储介质上的系统。如DVD与CDROM。UDF文件系统允  许一般的(universal)数据交换,支持读写操作。
分布式文件系统:
 ·NFS-网络文件系统,允许用户在网络上各种类型的系统间共享访问文件。NFS文  件系统在一个系统组成文件系统的一部分,就象它是本地目录树的一部分一样。
伪文件系统:
 ·tmpfs-在内存中存放文件的临时文件系统,它避免了写基于磁盘的文件系统的过  度负载。tmpfs文件系统在每次系统重启时都会被创建与销毁。
 ·swapfs-交换文件系统,被内核使用来管理硬盘上的交换空间。
 ·fdfs-文件描述符文件系统,提供对打开的文件的明确的名字,使用在/dev/fd目  录中的文件描述符
 ·procfs-进程文件系统,在/proc目录中包含了一个当前活动的进程的文件列表。 ·mntfs-挂载文件系统,提供内核中有关本地挂载的文件系统的只读信息。

二  创建新的ufs文件系统
 Solaris OE中,用户对ufs文件系统的视图不同于操作系统的ufs文件系统视图。对于用户,文件系统是一个文件与目录的集合,里面组织存放了系统及其用户可以访问的数据。对于操作系统,文件系统是占用由分区定义的空间的控制结构和数据块集合,有了这个集合才能进行数据存储和管理。
 注意:
  Solaris OE在使用ufs文件系统之前,要在磁盘分片上构建ufs文件系统。 在硬盘分片上创建一个ufs文件系统,就能让Solaris OE存放UNIX目录与文件。
 
使用newfs命令
 必须在每个硬盘分区中创建文件系统才能使用磁盘存储目录或者文件。系统管理员可以使用newfs命令在磁盘分片上创建ufs文件系统。newfs命令是mkfs命令的更好使用的前端界面,mkfs用于创建文件系统。newfs命令位于/usr/sbin目录中。
 注意:newfs命令是破坏性的。它会破坏操作的硬盘分片上的数据。
使用newfs命令创建ufs文件系统,可分为如下几步:
1、作为root,使用如下命令在一个新分区的硬盘的第一个分片上创建文件系统:
 # newfs /dev/rdsk/c1t3d0s0
2、newfs命令在继续前会要求用户确认,请确认操作的对象是恰当硬盘上的恰当分片。继续按y,退出按n。
 newfs: construct a new file system /dev/rdsk/c1t3d0s0: (y/n)? y
 newfs命令示被建的文件系的信息。
 /dev/rdsk/c1t3d0s0: 410720 sectors in 302 cylinders 17 tracks 80 sectors
 200.5MB in 19 cyl groups (16 c/g, 10.62MB/g, 5120 i/g)
 super-block backups (for fsck -F ufs -o b=#) at:
 32, 21872, 43712, 65552, 87392, 109232, 131072, 152912, 174752, 196592,
 218432, 240272, 262112, 283952, 305792, 327632, 349472, 371312, 393152
newfs命令出的第一行描述了基本的硬几何参数(geometry)。第二行描述了在此分片中建的ufs文件系。第三行以下列出的是的超的扇区位置。
 注意:该过程同时也为ufs文件系统创建一个lost+found目录,该目录被文件系统   检测与修复工具(fsck)所使用。
3、重复第一步和跟二步,对硬盘上的每个分片都进行操作。
newfs命令为文件系统的维护保留了百分之一到十的空间。自由空间,由minfree参数所指定,指示分片上保留的或不让普通用户使用的空间量。在创建新文件系统时,可以使用newfs -m %free命令预设空闲空间的百分比。
要显示文件系统的minfree值,可使用fstyp命令。
下面的命令显示了在设备c0t0d0s0上的文件系统的minfree值。
 # fstyp -v /dev/rdsk/c0t0d0s0 | head -10
要更改已有的文件系统的自由空间的最小百分比值,可以使用tunefs -m %free命令。
下面的命令改变/dev/rdsk/c1t3d0s0上的文件系统的自由空间最小百分比值为1%。
# tunefs -m 1 /dev/rdsk/c1t3d0s0
 
 
三  使用fsck命令检查文件系统
 
文件系统可能会由于掉电崩溃、内核中的软件错误、硬件失效或者不恰当地关闭系统而损坏。系统文件检测程序,fsck,检测文件系统的数据不一致状态,并试图修正或者修复任何发现的不一致或损坏。
注意:不要在挂载的文件系统上运行fsck命令。这可能会让文件系统处于不可用的状态,也可能删除数据。/,/usr与/var文件系统应该在单用户模式下才能用fsck命令检测修复。
每次系统启动时,操作系统会判定fsck将检测哪个文件系统。在文件系统被挂载前,fsck命令会检测与修复文件系统遇到的任何问题。
注意:文件系统的状态标志位的值决定了文件系统是否需要使用fsck命令扫描。当状态标志位是“clean”,“stable”,“logging"时不会运行文件系统扫描。
fsck命令检测的数据不一致性
fsck命令扫描一个文件系统分为几个阶段。在每个阶段中,fsck命令检测几种类型的文件系统不一致性。
超级块一致性
文件系统的超级块不一致性检测包括几个参数,如文件系统大小,自由块计数,与自由inode计数。
柱面组块一致性
fsck命令检测任何由inode声明的未分配数据块,未分配的数据块,与未分配的inode计数。
inode一致性
fsck命令检测inode的分配状态,以及类型,链接计数,重复块(已经被其它inode使用的块),坏块,inode大小,及每个inode的块计数。任何未分配而有非0的引用计数的的inode会被链接到文件系统的lost+found目录中。
数据块一致性
fsck不会检测普通的数据块,但它会查检目录数据块。在目录数据块中,fsck命令检测inode是否指向未分配的块,未分配而已标记为使用的块,未分配而标记为空闲的块(不正确的.与..目录inode)与未链接到文件系统中的目录。这些目录被链接回文件系统的lost+found目录中。
lost+found目录
fsck命令将已分配但未被引用的文件与目录放入文件系统的lost+found目录中。文件的名字以其inode号指定。如果lost+found目录不存在,fsck命令会创建它。若在lost+found目录中没有足够的空间,fsck命令会增加目录的大小。
 
非交互模式:
 系统正常启动时,fsck命令在非交互式模式下运行,该模式也被称为preen或silent模式。此模式中,fsck命令只记录输出轻微且可被纠正的不一致性问题。如果发生了严重的文件系统不一致性问题,fsck程序会停止并要求输入root密码进入单用户模式,以交互模式继续执行fsck命令。
交互式模式
在交互模式下,fsck命令列出它检测到的每个问题,并跟随建议的纠正操作。即要求用户指示操作进行(输入yes)或者不进行(输入no)。
# fsck /dev/rdsk/c0t0d0s7
** /dev/rdsk/c0t0d0s7
** Last Mounted on /export/home
** Phase 1 - Check Blocks and Sizes
INCORRECT BLOCK COUNT I=743 (5 should be 2)
CORRECT?
如果回答yes,fsck命令执行纠正操作并继续。如果回答no,fsck命令重复关于原问题的fsck消息,并提出纠正操作建议,不一致性不会被修复,除非你回答yes。
下面的例子演示系统的root用户如何运行fsck命令检测文件系统的完整性:
·检测一个未挂载的文件系统,执行如下命令:
# fsck /dev/rdsk/c0t0d0s7
这是检测未进入/etc/vfstab文件的文件系统的唯一方法。
·执行如下命令,使用/etc/vfstab文件中列出的挂载点目录名检测文件系统:
# fsck /export/home
下例中,fsck命令以强制(f)与整理(p preen)方式检测并修复文件系统,
# fsck -o f,p /dev/rdsk/c0t0d0s5
/dev/rdsk/c0t0d0s5: 77 files, 9621 used, 46089 free
/dev/rdsk/c0t0d0s5: (4 frags, 57 blocks, 0.0% fragmentation)
fsck的f选项,强制进行文件系统检测,无论文件系统的超级块的状态标志是什么。
fsck的p选项,指示fsck以非交互的方式修复文件系统。此时,如果出现需要root介入的问题,程序会立即退出。

四   解决文件系统不一致性问题
如果文件系统出现的问题被发现,fsck工具会提出警告,一些更普遍的需要交互操作的文件系统错误有:
·分配未引用的文件
·不一致的链接计数
·自由块计数崩溃
·超级块崩溃

重连接分配未引用的文件
如果fsck命令发现有inode被分配,但是未被引用,或未链接到任何目录中,命令会发出一条提示消息,询问是否需要重连接该inode
** Phase 3 - Check Connectivity
UNREF FILE I=788 OWNER=root MODE=100644
SIZE=19994 MTIME=Jan 18 10:49 1999
RECONNECT? y
回答yes,fsck命令会将文件存储到lost+found目录中。fsck命令引用该inode号作为保存的文件的名字。
要判断fsck命令移致lost+found目录中的文件的类型,执行如下步骤:
1、列出文件系统中lost+found目录的内容
# ls /export/home/lost+found
#788
2、使用file命令判断文件的类型
# file /export/home/lost+found/#788
/export/home/lost+found/#788: ascii text
3、要查看ASCII文本文件的内容,使用more或cat命令。使用strings命令查看二进制文件的内容。如果文件与应用程序相关联,如文档字处理程序,使用该应用程序查看文件的内容。
# cat /export/home/lost+found/#788
4、如果文件未受损,且知道其知道原所在位置,可将文件拷贝至文件系统中原来的位置
# cp /export/home/lost+found/#788 /export/home/user1/report
调整链接计数
如果fsck程序发现目录的inode链接计数值与实际的目录链接数不一致,命令会显示消息提示是否要调整计数
** Phase 4 - Check Reference Counts
LINK COUNT DIR I=2 OWNER=root MODE=40755
SIZE=512 MTIME=Jan 18 15:59 1999 COUNT 4 SHOULD BE 3
ADJUST? y
本例中,回答y(yes),fsck会将链接计数从4更正为3。
在此阶段中,你也有可能被询问清除或删除链接。
BAD/DUP type I=200 OWNER=root MODE=40755
SIZE=512 MTIME=Mar 14 08:03 2002
CLEAR? y
修复空闲列表
如果fsck工具如现未分配的块的总数与超级块中列出的自由块的数目不一致,fsck命令就显示提示修复空闲块计数,以未分配块的计数来更正它。
** Phase 5 - Check Cyl groups
CG 0: BAD MAGIC NUMBER
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? y
本例中,回答y(yes),fsck命令将更新文件系统超级块中的信息。
使用超级块备份
超级块崩溃会使文件系统不可挂载。当如“Can’t mount file_system_name”(不能挂载file_system_name) 或  “device_name is not this fstype”(设备名不是该文件系统类型)的消息出现时,文件系统不可用。
Can’t mount /dev/dsk/c0t0d0s7
此消息出现在系统启动过程中或手动挂载文件系统时。
如果fsck命令由于崩溃的超级块而失败,会出现一条消息,告诉你执行fsck命令,使用超级块备份来恢复文件系统。使用-o选项与-b标志后跟备份的超级块号执行fsck命令。每个文件系统都在块号32处有个备份的替用超级块。
下面的命令使用备份的超级块:
# fsck -o b=32 /dev/rdsk/c1t3d0s0
Alternate super block location: 32.
** /dev/rdsk/c1t3d0s0
** Currently Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
171 files, 3762 used, 5984 free (79 frags, 748 blocks, 0.1% fragmentation)
*****FILE SYSTEM WAS MODIFIED*****
fsck工具会比较备份超级块与实际文件系统的信息,并尝试重建主超级块。然而,如果文件系统的第一个超级块其损坏的一部分时,它是不可用的。这时需要选择另一个备份的超级块以继续fsck命令。
要列出所有替代的备份的超级块的位置,运行newfs -N命令。
注意:该方法在文件系统是使用newfs默认参数创建时可用。如果文件系统不是使用默认参数创建的,在执行newfs -N命令时,要加上原来创建文件系统时使用的参数,以得到同样的超级块位置。
使用-N选项,查看可以用于创建新的文件系统而不是实际要创建的文件系统参数(意思就是演示一下你要创建的文件系统的参数)。列表输出的参数中有所有替代超级块备份的位置,这些位置可以在fsck -o b-\=#命令中使用,这里#就是超级块备份的位置(如果一个备份被破坏了,可以试试其它的备份)。
# newfs -N /dev/rdsk/c0t0d0s7
newfs -N /dev/rdsk/c0t0d0s7
/dev/rdsk/c0t0d0s7: 3537040 sectors in 2327 cylinders of 19 tracks, 80 sectors
1727.1MB in 73 cyl groups (32 c/g, 23.75MB/g, 5888 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 48752, 97472, 146192, 194912, 243632, 292352, 341072, 389792,
487232, 535952, 584672, 633392, 730832, 779552, 828272, 876992,
(下略)
#
可以在fsck命令中使用列表中任何一个其它的替代超级块备份号。
# fsck -o b=535952 /dev/rdsk/c0t0d0s7
Alternate super block location: 535952
** /dev/rdsk/c0t0d0s7
** Last Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
7 files, 14 used, 279825 free (17 frags, 347891 blocks, 0.0% fragmentation)
*****FILE SYSTEM WAS MODIFIED*****
#

五   监控文件系统使用状况
系统管理员的一个重要任务就是监控文件系统正常情况下的使用。有三个命令可以使用:
·df 显示自由硬盘块的数量
·du 概括硬盘使用
·quot 概括用户使用文件系统的状况
使用df命令
使用df命令显示文件系统磁盘空间的总量。此命令列出已使用及可用的空间量,及文件系统被使用的容量的百分比。
df命令格式如下:
df -option mount_point
df命令的一些更常用的选项如下:
表3-1 df命令选项部分列表
选项 描述
-a 报告所有的文件系统的使用,包括在/etc/mnttab文件中忽略选项被置位的文件系统条目
-b 以K字节为单位输出自由空间
-e 只输出自由的文件数(即文件系统中的文件数是一定的)
-k 以K字节为单位输出所有的硬盘分配
-h 类似于-k选项,但大小是以更可读的格式输出,如,14K, 234M, 2.7G, 或3.0T
-l 只输出本地文件系统
使用du命令
使用du命令显示文件与目录使用的硬盘块数量。每个硬盘块大小是512字节。其命令格式如下:
du -options directory
表3-3描述du命令的选项
表3-3 du命令选项
选项 描述
-k 以K字节显示磁盘使用
-s 只显示以512字节为单位的,与-k同时使用时,以K字节为单位显示摘要
-a 显示指定目录体系内所有的目录与文件使用的块数
使用quot命令
使用quot命令以K字节显示文件系统中被用户使用的硬盘空间量
 注意:quot命令只能由root用户运行。
其格式如下:
quot -options filesystem
表3-4描述了quot命令的选项。
表3-4 quot命令的选项
选项 描述
-a 报告所有挂载的文件系统
-f 包括文件数
 
阅读(1680) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~