创建和挂载 Oracle Solaris 文件系统
本节提供有关创建和挂载 Oracle Solaris 文件系统的示例。
如何创建 ZFS 文件系统创建 ZFS 存储池。
以下示例说明如何在一个命令中创建名为 tank 的简单镜像存储池和名为 tank 的 ZFS 文件系统。假定磁盘 /dev/dsk/c1t0d0 和 /dev/dsk/c2t0d0 全部都可使用。# zpool create tank mirror c1t0d0 c2t0d0
创建 ZFS 文件系统。# zfs create tank/fs
新 ZFS 文件系统 tank/fs 可根据需要尽可能使用磁盘空间,并在 /tank/fs 处自动挂载。
确认是否创建文件系统。# zfs list -r tank
NAME USED AVAIL REFER MOUNTPOINT
tank 117K 268G 21K /tank
tank/fs 21K 268G 21K /tank/fs
如何创建和挂载传统 UFS 文件系统
开始之前
请确保已满足以下先决条件:
磁盘必须已格式化并分片。
如果要重建现有的传统 UFS 文件系统,请取消挂载该文件系统。
需要知道将包含文件系统的分片的设备名称。
有关查找磁盘和磁盘分片编号的信息,请参见第 11 章。
有关格式化磁盘和将磁盘分片的信息,请参见第 10 章。创建传统 UFS 文件系统。# newfs [-N] [-b size] [-i bytes] /dev/rdsk/device-name
系统会要求确认。
注意 -执行此步骤之前,请确保为分片指定了正确的设备名称。如果指定错误的分片,则在创建新文件系统时将删除其内容。此错误可能会导致系统出现紧急情况。
要验证是否已创建传统 UFS 文件系统,请检查新文件系统。# fsck /dev/rdsk/device-name
其中 device-name 参数指定包含新文件系统的磁盘设备的名称。
fsck 命令检查新文件系统的一致性、报告所有问题并在修复问题之前进行提示。有关 fsck 命令的更多信息,请参见 fsck(1M)。
挂载传统 UFS 文件系统。# mkdir /directory-name
# mount /dev/dsk/device-name /directory-name
示例 18-2 创建和挂载传统 UFS 文件系统
以下示例说明如何在 /legacy 上创建和挂载 UFS 文件系统 /dev/rdsk/c0t1d0s0。# newfs /dev/rdsk/c0t1d0s0
newfs: construct a new file system /dev/rdsk/c0t1d0s0: (y/n)? y
/dev/rdsk/c0t1d0s0: 286722656 sectors in 46668 cylinders of 48 tracks, 128 sectors
140001.3MB in 2917 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
Initializing cylinder groups:
..........................................................
super-block backups for last 10 cylinder groups at:
285773216, 285871648, 285970080, 286068512, 286166944, 286265376, 286363808,
286462240, 286560672, 286659104
# fsck /dev/rdsk/c0t1d0s0
# mkdir /legacy
# mount /dev/dsk/c0t1d0s0 /legacy
创建传统 UFS 文件系统后……
要在引导时自动挂载传统 UFS 文件系统,请转到如何向 /etc/vfstab 文件添加项。
如何创建和挂载 TMPFS 文件系统如有必要,请创建要作为 TMPFS 文件系统挂载的目录。# mkdir /mount-point
其中 mount-point 是 TMPFS 文件系统的挂载目录。
挂载 TMPFS 文件系统。# mount -F tmpfs [-o size=number] swap mount-point-o size=number
指定 TMPFS 文件系统的大小限制(以 MB 为单位)。
mount-point
指定 TMPFS 文件系统的挂载目录。
要将系统设置为在引导时自动挂载 TMPFS 文件系统,请参见示例 18-4。
验证是否已创建 TMPFS 文件系统。# mount -v
示例 18-3 创建和挂载 TMPFS 文件系统
以下示例说明如何创建、挂载 TMPFS 文件系统 /export/reports 并将其大小限制为 50 MB。# mkdir /export/reports
# chmod 777 /export/reports
# mount -F tmpfs -o size=50m swap /export/reports
# mount -v
示例 18-4 在引导时挂载 TMPFS 文件系统
通过添加 /etc/vfstab 项,可以将系统设置为在引导时自动挂载 TMPFS 文件系统。以下示例说明了 /etc/vfstab 文件中的某一项,该项在引导时将 /export/test 作为 TMPFS 文件系统进行挂载。由于未指定 size=number
选项,因此 /export/test 上的 TMPFS 文件系统的大小仅受可用系统资源的限制。swap - /export/test tmpfs - yes -
如何创建和挂载 LOFS 文件系统如有必要,请创建要作为 LOFS 文件系统挂载的目录。# mkdir loopback-directory
授予新创建的目录适当的权限和所有权。
如有必要,请创建要在其中挂载 LOFS 文件系统的挂载点。# mkdir /mount-point
挂载 LOFS 文件系统。# mount -F lofs loopback-directory /mount-pointloopback-directory
指定要在回送挂载点上挂载的文件系统。
/mount-point
指定 LOFS 文件系统的挂载目录。
验证是否已挂载 LOFS 文件系统。# mount -v
示例 18-5 创建和挂载 LOFS 文件系统
以下示例说明如何创建、挂载并作为回送文件系统测试 /new/dist 目录中的新软件,而无需实际安装该软件。# mkdir /tmp/newroot
# mount -F lofs /new/dist /tmp/newroot
# chroot /tmp/newroot newcommand
示例 18-6 在引导时挂载 LOFS 文件系统
通过向 /etc/vfstab 文件的结尾添加一项,可以将系统设置为在引导时自动挂载 LOFS 文件系统。以下示例说明了 /etc/vfstab 文件中的某一项,该项为根目录 (/) 文件系统在 /tmp/newroot 上挂载 LOFS
文件系统。/ - /tmp/newroot lofs - yes -
请确保回送项是 /etc/vfstab 文件中的最后几项。否则,如果回送文件系统的 /etc/vfstab 项先于其中要包括的文件系统,则无法挂载回送文件系统。
如何向 /etc/vfstab 文件添加项
除非某些 ZFS 文件系统需要先前挂载的行为,否则请使用此过程以在引导时挂载非 ZFS 文件系统。有关挂载 ZFS 文件系统的更多信息,请参见《Oracle Solaris 管理:ZFS 文件系统》。如有必要,请为要挂载的文件系统创建挂载点。# mkdir /mount-point
本地系统上必须存在用于挂载文件系统的挂载点。挂载点是指附加已挂载文件系统的目录。
编辑 /etc/vfstab 文件并添加项。请确保执行以下操作:使用空白空间(空格或制表符)分隔各个字段。
如果字段没有内容,请指定破折号 (-)。
保存更改。
注 -由于在引导过程中内核会将根目录 (/) 文件系统挂载为只读,因此只有 remount 选项(以及可以与 remount 一起使用的选项)会影响 /etc/vfstab 文件中的根目录 (/) 项。
示例 18-7 向 /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
如何挂载文件系统(/etc/vfstab 文件)挂载 /etc/vfstab 文件中列出的文件系统。# mount /mount-point
其中 /mount-point 指定了 /etc/vfstab 文件的 mount point 或 device to mount 字段中的项。通常,指定挂载点较为容易。
示例 18-8 挂载文件系统(/etc/vfstab 文件)
以下示例说明如何挂载 /etc/vfstab 文件中列出的 /legacy 文件系统。# mount /legacy
示例 18-9 挂载所有文件系统(/etc/vfstab 文件)
以下示例说明在已挂载文件系统的情况下使用 mountall 命令时显示的消息。# mountall
mount: /tmp is already mounted or swap is busy
以下示例说明如何挂载 /etc/vfstab 文件中列出的所有本地系统。# mountall -l
以下示例说明如何挂载所有可用的 ZFS 文件系统。# zfs mount -a
以下示例说明如何挂载 /etc/vfstab 文件中列出的所有远程文件系统。# mountall -r
如何挂载 NFS 文件系统(mount 命令)如有必要,请为要挂载的文件系统创建挂载点。# mkdir /mount-point
本地系统上必须存在用于挂载文件系统的挂载点。挂载点是指附加已挂载文件系统的目录。
请确保服务器中的资源(文件或目录)是可用的。
要挂载 NFS 文件系统,必须使用 share 命令使服务器上的资源可用。有关如何共享资源的信息,请参见《Oracle Solaris 管理:网络服务》中的"关于 NFS 服务"。
挂载 NFS 文件系统。# mount -F nfs [-o mount-options] server:/directory /mount-point
示例 18-10 挂载 NFS 文件系统(mount 命令)
以下示例说明如何将 /export/packages 目录从服务器 pluto 挂载到 /mnt 上。# mount -F nfs pluto:/export/packages /mnt
x86: 如何从硬盘挂载 PCFS (DOS) 文件系统(mount 命令)
使用以下过程从硬盘挂载 PCFS (DOS) 文件系统。如有必要,请为要挂载的文件系统创建挂载点。# mkdir /mount-point
本地系统上必须存在用于挂载文件系统的挂载点。挂载点是指附加已挂载文件系统的目录。
挂载 PCFS 文件系统。# mount -F pcfs [-o rw | ro] /dev/dsk/device-name:logical-drive /mount-point-o rw | ro
指定可以将 PCFS 文件系统挂载为读取/写入 (rw) 或只读 (ro)。如果不指定此选项,则缺省情况下挂载为 rw。
/dev/dsk/device-name
指定整个磁盘的设备名称(例如 /dev/dsk/c0t0d0p0)。
logical-drive
指定 DOS 逻辑驱动器盘符(c 到 z)或驱动器编号(1 到 24)。驱动器 c 相当于驱动器 1,表示驱动器上的主 DOS 分片。所有其他字母或数字均表示扩展的 DOS 分片内的 DOS 逻辑驱动器。
/mount-point
指定文件系统的挂载目录。
请注意,必须使用冒号分隔 device-name 和 logical-drive。
示例 18-11 x86: 从硬盘挂载 PCFS (DOS) 文件系统(mount 命令)
以下示例说明如何将主 DOS 分片中的逻辑驱动器挂载到 /pcfs/c 目录上。# mount -F pcfs /dev/dsk/c0t0d0p0:c /pcfs/c
以下示例说明如何将扩展的 DOS 分片中的第一个逻辑驱动器在 /mnt 目录上挂载为只读。# mount -F pcfs -o ro /dev/dsk/c0t0d0p0:2 /mnt
如何停止所有进程访问文件系统列出正在访问文件系统的所有进程,以便确定要停止的进程。# fuser -c [ -u ] /mount-point-c
报告是文件系统挂载点的文件以及已挂载文件系统内的所有文件。
-u
显示每个进程 ID 的用户登录名称。
/mount-point
指定要停止进程的文件系统的名称。
停止正在访问文件系统的所有进程。# fuser -c -k /mount-point
SIGKILL 会被发送到正在使用文件系统的每个进程。
注 -不得在未事先警告用户的情况下停止用户进程。
验证是否所有进程都未在访问文件系统。# fuser -c /mount-point
示例 18-12 停止所有进程访问文件系统
以下示例说明如何停止正在使用 /export/home 文件系统的进程 4006c。# fuser -c /export/home
/export/home: 4006c
# fuser -c -k /export/home
/export/home: 4006c
# fuser -c /export/home
/export/home:
如何取消挂载文件系统
使用以下过程取消挂载文件系统。取消挂载文件系统。# umount /mount-point
其中 /mount-point 是指要取消挂载的文件系统的名称。该名称可以是以下各项之一:
文件系统的挂载目录名称
文件系统的设备名称路径
NFS 文件系统的资源
LOFS 文件系统的回送目录
示例 18-13 取消挂载文件系统
以下示例说明如何取消挂载传统 UFS 文件系统。# umount /legacy
以下示例说明如何强制取消挂载 UFS /legacy 文件系统。# umount -f /legacy
#
以下示例说明如何取消挂载所有 ZFS 文件系统。# zfs umount -a
除正忙的文件系统以外,其他所有文件系统都被取消挂载。