Solaris文件系统(02, 05)
Solaris文件系统概述
文件系统是一种分层目录结构,用于组织和存储文件以及其他目录。
目录或文件夹是用于储存文件和其他目录的容器。
文件是一组离散的数据集合,可采用多种格式进行构造。
这些格式包括特定于体系结构的二进制文件、纯文本文件、特定于应用程序的数据文件等。
根文件系统包含能够在硬件上运行操作系统所需的所有Solaris OS部件。
根文件系统默认是可用的。要让系统能够使用其他文件系统,必须挂载他们,以便将文件系统附加到分层结构的指定目录中。
附加点也被称为挂载点。根文件系统的挂载点是/。
Solaris OS支持以下类型的文件系统。
本地文件系统。这种文件系统允许在固定磁盘、光盘、记忆棒和软盘等存储介质上存储本地数据。
Solaris支持以下本地文件系统:
UFS和ZFS,UNIX文件系统(UFS)和ZFS文件系统是在固定磁盘上使用的典型文件系统,但是它们同样可以在光盘、记忆棒和软盘上使用。
PCFS,PC文件系统(PCFS)允许从Solaris中直接访问DOS格式磁盘上的文件。
HSFS,High Sierra文件系统(USFS)是一种只读形式的UFS,它支持ISO 9600的Rock Ridge扩展。
这种格式不支持硬链接。
分布式文件系统。借助这些文件系统,访问存储在网络服务器上的远程数据就像访问本地系统上的数据一样简单方便。
Solaris支持网络文件系统(NFS),在该文件系统中,服务器可导出共享数据,而客户端则
可以通过网络访问数据。
NFS同时还使用AUTOFS文件系统来自动挂载和卸载文件系统。
伪文件系统。这种文件系统采用与传统文件系统类似的分层形式来呈现虚拟设备。
伪文件系统也被称为虚拟文件系统。Solaris支持以下几种伪文件系统。
LOFS,回送文件系统(LOFS)允许你创建新的伪虚拟文件系统,这样便可以使用其他路径名来访问文件。
TMPFS,临时文件系统(TMPFS)使用交换空间和主内存作为读取和写入文件系统的临时的备用存储库。
这是针对/tmp目录的默认文件系统。
挂载文件系统
必须将文件系统挂载到挂载点之后才能访问它。根文件系统默认已经挂载,因此存储在根文件系统下的文件和目录始终可用。
在挂载文件系统之后,仍然需要根据所有权和权限来访问它。
Solaris提供了一些工具,可帮助管理不同存储介质上的文件系统。
以下基本准则可以帮助你确定如何管理文件系统的挂载。
较不常用的本地或远程文件系统
使用mount命令根据需求手动挂载文件系统。
在/etc/vfstab文件中为文件系统添加一个条目,指定在引导时不应挂载这些文件系统。
常用本地文件系统。在/etc/vfstab文件中为文件系统添加一个条目,指定在采用多用户状态引导时应挂载这些文件系统。
常用远程文件系统
在/etc/vfstab文件中为文件系统添加一个条目,指定在采用多用户状态引导时应挂载这些文件系统。
配置autofs,它在指定文件系统被访问时会自动挂载该文件系统。未访问文件系统时autofs会自动卸载它。
本地ZFS文件系统。使用zfs mount命令或设置mountpoint属性。
可移除介质。将介质连接到系统,或者将介质插入到驱动器中并运行volcheck命令。
大多数文件系统都可以使用mount或umount命令进行挂载和卸载。
同样可以使用mountall和umountall命令来挂载或卸载/etc/vfstab文件中指定的所有文件系统。
mount –v命令用于显示系统中当前挂载的文件系统的信息。
此信息检索自/etc/mnttab文件,该文件用于存储当前挂载文件系统的信息。
mount –v输出描述设备或文件系统、挂载点、文件系统类型、挂载选项以及挂载文件系统的日期和时间。
mount –v还会输出以下伪文件系统的信息:devfs、dev、ctfs、proc、mntfs、objfs、fd和tmpfs。
# 这是一个ZFS文件系统
[root@solaris101:/]# mount -v
rpool/ROOT/s10x_u9wos_14a on / type zfs read/write/setuid/devices/dev=2d50002 on Wed Dec 31 18:00:00 1969
/devices on /devices type devfs read/write/setuid/devices/dev=4840000 on Mon Jun 17 19:38:28 2013
ctfs on /system/contract type ctfs read/write/setuid/devices/dev=48c0001 on Mon Jun 17 19:38:28 2013
proc on /proc type proc read/write/setuid/devices/dev=4880000 on Mon Jun 17 19:38:28 2013
mnttab on /etc/mnttab type mntfs read/unix文件系统write/setuid/devices/dev=4900001 on Mon Jun 17 19:38:28 2013
swap on /etc/svc/volatile type tmpfs read/write/setuid/devices/xattr/dev=4940001 on Mon Jun 17 19:38:28 2013
objfs on /system/object type objfs read/write/setuid/devices/dev=4980001 on Mon Jun 17 19:38:28 2013
sharefs on /etc/dfs/sharetab type sharefs read/write/setuid/devices/dev=49c0001 on Mon Jun 17 19:38:28 2013
/usr/lib/libc/libc_hwcap1.so.1 on /lib/libc.so.1 type lofs read/write/setuid/devices/dev=2d50002 on Mon Jun 17 19:38:42 2013
fd on /dev/fd type fd read/write/setuid/devices/dev=4b40001 on Mon Jun 17 19:38:48 2013
swap on /tmp type tmpfs read/write/setuid/devices/xattr/dev=4940002 on Mon Jun 17 19:38:49 2013
swap on /var/run type tmpfs read/write/setuid/devices/xattr/dev=4940003 on Mon Jun 17 19:38:49 2013
rpool/export on /export type zfs read/write/setuid/devices/nonbmand/exec/xattr/atime/dev=2d50003 on Mon Jun 17 19:38:53 2013
rpool/export/home on /export/home type zfs read/write/setuid/devices/nonbmand/exec/xattr/atime/dev=2d50004 on Mon Jun 17 19:38:53 2013
rpool on /rpool type zfs read/write/setuid/devices/nonbmand/exec/xattr/atime/dev=2d50005 on Mon Jun 17 19:38:53 2013
卸载文件系统
卸载文件系统会让文件系统不可用并从/etc/mnttab文件中将其条目删除,该文件保存当前挂载的文件系统和资源的相关信息。
一些文件管理任务不能再已挂载的文件系统上执行,比如使用fsck命令检查并修复文件系统。
文件系统在繁忙时不可卸载,即某个程序正在访问该文件系统中的目录或文件,或者该文件系统正被共享时。
要让文件系统可以卸载,你可以采取以下操作:
切换到不同文件系统中的目录。
注销系统。
使用fuser命令查并停止正在访问文件系统的任何进程。
取消共享文件系统。
使用umount –f命令强制卸载繁忙的文件系统。不建议使用此操作,因为它会造成数据丢失。-f选项仅使用于UFS和NFS文件系统。
要在卸载之前停止正在访问某个文件系统的所有进程,最安全的方法是使用fuser命令报告当前正在访问特定文件系统的进程。
获知这些进程后,向各进程发送SIGKILL。
# 打开一个终端进入/export/home目录
# 打开另一个终端
# 显示/export/home文件系统因繁忙而无法卸载
[root@solaris101:/]$ umount /export/home
cannot unmount '/export/home': Device busy
# 获取当前正在访问的文件系统的进程的ID
[root@solaris101:/]$ fuser -c /export/home
/export/home:      798c
# 查特定的进程
[root@solaris101:/]$ ps -ef | grep 798
    root  798  792  0 19:39:58 pts/2      0:00 -bash
# 关闭该运行的进程
[root@solaris101:/]$ fuser -c -k /export/home
/export/home:      798c
# 制裁文件系统
[root@solaris101:/]$ umount /export/home   
使用/etc/vfstab文件
要避免每次在访问文件系统时都手动挂载它们,你需要更新虚拟文件系统表/etc/vfstab.。
该文件包含文件系统列表以及如何挂载他们的信息。你可以使用/etc/vfstab文件完成以下任务:
指定文件系统在系统引导时自动挂载。
仅指定挂载点名称来挂载文件系统。
系统将根据你在安装时所做的选择创建/etc/vfstab文件。你可以随时编辑系统上的/etc/vfstab文件。
要添加条目,请指定以下信息:
文件系统所在的设备;
文件系统挂载点;
文件系统类型;
系统在引导时是否自动挂载文件系统;
挂载选项。
[root@solaris101:/export/home]$ cat /etc/vfstab
#device        device          mount          FS      fsck    mount  mount
#to mount      to fsck        point          type    pass    at boot options
#
fd      -      /dev/fd fd      -      no      -
/proc  -      /proc  proc    -      no      -
/dev/zvol/dsk/rpool/swap        -      -      swap    -      no      -
/devices        -      /devices        devfs  -      no      -
sharefs -      /etc/dfs/sharetab      sharefs -      no      -
ctfs    -      /system/contract        ctfs    -      no      -
objfs  -      /system/object  objfs  -      no      -
swap    -      /tmp    tmpfs  -      yes    -
确定文件系统类型
你可以采用以下方式来确定文件系统的类型:
使用fstyp命令;
查看/etc/vfstab文件中的FS字段;
查看本地文件系统的/etc/default/fs文件的内容;
查看其他文件系统的/etc/dfs/fstypes文件的内容。
如果你知道包含文件系统的磁盘分片的原始设备名称,可以使用fstyp命令来确定文件系统的类型。
你还可以通过查看mount –v命令的输出来确定文件系统的类型,或者使用grep命令在一个文件系统表中查文件系统条目。
如果已挂载文件系统,则搜索/etc/mnttab文件;如果未挂载文件系统,则搜索/etc/vfstab文件。
[root@solaris101:/export/home]$ cat /etc/vfstab
#device        device          mount          FS      fsck    mount  mount
#to mount      to fsck        point          type    pass    at boot options
#
fd      -      /dev/fd fd      -      no      -
/proc  -      /proc  proc    -      no      -
/dev/zvol/dsk/rpool/swap        -      -      swap    -      no      -
/devices        -      /devices        devfs  -      no      -
sharefs -      /etc/dfs/sharetab      sharefs -      no      -
ctfs    -      /system/contract        ctfs    -      no      -
objfs  -      /system/object  objfs  -      no      -
swap    -      /tmp    tmpfs  -      yes    -
# 查看/etc/mnttab
[root@solaris101:/export/home]$ cat /etc/mnttab
rpool/ROOT/s10x_u9wos_14a      /      zfs    dev=2d50002    0
/devices        /devices        devfs  dev=4840000    1371518880
ctfs    /system/contract        ctfs    dev=48c0001    1371518880
proc    /proc  proc    dev=4880000    1371518880
mnttab  /etc/mnttab    mntfs  dev=4900001    1371518880
swap    /etc/svc/volatile      tmpfs  xattr,dev=4940001      1371518880
objfs  /system/object  objfs  dev=4980001    1371518880
sharefs /etc/dfs/sharetab      sharefs dev=49c0001    1371518880
/usr/lib/libc/libc_hwcap1.so.1  /lib/libc.so.1  lofs    dev=2d50002    1371518896
fd      /dev/fd fd      rw,dev=4b40001  1371518902
swap    /tmp    tmpfs  xattr,dev=4940002      1371518903
swap    /var/run        tmpfs  xattr,dev=4940003      1371518903
rpool/export    /export zfs    rw,devices,setuid,nonbmand,exec,xattr,atime,dev=2d50003 1371518907
rpool/export/home      /export/home    zfs    rw,devices,setuid,nonbmand,exec,xattr,atime,dev=2d50004 1371518907
rpool  /rpool  zfs    rw,devices,setuid,nonbmand,exec,xattr,atime,dev=2d50005 1371518907
-hosts  /net    autofs  nosuid,indirect,ignore,nobrowse,dev=4bc0001    1371518911
auto_home      /home  autofs  indirect,ignore,nobrowse,dev=4bc0002    1371518911
solaris101.cuug:vold(pid479)        /vol    nfs    ignore,noquota,dev=4c00001      1371518914
监控文件系统

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。