Solaris中的文件系统

来源:岁月联盟 编辑:zhu 时间:2008-03-29
Solaris中的文件系统内容简介:文件系统的工作 当用户建立了一个文件系统,用户必须将其绑定到Solaris操作环境的目录树中的装配点来。装配点是一个文件系统连接点的目录。文件系统一般引用他们的装配点的名字。 在Solaris操作环境中,用户使用mounting进程来 文件系统的工作

  当用户建立了一个文件系统,用户必须将其绑定到Solaris操作环境的目录树中的装配点来。装配点是一个文件系统连接点的目录。文件系统一般引用他们的装配点的名字。

  在Solaris操作环境中,用户使用mounting进程来绑定单独的文件系统到他们的装配点所在的目录树。这个动作是文件系统可以被系统或者用户所理解

  用户使用unmounting进程来从目录树中的装配点上分离文件系统。这个动作使文件系统不能被系统或者用户所用。

  分辨已经装配的文件系统

  mount 命令

  用户可以决定当前的文件系统哪个是通过mount命令装配在系统上的,哪个是处于/sbin目录中的。

  /etc/mnttab文件

  mount命令维护/etc/mnttab文件,已经装配的文件系统列表

  每次一个文件系统被装配后,就通过mount命令在这个文件中添加一个条目。只要文件系统被卸载下来,这个条目就会从mnttab文件中删除。

  Mount Point:文件系统绑定在root文件系统的装配点名或者目录名
  Device Name:已经装配在装配点的设备的名字。这个块设备是文件系统的物理定位
  Mount Options:列出文件系统有效的装配选项
  Date and Time Mounted:文件系统被装配到系统中的时间

  在/etc/mnttab中的装配表的改变
  在以前Solaris操作环境版本,/etc/mnttab是一个保存已经装配了的文件系统的信息的文本文件。在Solaris 8,这个文件是一个直接从kernel中提供关于在本地主机已经装配的文件系统的只读信息的mntfs文件系统

  /var/run文件系统
  在Solaris 8操作环境中,/var/run文件系统是一个新的tmpfs已装配的文件系统。

  这是一个临时系统文件的仓库,在这个Solaris版本中,不需要通过系统重起。他是装配在一个相当于基于磁盘的伪文件系统。

  /var/run不需要管理,出于安全方面考虑,他的所有者是root。

  /tmp目录继续保存临时文件。

  装配文件系统

  /usr/sbin/mount命令

  mount命令不是仅仅列出哪个文件系统当前是已经装配了的,他同样提供root用户一个方法去装配文件系统。

  用户可以通过root运行mount命令来手动装配文件系统,或者系统可以自动的在启动之后参考/etc/vfstab文件装配文件系统

  命令格式

  mount [option(s)] device_name  mount_point

  手动装配本地文件系统
  要手动装配一个本地文件系统,用户需要知道文件系统所在的设备的名字,还有他的安装点的目录名

  # mount /dev/dsk/c0t0d0s7 /export/home

  在这里例子中,装配文件系统包括下面默认的动作:read/write,setuid,nologging,和largefiles。

  read/write指出文件权限。在文件系统中,访问是基于文件和目录的权限的。(hsfs默认是只读的)
  setuid在文件系统中执行了setuid许可的程序
  nologging使ufs文件系统的不能保存日志
  largefiles允许建立大于2GB的文件。加入次选项可以在以装配的文件系统中包含大文件。

  使用mount命令的选项

  当在命令行使用mount命令的选项时,要在选项前加“-o”标志。当要使用多个选项时,在-o后面的选项之间加入逗号。

  Mount –o options,options,… device_name mount_point

  一些选项用于装配本地文件系统,包括:ro,nosuid,noatime,nolargefiles,和logging

  ro:装配的文件系统是只读的。
  nosuid:在文件系统中阻止使用setuid程序。这不能限制建立setuid程序
  noatime:禁止改变文件的最后访问时间,减少在不重要的访问时间的磁盘活动。指定这个选项通常是有重要文件访问时间和启动全部的进程
  nolargefiles防止文件系统被装配后包含一个或者多个大文件。
  如果被装配的文件系统包含大文件,在某一时间包含一个大文件,则此选项失效

  如果文件系统当前包含大文件,并且root需要使用这个选项装配,那么大文件必须从文件系统中移走或者删除。那么用户必须手动运行文件系统检测程序来升级超级块信息。

  如果文件系统在一个时间包含大文件,装配同样失效,一般都要移走或者删除。用户必须运行文件系统检测程序来清除老的信息,并且允许文件系统被装配。
  Logging使一个ufs文件系统可以保存日志。

  UFS文件系统保存日志是一个储存文件系统处理的过程,或者更改整理一个完整的目录或者文件的操作,他们在应用到文件系统之前被记录入日志。当一个处理被保存时,之后一个完整的处理可以被应用或者重新应用到文件系统。

  Ufs日志在文件系统的空余块中。他大约1Mb/Gb,最大到64Mb

  同样ufs日志延伸到最大长度,他开始写处理到文件系统。当文件系统被完整卸载后,ufs日志是空的并且所有处理都写入磁盘。

  UFS保存日志有两个方面的好处。第一,他防止文件系统产生矛盾;因此,可以不去运行烦琐的fsck。第二,用户可以绕过fsck检测,减少如果关闭系统从新启动所需要的时间,除非是规定了次序的关机。

  自动装配文件系统

  虚拟文件系统表:/etc/vfstab

  Solaris操作环境提供几种方法来自动的装配文件系统。

  其中一个方法就是在/etc/vfstab中添加文件系统。这个文件列出了所有在系统启动时需要自动装配的文件系统。

  /etc/vfstab文件还提供用户其他的重要功能。

  如果/etc/vfstab文件包含了装配点和实际物理设备名的映射,root可以指定使用mount命令从哪个装配点手动的装配文件系统。

  /etc/vfstab文件

  默认的/etc/vfstab文件是在Solaris操作环境安装的时候基于用户的选择建立的。

  无论如何,系统管理员可以在任何时候编辑/etc/vfstab文件来添加或者改变条目。

  /etc/vfstab文件每行条目包括7个部分,每个部分利用tab来分开。-(破折号)指出空的区域,注释行的开头有#提示符。

  要添加一行条目,需要下列信息:文件系统所在设备的位置;装配点的名字;文件系统的类型;是否在系统启动的时候自动装配;所有的装配选项。

  Device to mount:被装配的设备块。例如,本地的ufs文件系统:/dev/dsk/c#t#d#s#,或者伪文件系统:/proc
  Device to fsck:被文件系统检测程序检测的raw和字符设备。
  Mount point:装配点
  FS 类型:被装配的文件系统的类型
  Fsck pass:启动时是否使用fsck检测文件系统,在此填写的包括:yes,-,0,no
  Mount at boot:yes使启动时使用mountall来装配文件系统,no则在启动时不装配
  Mount option:

  /usr/sbin/mountall命令

  系统启动时,通过使用/etc/sbin/mountall来读/etc/vfstab文件;并且装配所有/etc/vfstab文件中指定为yes的文件系统。

  # mountall

  只装配所有在/etc/vfstab中指定的本地文件系统

  # mountall –l

  在装配前检测文件系统

  如果文件系统是在一个安全装配并且可用的状态下,在vfsta文件中位于每个文件系统的device to fsck条目和fsck pass号码是通过fsck检测决定的。

  如果文件系统被发现不可用,在尝试装配之前要先进行fsck。任何本地文件系统在fsck pass部分是“-”或者“0”,将不需要检测而直接装配。

  卸载文件系统

  /usr/sbin/umount命令

  从文件系统装配点卸载一个文件系统使用umount命令,同时从/et/mnttab文件中删除相关的条目。

  在已经装配的文件系统上一些文件系统管理任务不能执行。

  如果一个文件系统不在需要了,通常需要卸载下来。如果需要使用fsck检测和修复文件系统,或者如果需要完整的备份时,都需要把文件系统卸载下来。

  手动卸载文件系统使用的是装配点或者目录名

  # umount /export/home
  或者
  # umount /dev/dsk/c0t0d0s7

  自动卸载文件系统

  /usr/sbin/umountall命令

  /etc/mnttab文件同样可以由/usr/sbin/umountall命令在系统关闭的过程中读出来。并且卸载所有的在vfstab文件中指定的文件系统。除了/(root),/usr,/proc,/dev/fd,/var,/var/run,和/tmp。

  手动卸载所有文件系统
  # umountall

  手动卸载所有本地文件系统
  # umountall –l

  指挥卸载一个繁忙的文件系统

  任何文件系统在繁忙的时候是不能被卸载的。Umount和umontall都显示文件系统忙的信息。

  如果下列一种情况存在,文件系统就被认为是繁忙:一个程序正在访问文件系统中的目录;用户在文件系统装配点的目录中;在文件系统中的一个文件是被打开的或者共享的。

  有2个方法可以使一个繁忙的文件系统卸载下来
  。fuser命令:列出所有的访问文件系统的进程,然后kill他们
  。umount –f命令:强制性的卸载一个文件系统

  使用fuser命令
  从正在访问的文件系统中停止所有进程
  1.Root权限,使用下列命令来列出与文件系统相关的进程
  # fuser –cu mount_point
  显示每个当前激活的进程的文件系统名和用户登陆名
  2.Kill所有正在访问文件系统的进程
  # fuser –ck mount_point
  3.检测还有没有进程在访问文件系统
  # fuser –c mount_point
  4.卸载文件系统
  # umount mount_point

  使用umount –f命令

  root权限可以使用umount的-f(强制性)选项强行卸载一个繁忙的文件系统。这是Solaris 8新增加的选项

  # umount –f mount_point

  如果正在打开一个文件,强制卸载文件系统的结果就是丢失数据。可是,这对于卸载远程文件服务器中没有功能的共享的文件系统是非常有用的。

  装配一个新文件系统的过程

  1.设置磁盘硬件。包括设置地址开关和检查连接线
  2.执行重新设置启动以添加对新设备的支持
  3.使用format使用程序对磁盘上的Slice进行分区
  4.使用newfs命令在一个Slice上构造一个新的文件系统
  5.在root文件系统中使用mkdir命令来建立一个目录,作为新文件系统的装配点
  # mkdir /database
  6.使用mount命令手动装配文件系统
  # mount /dev/dsk/c1t3d0s3 /database
  7.检测文件系统是不是已经被装配上了
  # mount
  8.编辑/etc/vfstab文件为新文件系统添加一行条目。这样系统在启动的时候就可以自动装配文件系统。

  移动媒体设备管理

  在软盘和光盘上访问文件系统,Solaris操作环境通过卷管理提供用户一个标准的接口

  卷管理提供三个主要的好处
  。为用户自动装配软盘和光盘
  。不用变成root就可以访问软盘和光盘
  。可以给在网络上的其他系统自动访问到当前插入本地系统的每一个磁盘和光盘

  卷管理服务是由/usr/sbin/vold守护进程控制的。在默认情况下,这个服务通常运行在系统上为普通用户自动管理软盘和光盘。

  卷管理提供光盘的自动检测。可是,他不能检测是否有软盘在软驱中。需要用户运行volcheck命令去指导vold去检测为安装媒体的软盘。

  访问已经装配的软盘和光盘

  为了使用户的对软盘和光盘的工作简单,每个已经装配的设备都通过vold放在一个便于记忆的位置中。

  软盘:在用户插入软盘并且运行volcheck命令后vold自动装配设备
  光盘:当光盘放入驱动器,vold自动的装配设备。

  如果vold检测到已经装配的软盘或者光盘中有文件系统,那么设备就装配在下面描述的目录中。

  第一个软盘驱动器/floppy/floppy0
  第一个光盘驱动器/cdrom/cdrom0

  如果vold检测到已经装配的软盘或者光盘没有包含一个文件系统,则raw设备就使用下列路径

  第一个软盘驱动器/vol/dev/aliases/floppy0
  第一个光盘驱动器/vol/dev/aliases/cdrom0

  当在系统上运行卷管理时,普通用户可以使用下列基本步骤简单的访问软盘和光盘:
  1.插入媒体
  2.如果是软盘,那么使用volcheck命令
  3.对媒体上的文件工作
  4.弹出媒体

  管理卷管理

  限制普通用户对软盘和光盘的访问,root可以中断卷管理服务

  在系统上临时停止卷管理,可以执行下列命令
  # /etc/init.d/volmgt stop
  重新启动卷管理使用下列命令
  # /etc/init.d/volmgt start

  管理卷管理
  有2个设置文件被卷管理使用

  /etc/vold.conf:卷管理设置文件。定义了当媒体插入或者弹出时的动作。什么设备是使用的,什么文件系统是不安全的并且要弹出的。
  /etc/rmmount.conf:rmmount命令设置文件。Rmmount命令当一个光盘或者软盘被插入后,移除执行卷管理守护进程的装配进程的命令

  不利用卷管理访问软盘或者光盘
  当卷管理没有运行,则只有root可以装配和访问软盘或者光盘,使用下列步骤
  1.插入媒体
  2.变成root
  3.如果必要,建立装配点
  4.决定文件系统类型
  5.装配设备时使用适当的装配选项
  6.在媒体上工作
  7.卸载媒体设备
  8.弹出媒体设备
  9.退出root会话

  装配不同类型的文件系统

  不同的文件系统类型有唯一的影响mount命令的功能

  默认的mount命令是假定装配的文件系统是ufs文件系统。可是,当装配不同类型的文件系统时,他的类型必须在命令行中指定出来。

  用户可以在mount命令上使用-F选项来指定装配的文件系统类型。

  指定hsfs文件系统类型

  在root权限下,当卷管理被停止的时候,将一个光盘的文件系统装配上来,使用:
  # mount –F hsfs –o ro /dev/dsk/c0t6d0s0 /cdrom

  指定pcfs文件系统类型
  # mkdir /pcfs
  # mount –F pcfs /dev/diskette /pcfs

  决定一个文件系统的类型

  因为mount命令需要文件系统类型是被指定到适当功能,必须明确指定,或者他将不得不根据下列文件去决定

  。/etc/vfstab的FS type区域
  。/etc/default/fs文件,本地文件系统类型
  。/etc/dfs/fstypes文件,远程文件系统类型

  如果文件系统的类型没有在命令行中指定,mount查看/etc/vfstab来决定文件系统的类型,使用块设备名,raw设备名,装配点的目录名。

  如果通过搜索/etc/vfstab文件不能决定文件系统的类型,则去搜索/etc/default/fs文件和/etc/dfs/fstypes文件。

  默认的本地文件系统是在/etc/default/fs中的LOCAL=fstype中指定的。

  默认的远程文件系统类型是在/etc/dfs/dfstypes文件中指定的

  查找文件系统的类型

  # grep mount_point fs-table

  fstyp命令

  # fstyp /dev/rdsk/c0t0d0s7

图片内容