系统管理指南:设备和文件系统

挂载文件系统

以下各节介绍如何通过在 /etc/vfstab 文件中添加项或从命令行使用 mount 命令来挂载文件系统。

如何确定挂载的文件系统

可以使用 mount 命令确定已经挂载的文件系统。


$ mount [ -v ]

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


示例 19–1 确定挂载的文件系统

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


$ 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/...

/home/rimmer on pluto:/export/home/rimmer remote/read/write/setuid/xattr/...

$

Procedure如何向 /etc/vfstab 文件添加项

  1. 成为超级用户或承担等效角色。

  2. 如有必要,请为要挂载的文件系统创建挂载点。


    # mkdir /mount-point
    

    本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。

  3. 编辑 /etc/vfstab 文件并添加项。请确保执行以下操作:

    1. 使用空白(空格或制表符)分隔各个字段。

    2. 如果字段没有内容,请指定连字符 (-)。

    3. 保存更改。

    有关 /etc/vfstab 字段各项的详细信息,请参见表 19–3


    注 –

    由于在引导过程中内核会将根 (/) 文件系统挂载为只读,因此只有 remount 选项(以及可以与 remount 结合使用的选项)会影响 /etc/vfstab 文件中的根 (/) 项。



示例 19–2 向 /etc/vfstab 文件添加项

以下示例说明如何将磁盘片 /dev/dsk/c0t3d0s7 作为 UFS 文件系统挂载到挂载点 /files1。原始字符设备 /dev/rdsk/c0t3d0s7 会指定为 device to fsckfsck 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 optionsro(只读)和 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       -                   

Procedure如何挂载文件系统(/etc/vfstab 文件)

  1. 成为超级用户或承担等效角色。

  2. 挂载 /etc/vfstab 文件中列出的文件系统。


    # mount /mount-point
    

    其中 /mount-point 指定了 /etc/vfstab 文件的 mount pointdevice to mount 字段中的项。通常,指定挂载点较为容易。


示例 19–3 挂载文件系统(/etc/vfstab 文件)

以下示例说明如何挂载 /etc/vfstab 文件中列出的 /usr/dist 文件系统。


# mount /usr/dist


示例 19–4 挂载所有文件系统(/etc/vfstab 文件)

以下示例说明在已挂载文件系统的情况下使用 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/...

Procedure如何挂载 UFS 文件系统(mount 命令)

  1. 成为超级用户或承担等效角色。

  2. 如有必要,请为要挂载的文件系统创建挂载点。


    # mkdir /mount-point
    

    本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。

  3. 挂载 UFS 文件系统。


    # mount [-o mount-options] /dev/dsk/device-name /mount-point
    
    -o mount-options

    指定可以用来挂载 UFS 文件系统的挂载选项。有关选项的列表,请参见表 19–2mount_ufs(1M)

    /dev/dsk/device-name

    指定包含文件系统的片的磁盘设备名称(例如 /dev/dsk/c0t3d0s7)。 要查看磁盘的片信息,请参见如何显示磁盘片信息

    /mount-point

    指定要挂载文件系统的目录。


示例 19–5 挂载 UFS 文件系统(mount 命令)

以下示例说明如何将 /dev/dsk/c0t3d0s7 挂载到 /files1 目录上。


# mount /dev/dsk/c0t3d0s7 /files1

Procedure如何挂载不包含大文件的 UFS 文件系统(mount 命令)

挂载文件系统时,缺省情况下会选用 largefiles 选项。使用此选项可以创建大于 2 GB 的文件。一旦文件系统包含大文件,就无法使用 nolargefiles 选项重新挂载文件系统或将其挂载到运行 Solaris 2.6 或兼容版本的系统上,直到删除任何大文件并运行 fsck 命令将状态重置为 nolargefiles 为止。

此过程假定文件系统包含在 /etc/vfstab 文件中。

  1. 成为超级用户或承担等效角色。

  2. 如有必要,请为要挂载的文件系统创建挂载点。


    # mkdir /mount-point
    

    本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。

  3. 确保文件系统中不存在大文件。


    # cd /mount-point
    
    # find . -xdev -size +20000000 -exec ls -l {} \;
    

    其中 /mount-point 用于标识要检查是否包含大文件的文件系统的挂载点。

  4. 如有必要,请删除此文件系统中的任何大文件或将其移动到其他文件系统。

  5. 取消挂载文件系统。


    # umount /mount-point
    
  6. 重置文件系统状态。


    # fsck /mount-point
    
  7. 使用 nolargefiles 选项重新挂载文件系统。


    # mount -o nolargefiles /mount-point
    

示例 19–6 挂载不包含大文件的文件系统(mount 命令)

以下示例说明如何检查 /datab 文件系统并使用 nolargefiles 选项将其重新挂载。


# cd /datab

# find . -xdev -size +20000000 -exec ls -l {} \;

# umount /datab 

# fsck /datab

# mount -o nolargefiles /datab

Procedure如何挂载 NFS 文件系统(mount 命令)

  1. 成为超级用户或承担等效角色。

  2. 如有必要,请为要挂载的文件系统创建挂载点。


    # mkdir /mount-point
    

    本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。

  3. 确保资源(文件或目录)在服务器中可用。

    要挂载 NFS 文件系统,必须使用 share 命令使资源在服务器中可用。有关如何共享资源的信息,请参见《系统管理指南:网络服务》中的“关于 NFS 服务”

  4. 挂载 NFS 文件系统。


    # mount -F nfs [-o mount-options] server:/directory /mount-point
    
    -o mount-options

    指定可以用来挂载 NFS 文件系统的挂载选项。有关常用的 mount 选项的列表,请参见表 19–2;有关选项的完整列表,请参见 mount_nfs(1M)

    server:/directory

    指定包含共享资源的服务器主机名,以及要挂载的文件或目录的路径。

    /mount-point

    指定要挂载文件系统的目录。


示例 19–7 挂载 NFS 文件系统(mount 命令)

以下示例说明如何将 /export/packages 目录从服务器 pluto 挂载到 /mnt 上。


# mount -F nfs pluto:/export/packages /mnt

Procedurex86: 如何从硬盘挂载 PCFS (DOS) 文件系统(mount 命令)

使用以下过程可从硬盘挂载 PCFS (DOS) 文件系统。

  1. 成为超级用户或承担等效角色。

  2. 如有必要,请为要挂载的文件系统创建挂载点。


    # mkdir /mount-point
    

    本地系统上必须存在挂载点才能挂载文件系统。挂载点是要向其附加已挂载文件系统的目录。

  3. 挂载 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-namelogical-drive


示例 19–8 x86: 从硬盘挂载 PCFS (DOS) 文件系统(mount 命令)

以下示例说明如何将主 DOS 片中的逻辑驱动器挂载到 /pcfs/c 目录上。


# mount -F pcfs /dev/dsk/c0t0d0p0:c /pcfs/c

以下示例说明如何在 /mnt 目录上将扩展的 DOS 片中的第一个逻辑驱动器挂载为只读。


# mount -F pcfs -o ro /dev/dsk/c0t0d0p0:2 /mnt