3.7.文件系统的挂载与卸载¶
文件系统就像是一棵树,它的根是 /。/dev、/usr 和根目录中的其他目录是其分支,它们可能还有自己的分支,如 /usr/local 等等。
将一些目录放在不同的文件系统中是有各种原因的。/var 包含了 log/、spool/ 和各种类型的临时文件,因此,可能会被填满。填满根文件系统并不是一个好主意,所以将 /var 从 / 中剥离出来通常是有好处的。
将一些目录放在不同的文件系统中的另一个常见原因是,它们要被放置在单独的物理磁盘或者是单独的虚拟磁盘上,比如“网络文件系统(NFS)”中说明的挂载的网络文件系统,或者 CDROM 驱动器。
3.7.1. fstab 文件¶
在引导过程中(FreeBSD 的引导过程),除了包含 noauto
的条目外,/etc/fstab 中列出的文件系统都会自动挂载。这个文件包含以下格式的条目:
device /mount-point fstype options dumpfreq passno
device
一个现有的设备名称,如磁盘设备名称中所解释的。
mount-point
一个现有的目录,用来挂载文件系统。
fstype
要传递给 mount(8) 的文件系统类型。FreeBSD 默认的文件系统是 ufs
。
options
rw
表示可读写文件系统,ro
表示只读文件系统,后面是可能需要的任何其他选项。一个常见的选项是 noauto
,用于不需要在启动过程中进行挂载的文件系统。其他选项在 mount(8) 中列出。
dumpfreq
被 dump(8) 用来确定哪些文件系统需要转储。如果该字段缺失,则假定其值为 0
。
passno
决定 UFS 文件系统在重启后应被 fsck(8) 检查的顺序。应该被跳过的文件系统应该把它们的 passno
设置为 0
。根文件系统需要在其他所有文件系统之前被检查,它的 passno
应该被设置为 1
。其他文件系统应该被设置为大于 1
的值。如果多个文件系统有相同的 passno
,fsck(8) 将尽可能地尝试并行检查文件系统。
关于 /etc/fstab 的格式和选项的更多信息,请参考 fstab(5)。
3.7.2.使用 mount(8)¶
文件系统是用 mount(8) 挂载的。最基本的语法如下:
# mount device mountpoint
在 /etc/fstab
中列出的文件系统也可以通过提供挂载点来挂载。
该命令提供了许多选项,在 mount(8) 中有所概述,最常用的选项包括:
挂载选项
-a
挂载 /etc/fstab 中列出的所有文件系统,除了那些标记为 noauto
、被 -t
标志排除的文件系统,或者已经挂载的文件系统。
-d
执行所有操作但不进行实际的 mount
系统调用。这个选项和 -v
标志一起使用,可以确定 mount(8) 预期要做什么。
-f
挂载文件系统为只读。这与使用 -o ro
是一样的。
-t fstype
挂载指定的文件系统类型或只挂载指定类型的文件系统,如果包括 -a
。默认的文件系统类型是“ufs”。
-u
更新文件系统的挂载选项。
-v
详细模式。
-w
对文件系统进行读写挂载。
以下选项可以作为逗号分隔的列表传递给 -o
。
nosuid
不要读取文件系统上的 setuid
或 setgid
标志。这也是一个有用的安全选项。