以 PDF 格式下载本书 (3503 KB)
第 19 章 挂载和取消挂载文件系统(任务)本章介绍如何在 Solaris OS 中挂载和取消挂载文件系统。 以下是本章中的逐步说明列表。 挂载文件系统概述创建文件系统后,需要使其对系统可用,以便您可以使用它。通过挂载文件系统可使该文件系统可用,这会将文件系统连接到指定挂载点上的系统目录树。始终会挂载根 (/) 文件系统。 下表提供了根据文件系统的使用方法对其进行挂载的指南。
如有必要,可以通过将包含文件系统的可移除介质插入到驱动器中并运行 volcheck 命令,挂载该介质。有关挂载可移除介质的更多信息,请参见第 1 章,管理可移除介质(概述)。 用于挂载和取消挂载文件系统的命令下表列出了 /usr/sbin 目录中用于挂载和取消挂载文件系统的命令。 表 19–1 用于挂载和取消挂载文件系统的命令
在使用 mount 和 mountall 命令时,请牢记以下要点:
常用挂载选项下表介绍了可以使用 mount -o 选项指定的常用选项。如果指定多个选项,请使用逗号(无空格)将其分隔。例如,-o ro,nosuid。 有关每种文件系统类型的挂载选项的完整列表,请参阅特定的挂载手册页(例如 mount_ufs(1M))。 表 19–2 常用的 -o 挂载选项
/etc/vfstab 文件的字段说明/etc/vfstab 文件中的项包含七个字段,下表介绍了这些字段。 表 19–3 /etc/vfstab 文件的字段说明
注 – 必须为 /etc/vfstab 文件中的每个字段输入一个值。如果某个字段没有值,请务必指定一个短划线 (-)。否则,系统可能无法成功引导。同样,字段值也不能为空白。 挂载文件系统以下各节介绍如何通过在 /etc/vfstab 文件中添加项或从命令行使用 mount 命令来挂载文件系统。 如何确定挂载的文件系统
-v 可以详细模式显示已挂载文件系统的列表。 示例 19–1 确定挂载的文件系统此示例说明如何使用 mount 命令显示有关当前挂载的文件系统的信息。
|
# mkdir /mount-point |
编辑 /etc/vfstab 文件并添加项。请确保执行以下操作:
有关 /etc/vfstab 字段各项的详细信息,请参见表 19–3。
由于在引导过程中内核会将根 (/) 文件系统挂载为只读,因此只有 remount 选项(以及可以与 remount 结合使用的选项)会影响 /etc/vfstab 文件中的根 (/) 项。
以下示例说明如何将磁盘片 /dev/dsk/c0t3d0s7 作为 UFS 文件系统挂载到挂载点 /files1。原始字符设备 /dev/rdsk/c0t3d0s7 会指定为 device to fsck。fsck pass 值为 2 意味着将检查文件系统,但不是按顺序检查。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # /dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /files1 ufs 2 yes - |
以下示例说明如何将 /export/man 目录作为 NFS 文件系统从系统 pluto 挂载到挂载点 /usr/man 上。由于该目录是 NFS 文件系统,因此既不会指定 device to fsck 也不会指定 fsck pass。在本示例中,mount options 为 ro(只读)和 soft。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options pluto:/export/man - /usr/man nfs - yes ro,soft |
以下示例说明如何将根 (/) 文件系统挂载到回送挂载点 /tmp/newroot 上。必须始终在 LOFS 文件系统中的文件系统之后挂载 LOFS 文件系统。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # / - /tmp/newroot lofs - yes - |
成为超级用户或承担等效角色。
挂载 /etc/vfstab 文件中列出的文件系统。
# mount /mount-point |
其中 /mount-point 指定了 /etc/vfstab 文件的 mount point 或 device to mount 字段中的项。通常,指定挂载点较为容易。
以下示例说明如何挂载 /etc/vfstab 文件中列出的 /usr/dist 文件系统。
# mount /usr/dist |
以下示例说明在已挂载文件系统的情况下使用 mountall 命令时显示的消息。
# mountall
/dev/rdsk/c0t0d0s7 already mounted
mount: /tmp already mounted
mount: /dev/dsk/c0t0d0s7 is already mounted, /export/home is busy,
or the allowable number of mount points has been exceeded
|
使用 mountall 命令时,在挂载具有 device to fsck 项的所有文件系统之前,将对其进行检查和修复(如有必要)。
以下示例说明如何挂载 /etc/vfstab 文件中列出的所有本地系统。
# mountall -l # mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror=... /devices on /devices read/write/setuid/dev=46c0000 on Thu Sep ... /system/contract on ctfs read/write/setuid/devices/dev=43c0001 ... /usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/... /proc on /proc read/write/setuid/dev=4700000 on Thu Sep 2 ... /etc/mnttab on mnttab read/write/setuid/dev=47c0000 on Thu Sep 2 ... /etc/svc/volatile on swap read/write/setuid/devices/xattr/dev=4480001 ... /system/object on objfs read/write/setuid/devices/dev=44c0001 ... /dev/fd on fd read/write/setuid/dev=4800000 on Thu Sep 2 ... /var/run on swap read/write/setuid/xattr/dev=1 on Thu Sep 2 ... /tmp on swap read/write/setuid/xattr/dev=2 on Thu Sep 2 ... /stuff on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/xattr... /export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/... |
以下示例说明如何挂载 /etc/vfstab 文件中列出的所有远程文件系统。
# mountall -r # mount / on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror=... /devices on /devices read/write/setuid/dev=46c0000 on Thu Sep ... /system/contract on ctfs read/write/setuid/devices/dev=43c0001 ... /usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/... /proc on /proc read/write/setuid/dev=4700000 on Thu Sep 2 ... /etc/mnttab on mnttab read/write/setuid/dev=47c0000 on Thu Sep 2 ... /etc/svc/volatile on swap read/write/setuid/devices/xattr/dev=4480001 ... /system/object on objfs read/write/setuid/devices/dev=44c0001 ... /dev/fd on fd read/write/setuid/dev=4800000 on Thu Sep 2 ... /var/run on swap read/write/setuid/xattr/dev=1 on Thu Sep 2 ... /tmp on swap read/write/setuid/xattr/dev=2 on Thu Sep 2 ... /stuff on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/xattr... /stuff on /dev/dsk/c0t0d0s5 read/write/setuid/intr/largefiles/xattr... /export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/... /home/rimmer on pluto:/export/home/rimmer remote/read/write/setuid/xattr/... |
成为超级用户或承担等效角色。
如有必要,请为要挂载的文件系统创建挂载点。
# mkdir /mount-point |
本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。
挂载 UFS 文件系统。
# mount [-o mount-options] /dev/dsk/device-name /mount-point |
指定可以用来挂载 UFS 文件系统的挂载选项。有关选项的列表,请参见表 19–2 或 mount_ufs(1M)。
指定包含文件系统的片的磁盘设备名称(例如 /dev/dsk/c0t3d0s7)。 要查看磁盘的片信息,请参见如何显示磁盘片信息。
指定要挂载文件系统的目录。
以下示例说明如何将 /dev/dsk/c0t3d0s7 挂载到 /files1 目录上。
# mount /dev/dsk/c0t3d0s7 /files1 |
挂载文件系统时,缺省情况下会选用 largefiles 选项。使用此选项可以创建大于 2 GB 的文件。一旦文件系统包含大文件,就无法使用 nolargefiles 选项重新挂载文件系统或将其挂载到运行 Solaris 2.6 或兼容版本的系统上,直到删除任何大文件并运行 fsck 命令将状态重置为 nolargefiles 为止。
此过程假定文件系统包含在 /etc/vfstab 文件中。
如有必要,请为要挂载的文件系统创建挂载点。
# mkdir /mount-point |
本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。
确保文件系统中不存在大文件。
# cd /mount-point
# find . -xdev -size +20000000 -exec ls -l {} \;
|
其中 /mount-point 用于标识要检查是否包含大文件的文件系统的挂载点。
如有必要,请删除此文件系统中的任何大文件或将其移动到其他文件系统。
取消挂载文件系统。
# umount /mount-point |
重置文件系统状态。
# fsck /mount-point |
使用 nolargefiles 选项重新挂载文件系统。
# mount -o nolargefiles /mount-point |
以下示例说明如何检查 /datab 文件系统并使用 nolargefiles 选项将其重新挂载。
# cd /datab
# find . -xdev -size +20000000 -exec ls -l {} \;
# umount /datab
# fsck /datab
# mount -o nolargefiles /datab
|
成为超级用户或承担等效角色。
如有必要,请为要挂载的文件系统创建挂载点。
# mkdir /mount-point |
本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。
确保资源(文件或目录)在服务器中可用。
要挂载 NFS 文件系统,必须使用 share 命令使资源在服务器中可用。有关如何共享资源的信息,请参见《系统管理指南:网络服务》中的“关于 NFS 服务”。
挂载 NFS 文件系统。
# mount -F nfs [-o mount-options] server:/directory /mount-point |
指定可以用来挂载 NFS 文件系统的挂载选项。有关常用的 mount 选项的列表,请参见表 19–2;有关选项的完整列表,请参见 mount_nfs(1M)。
指定包含共享资源的服务器主机名,以及要挂载的文件或目录的路径。
指定要挂载文件系统的目录。
以下示例说明如何将 /export/packages 目录从服务器 pluto 挂载到 /mnt 上。
# mount -F nfs pluto:/export/packages /mnt |
使用以下过程可从硬盘挂载 PCFS (DOS) 文件系统。
成为超级用户或承担等效角色。
如有必要,请为要挂载的文件系统创建挂载点。
# mkdir /mount-point |
本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。
挂载 PCFS 文件系统。
# mount -F pcfs [-o rw | ro] /dev/dsk/device-name:logical-drive /mount-point |
指定可以将 PCFS 文件系统挂载为读/写 (rw) 还是只读 (ro)。如果不指定此选项,则缺省情况下使用 rw。
指定整个磁盘的设备名称(例如 /dev/dsk/c0t0d0p0)。
指定 DOS 逻辑驱动器名(c 到 z)或驱动器号(1 到 24)。驱动器 c 相当于驱动器 1,表示驱动器上的主 DOS 片。所有其他字母或数字均表示扩展的 DOS 片内的 DOS 逻辑驱动器。
指定要挂载文件系统的目录。
请注意,必须使用冒号分隔 device-name 和 logical-drive。
以下示例说明如何将主 DOS 片中的逻辑驱动器挂载到 /pcfs/c 目录上。
# mount -F pcfs /dev/dsk/c0t0d0p0:c /pcfs/c |
以下示例说明如何在 /mnt 目录上将扩展的 DOS 片中的第一个逻辑驱动器挂载为只读。
# mount -F pcfs -o ro /dev/dsk/c0t0d0p0:2 /mnt |
取消挂载文件系统会将该文件系统从文件系统挂载点删除,并从 /etc/mnttab 文件中删除相应项。部分文件系统管理任务无法在已挂载的文件系统上执行。出现以下情况时,应取消挂载文件系统:
文件系统不再需要,或者已被包含更新的软件的文件系统所替换。
需要使用 fsck 命令检查和修复文件系统。有关 fsck 命令的更多信息,请参见第 22 章,检查 UFS 文件系统一致性(任务)。
进行完整备份之前,应取消挂载文件系统。有关进行备份的更多信息,请参见第 25 章,备份文件和文件系统(任务)。
在系统关闭过程中,会自动取消挂载文件系统。
在紧急情况下,可以使用 umount -f 选项强制取消挂载繁忙的文件系统。建议在正常情况下不要使用此做法,因为取消挂载包含打开文件的文件系统可能会导致数据丢失。此选项只能用于 UFS 和 NFS 文件系统。
取消挂载文件系统的先决条件包括:
您必须是超级用户或承担等效角色。
必须有一个文件系统可用于取消挂载。不能取消挂载繁忙的文件系统。如果出现以下任一情况,则认为文件系统繁忙:用户正在访问文件系统中的目录,程序打开了该文件系统中的文件,文件系统正在被共享。通过执行以下操作,可以使文件系统可用于取消挂载:
转到其他文件系统中的目录。
从系统中注销。
使用 fuser 命令列出正在访问文件系统的所有进程并将其停止(如有必要)。有关更多详细信息,请参见如何停止访问文件系统的所有进程。
如果需要取消挂载用户正在使用的文件系统,请通知他们。
取消共享文件系统。有关取消共享文件系统的信息,请参见 unshare(1M)。
要验证是否已取消挂载一个或多个系统,请检查 mount 命令的输出。
$ mount | grep unmounted-file-system $ |
列出正在访问文件系统的所有进程,以便确定要停止的进程。
# fuser -c [ -u ] /mount-point |
针对文件系统挂载点的文件以及那些已挂载文件系统内的任何文件进行报告。
显示每个进程 ID 的用户登录名。
指定要为其停止进程的文件系统的名称。
停止正在访问文件系统的所有进程。
# fuser -c -k /mount-point |
SIGKILL 会发送到正在使用文件系统的每个进程。
在没有首先警告用户的情况下,不应停止用户进程。
验证是否没有进程正在访问文件系统。
# fuser -c /mount-point |
以下示例说明如何停止正在使用 /export/home 文件系统的进程 4006c。
# fuser -c /export/home /export/home: 4006c # fuser -c -k /export/home /export/home: 4006c # fuser -c /export/home /export/home: |
使用以下过程可取消挂载除根 (/)、/usr 或 /var 文件系统之外的文件系统。
根 (/)、/usr 和 /var 文件系统只能在关机过程中取消挂载。系统需要有这些文件系统才能正常工作。
确保已满足取消挂载文件系统的先决条件中列出的先决条件。
取消挂载文件系统。
# umount /mount-point |
其中 /mount-point 是要取消挂载的文件系统的名称。这可以是以下各项之一:
挂载文件系统的目录的名称
文件系统的设备名称路径
NFS 文件系统的资源
LOFS 文件系统的回送目录
以下示例说明如何取消挂载本地起始文件系统。
# umount /export/home |
以下示例说明如何取消挂载片 7 上的文件系统。
# umount /dev/dsk/c0t0d0s7 |
以下示例说明如何强制取消挂载 /export 文件系统。
# umount -f /export # |
以下示例说明如何取消挂载 /etc/vfstab 文件中除根 (/)、/proc、/var 和 /usr 文件系统之外的所有文件系统。
# umountall |
除繁忙的那些文件系统以外,将取消挂载其他所有文件系统。