|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PC主机:Ubuntu 和 redhat 9.07 x8 S! S) d! G& g: f
0 m2 V' `& e9 F- Z目标板:TQ2440开发板 cpu:s3c2440 linux内核:2.6.306 f$ R: M( d* [1 W" O F( m
. @0 ]4 Y m. J0 m* [1 p( ~下文中所输入的命令就是在开发板中执行。) S8 d2 w4 ?3 [0 E
- D+ ^6 s. `. t; n9 Q$ P
1. fstab的作用: t& ^! j4 q5 x) G
& r# u7 B2 S* F% a& I
fstab包含了需要挂载的设备,相应的挂载点,以及属性等。在两种情况下,fstab中的内容将被读取。6 j, B8 ~. l9 q
]: N5 t! W% \. |; y
1) 当执行mount -a的时候,fstab配置文件中的所有条目将被一一执行。
- `) k; [: Z- q( P3 A& u1 ^; {& b' x3 l. k5 s6 t( _
2) fstab配置文件中的内容将作为默认的配置,也就是说当mount命令只知道挂载设备或者是挂载点时,它将搜索fstab文件。,比如,执行mount /tmpfs的时候,此时我并没有给出需要挂载的设备,仅给出了挂载点,但是mount命令会首先查询fstab,如果查找到/tmpfs,将使用该默认配置进行挂载。请看例子:
9 }* w h: r3 x9 u! `: _; |( v/ Q% I% X4 Q1 R9 Y
, E! m5 w% m4 a& W# n[root@yj423 /root]#cat /etc/fstab | grep /tmp 6 E0 ~" v% J4 W" @* V
tmpfs /tmp tmpfs defaults 0 0 % O- U2 q8 o( |" M
[root@yj423 /root]#mount /tmp , r- z& \+ \) A; V5 D* k+ M
[root@yj423 /root]#mount | grep /tmp
0 d* a+ o4 F0 P, o+ Ytmpfs on /tmp type tmpfs (rw,relatime)0 m# H4 `9 F# |! ~2 C! ^4 ^8 L
4 R& `. W/ K, x: G- T4 F
但是如果我们把fstab中/tmp所在的该行删除,则会
& m% z7 P8 x5 s$ y" c
" M# ^6 |- _9 K2 R0 @; l2 A[root@yj423 /root]#mount /tmp+ v+ a# y' L t
mount: can't find /tmp in /etc/fstab
6 f1 r! e; y4 ` W0 ?/ u% n- K8 K1 p: v2 d
L! \3 N6 x) V ?) U7 m
2. fstab语法
/ V% P6 O! e" p
+ }" \2 ]8 M8 c4 V首先,先来看下完整的fstab内容
0 g! s7 j7 v2 o" Z1 A5 `
8 u% h1 ~1 D8 |[root@yj423 /root]#cat /etc/fstab
* `9 ?3 c8 ?% W2 u, o* z9 Y<filesystem> <mountpoing> <type> <options> <dump> <pass>3 [" k3 H; ]8 P6 p+ B
proc /proc proc defaults 0 0
: _$ H& v2 ^0 q6 {tmpfs /tmp tmpfs defaults 0 0* K. z R2 _/ u; [5 j. Q
sysfs /sys sysfs defaults 0 0
! B6 }2 F! r9 b1 u# ctmpfs /dev tmpfs defaults 0 0% g Y/ M) @. X
var /dev tmpfs defaults 0 0; ~/ z8 j v+ G7 K& ]$ `
ramfs /dev ramfs defaults 0 0+ ?- J: T4 e* u; x+ f" t8 V! T0 {6 }
# I- d3 _3 N) u) @) k/ I) x3 a
第一列filesystem为mount命令所挂载的设备。& k9 _: v" N) w( l- h! E
. r& q) a" p- q' `1 P第二列mount point为mount命令的挂载点。挂载点必须是一个已存在的目录。( e8 ~0 Q+ P2 }& B6 W
: K& Z' b+ q0 m$ E% E) w第三列type为文件系统的类型。1 h4 S6 }( P8 s0 `# }& w
% x2 y0 @6 o/ g% M: X第四列option为mount命令的选项。
0 y& v# z2 }8 k
1 p: U$ t% G0 [- \5 H这里的defaults表示:rw, suid, dev, exec, auto, nouser, and async。
4 r- [ o7 J) b1 o; W' h4 N/ l. E& G2 b/ c+ e
rw表示文件系统可以读写。0 @ C) H2 a7 o& L
. C1 M7 `! ^# p2 V' L m1 y4 asuid表示当前用户权限和创建该文件的用户权限一样。
3 V9 l( Q- T: C8 G. K9 u8 ~! s/ B& e, @. B! i4 s
dev表示识别文件系统中的字符设备和块设备。与其对应的是nodev。4 y% M" D5 c# B# e! u7 l6 s: `" u
) G% n1 k! v1 f1 O3 @! `
exec表示可以在设备上运行二进制文件。与其对应的是noexec。4 x* c1 o ~' H N
- }$ P0 }, F! `9 J( V: z9 hauto表示执行mount -a是会执行该条目。与其对应的是noauto。
2 m2 x/ }: I% H' p5 s- h' B4 z! J
' U$ m' R% J6 S4 j" [- pnosuer表示只有root才能挂载该设备。与其对应的是user。/ e" d5 m- C7 r/ P6 E* W) X1 s6 C
( c# z4 ~+ G) B, iasync表示对该设备的写入操作不会立刻写入设备,而在随后的某个时刻写入。与其对应的是sync。
5 M2 r+ ]1 S4 r" l
; c! X1 C0 ]; t/ l第五列dump表示是否使用dump备份该文件系统,如果是0,dump将忽略该文件系统。大多数情况下该列都为0.
7 Q! p+ K- C% d) z0 M/ h) q. I f# S# v# }
第六列pass表示fsck工具检查文件系统的顺序。0表示不使用fsck。
/ K. @+ c* _# H+ z% K1 n
! T( U7 r8 N, l) i. B5 w: i
3 R+ ]1 M* G) }6 ^0 p) z7 h
% t! \& K0 `7 I7 N4 Z% R5 Q
/ y" B4 n1 A+ A8 E5 s
* N. }+ t. P/ w' R1 o7 B) w4 V |
|