PC主机:Ubuntu 和 redhat 9.0
目标板:TQ2440开发板 cpu:s3c2440 linux内核:2.6.30
下文中所输入的命令就是在开发板中执行。
fstab包含了需要挂载的设备,相应的挂载点,以及属性等。在两种情况下,fstab中的内容将被读取。
1) 当执行mount -a的时候,fstab配置文件中的所有条目将被一一执行。
2) fstab配置文件中的内容将作为默认的配置,也就是说当mount命令只知道挂载设备或者是挂载点时,它将搜索fstab文件。,比如,执行mount /tmpfs的时候,此时我并没有给出需要挂载的设备,仅给出了挂载点,但是mount命令会首先查询fstab,如果查找到/tmpfs,将使用该默认配置进行挂载。请看例子:
[root@yj423 /root]#cat /etc/fstab | grep /tmp
tmpfs /tmp tmpfs defaults 0 0
[root@yj423 /root]#mount /tmp
[root@yj423 /root]#mount | grep /tmp
tmpfs on /tmp type tmpfs (rw,relatime)
但是如果我们把fstab中/tmp所在的该行删除,则会
[root@yj423 /root]#mount /tmp
mount: can't find /tmp in /etc/fstab
2. fstab语法
首先,先来看下完整的fstab内容
[root@yj423 /root]#cat /etc/fstab
<filesystem> <mountpoing> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
var /dev tmpfs defaults 0 0
ramfs /dev ramfs defaults 0 0
第一列filesystem为mount命令所挂载的设备。
第二列mount point为mount命令的挂载点。挂载点必须是一个已存在的目录。
第三列type为文件系统的类型。
第四列option为mount命令的选项。
这里的defaults表示:rw, suid, dev, exec, auto, nouser, and async。
rw表示文件系统可以读写。
suid表示当前用户权限和创建该文件的用户权限一样。
dev表示识别文件系统中的字符设备和块设备。与其对应的是nodev。
exec表示可以在设备上运行二进制文件。与其对应的是noexec。
auto表示执行mount -a是会执行该条目。与其对应的是noauto。
nosuer表示只有root才能挂载该设备。与其对应的是user。
async表示对该设备的写入操作不会立刻写入设备,而在随后的某个时刻写入。与其对应的是sync。
第五列dump表示是否使用dump备份该文件系统,如果是0,dump将忽略该文件系统。大多数情况下该列都为0.
第六列pass表示fsck工具检查文件系统的顺序。0表示不使用fsck。