User Tools

Site Tools


zh:docs:guide-user:storage:fstab_configuration

Fstab 配置

(本文译自本站英文版)

Fstab, 或者叫 file systems table, 是一个集中的配置,定义了必要时(例如启动设备时,或者在物理上连接它时),文件系统(通过在块设备上)应该如何被挂载。这样,你不需要在你想要访问它们时,手动挂载设备。挂载配置不仅包括静态文件系统,也包括 swap 分区。
Fstab UCI 子系统是所有选项被定义的地方,包括需要被挂载的全部设备和文件系统,文件位于: /etc/config/fstab.
默认情况下,这个子系统和它的配置文件都不存在,因为对大多数 LEDE 用例(网络设备)来说,不需要它。
所以如果你需要配置这个,你首先需要创建它。

因为 LEDE 中处理挂载的工具是 block, 所以当前的选项都可以在它的 source code 中找到。

创建 fstab

你需要使用 block 工具。安装软件包 block-mount:

root@lede:~# opkg update && opkg install block-mount

调用 block detect 来得到一个 fstab UCI 子系统配置文件的范例。

root@lede:~# block detect > /etc/config/fstab

现在,有 UCI 子系统了,你可以使用 UCI 命令行来改变它,或者直接编辑文件本身。

/ 设置到其他设备上是可行的,但是过程可能有点复杂,请查看 HOWTO extroot 获取更多内容。
也可以查看这个教程 OpenWrt techref 来获取更多挂载过程的技术细节和使用的脚本。

在启动时启用 fstab

要启动这个新的 UCI 子系统的功能以使挂载点在启动时被正确挂载,输入:

root@lede:~# service fstab enable

配置

配置文件包括一个 global 部分,定义了默认值,mount 部分定义了文件系统的挂载,以及 swap 部分定义了将被激活的分区。 无论何时你改变了 fstab 配置,运行下面的命令以新的方式挂载所有内容:

root@lede:~# block umount && block mount

Global 部分

名称 类型 必须默认值描述
anon_swap booleanno 0 挂载没有自身配置的 swap 设备
anon_mountbooleanno 0 挂载没有自身配置的块设备
auto_swap booleanno 1 当出现时自动挂载 swap 设备
auto_mountbooleanno 1 当出现时自动挂载块设备
delay_rootintegerno 0 在启动时,在尝试挂载 root 设备前等待 X 秒
check_fs booleanno 0 在挂载前,在设备上运行 e2fsck

Swap 部分

名称 类型 必须默认值描述
devicestringno - swap 分区的设备节点 (e.g. sda1)
uuid stringno - swap 分区的 UUID
label stringno - swap 分区的标签 (例如 mkswap -L label /dev/sdb2)

Mount 部分

名称 类型 必须默认值描述
devicestringno - 数据分区的设备节点 (e.g. sda1)
uuid stringno - 数据分区的 UUID
targetstringno - 数据分区的挂载点。一些值有特殊的含义,参考下面的 Extroot 部分。

SWAP 分区的正确大小

如果你询问别人,或者在网上搜索,你会找到一个经验规律: 双倍内存大小 用于内存小于等于 512MiB 的机器,和内存大小相同用于内存更多的机器。这个非常粗暴的估算确实也适用于你的嵌入式设备。
请注意,相对于真实的内存,swap 的 访问时机 非常深, 所以拥有 swap 在特定情况下,可能不会有明显的帮助。
一个 CUPS 假脱机服务器只有当 SWAP 可用时才能很好的工作,然而一些应用程序较之于把数据放在真实的内存中时,放在 SWAP 分区使它们表现非常差劲。
哪些数据存储在内存中,哪些存储在 SWAP 由系统决定。不同于其他操作系统,Linux 大量使用内存,所以你的系统可以运行流畅而且更有效率。如果应用程序需要使用内存时,系统再释放一些空间,使内存变得可用。

zh/docs/guide-user/storage/fstab_configuration.txt · Last modified: 2018/08/08 07:50 by tmomas