在我的 /etc/fstab 文件中,我有一个交换条目,如下所示:
/root/swap swap swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
我有其他机器,而且我在网上看到有时他们会放置默认或 xfs 或其他选项。然后,我对“sw”的含义和用途以及哪个是最好的选择以及原因感到有些困惑。
Kus*_*nda 15
第四个字段,
fs_mntops
描述与文件系统关联的挂载选项。它被格式化为逗号分隔的选项列表。它至少包含挂载类型(见fs_type
下文)以及适合文件系统类型的任何其他选项。[...]如果
fs_type
是“rw”、“rq”或“ro”,则在该fs_file
字段中给出名称的文件系统通常以读写方式或只读方式安装在指定的特殊文件上。 如果fs_type
是“sw”,则swapon(8)
在系统重新启动过程结束时,该特殊文件可通过命令作为一块交换空间使用。
所以基本上,sw
用于告诉swapon
(或swapctl
在我的系统上)这是用作交换空间的有效候选者,它将作为系统启动例程的一部分添加。
此选项导致
swapctl
读取/etc/fstab
设备和具有“sw”类型的文件的文件,并将所有这些条目添加为交换设备。如果未配置交换设备,swapctl
将退出并显示错误代码。
那是在 OpenBSD 上。在我可以访问的Ubuntu Linux系统上,sw
由于某种原因,这两个手册都没有提到作为交换的挂载选项。
至少对于 Linux,基于对网络的观察,这似乎是“货物崇拜”的一个例子。我所看到的证据表明,这个选项实际上并不是必需的或没有意义的,但是您需要在那里放一些东西,因为fstab
文件语法需要它。您可以轻松找到人们使用defaults
和 甚至只是pri=1
或其他的示例,而忽略了defaults
和sw
。
并且swapon
需要查看挂载选项来检查它是否是交换是没有意义的,因为swapon
通过查看文件系统类型已经可以看到它的交换。确实有用于交换的挂载选项可以修改行为,如 中所述man swapon
,但sw
不是其中之一。所以证据是它是一个占位符,并且和占位符foobar
一样好
当然,如果不查看源代码,我无法完全确定这一点。
相关的,一个 Debian 错误报告抱怨这个确切的问题: mount: swapon(8)缺乏对 sw 和默认选项的解释