在 Oracle® Solaris 11.2 中管理文件系统

退出打印视图

更新时间: 2014 年 7 月
 
 

挂载和取消挂载 Oracle Solaris 文件系统

ZFS 文件系统可自动进行挂载和取消挂载。通过挂载传统 UFS 文件系统可使该文件系统可用,这会将文件系统附加到指定挂载点的系统目录树。始终会挂载根目录 (/) 文件系统。

下表提供了有关根据您对文件系统的使用方法挂载文件系统的指南。

所需挂载类型
建议挂载方法
无需频繁挂载的本地或远程文件系统。
从命令行手动键入的 mount 命令。
需要频繁挂载的本地传统 UFS 文件系统。本地 ZFS 文件系统通过 SMF 服务自动挂载。
/etc/vfstab 文件,在多用户状态下引导系统时自动挂载文件系统。
需要频繁挂载的远程传统 UFS 文件系统,如起始目录。
  • /etc/vfstab 文件,在多用户状态下引导系统时自动挂载文件系统。

  • autofs,当您访问文件系统时自动挂载文件系统,或当您更改到另一目录时取消挂载文件系统。

有关挂载可移除介质的更多信息,请参见在 Oracle Solaris 11.2 中管理设备 中的第 14  章 管理可移除介质

可以使用 mount 命令来确定已经挂载哪些文件系统:

$ mount [ -v ]

–v 以详细模式显示已挂载文件系统的列表。

示例 2-6  确定哪些是已挂载文件系统

此示例说明如何使用 mount 命令显示有关当前已挂载文件系统的信息。

$ mount
/ on rpool/ROOT/zfsBE read/write/setuid/devices/rstchown/dev=3390002 on Tue ...
/devices on /devices read/write/setuid/devices/rstchown/dev=8580000 on Tue May 15 ...
/dev on /dev read/write/setuid/devices/rstchown/dev=85c0000 on Tue May 15 14:49:01 2012
/system/contract on ctfs read/write/setuid/devices/rstchown/dev=8680001 on Tue May 15 ...
/proc on proc read/write/setuid/devices/rstchown/dev=8600000 on Tue May 15 14:49:01 2012
/etc/mnttab on mnttab read/write/setuid/devices/rstchown/dev=86c0001 on Tue May 15 14:49:01 ...
/system/volatile on swap read/write/setuid/devices/rstchown/xattr/dev=8700001 on Tue May 15 ...
/system/object on objfs read/write/setuid/devices/rstchown/dev=8740001 on Tue May 15 ...
/etc/dfs/sharetab on sharefs read/write/setuid/devices/rstchown/dev=8780001 on Tue May 15 ...
/lib/libc.so.1 on /usr/lib/libc/libc_hwcap2.so.1 read/write/setuid/devices/rstchown/dev ...
/dev/fd on fd read/write/setuid/devices/rstchown/dev=8880001 on Tue May 15 14:49:29 2012
/var on rpool/ROOT/zfsBE/var read/write/setuid/devices/rstchown/nonbmand/exec/xattr/atime/ ...
/tmp on swap read/write/setuid/devices/rstchown/xattr/dev=8700002 on Tue May 15 14:49:29 2012
/var/share on rpool/VARSHARE read/write/setuid/devices/rstchown/nonbmand/exec/xattr/atime/ ...
/home/rimmer on pluto:/export/home/rimmer remote/read/write/setuid/xattr/...

此示例说明如何使用 zfs mount 命令显示有关当前已挂载的 ZFS 文件系统的信息。

$ zfs mount
rpool/ROOT/zfsBE                /
rpool/ROOT/zfsBE                /var
rpool/VARSHARE                  /var/share
tank/home                       /tank/home

/etc/vfstab 文件的字段说明

/etc/vfstab 文件中的项包含七个字段,下表为这些字段的说明。

表 2-1  /etc/vfstab 文件的字段说明
字段名
说明
device to mount
此字段确定了以下内容之一:
  • 本地传统 UFS 文件系统的块设备名称(例如 /dev/dsk/c8t1d0s7)。

  • 远程文件系统的资源名称(例如 myserver:/export/home)。

    为远程系统资源添加条目后,请确保启用了以下服务。

    # svcs -a | grep nfs/client
    disabled       May_14   svc:/network/nfs/client:default
    # svcadm enable svc:/network/nfs/client:default

    有关 NFS 的更多信息,请参见在 Oracle Solaris 11.2 中管理网络文件系统

  • 交换卷(例如 /dev/zvol/dsk/rpool/swap)。

  • 虚拟文件系统的目录。

device to fsck
device to mount 字段所确定的传统 UFS 文件系统对应的原始(字符)设备名称(例如 /dev/rdsk/c8t1d0s7)。此字段确定了 fsck 命令使用的原始接口。若诸如只读文件系统或远程文件系统之类的文件系统没有适用的设备,请使用破折号 (-)。
mount point
确定要挂载传统或远程文件系统的位置(例如 /data)。
FS type
确定文件系统的类型。
fsck pass
fsck 命令用于确定是否检查传统 UFS 文件系统的传送号。如果此字段包含破折号 (-),则不会检查文件系统。目前,在引导过程中,/etc/vfstab 文件中的 fsck pass 值会被忽略。
如果此字段包含零,则不会检查传统 UFS 文件系统。如果此字段包含大于零的值,则始终会检查 UFS 文件系统。
对于此字段中值为 1 的所有传统 UFS 文件系统,将按它们在 vfstab 文件中出现的顺序进行检查(每次检查一个)。如果在 fsck pass 值大于 1 的多个 UFS 文件系统上运行 fsck 命令并且使用了整理选项 (–o p),则 fsck 命令自动并行检查不同磁盘上的文件系统,以最大程度地提高效率。否则,传送号的值不起任何作用。
mount at boot
设置为 yesno,以指示在引导系统时 mountall 命令是否应该自动挂载文件系统。请注意,此字段与 autofs 无关。对于诸如 /proc/dev/fd 之类的虚拟文件系统,应始终将此字段设置为 no
mount options
用于挂载文件系统的一系列以逗号分隔的选项(中间无空格)。使用破折号 (-) 表示没有选项。有关更多信息,请参见 vfstab(4)

注 - 您必须在 /etc/vfstab 文件的每个字段中都输入一个值。如果某个字段没有值,请务必指定一个破折号 (-)。否则,系统可能无法成功引导。同样,字段值也不能为空白空间。

取消挂载 Oracle Solaris 文件系统的先决条件

取消挂载文件系统的先决条件包括:

  • 您必须是管理员。

  • 您不能取消挂载正忙的文件系统。如果出现以下任一情况,则认为文件系统正忙:用户正在访问文件系统中的目录;程序打开了文件系统中的文件;正在共享文件系统。

    通过执行以下操作,可以使文件系统处于可取消挂载状态:

    • 更改到另一不同文件系统的目录。

    • 注销该系统。

    • 使用 fuser 命令列出正在访问该文件系统的所有进程,然后停止这些进程(如有必要)。有关更多详细信息,请参见如何停止正在访问文件系统的所有进程

      如果您需要取消挂载用户正在使用的文件系统,请通知他们。

    • 取消共享该文件系统。

      • 例如:

        # zfs set share.nfs=off tank/fs1
      • 请使用传统的取消共享方法。有关信息,请参见 unshare(1M)

要验证是否已取消挂载一个或多个文件系统,请检查 mount 命令的输出:

$ mount | grep unmounted-file-system