|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PC主机:Ubuntu 和 redhat 9.0
* Q$ h3 s2 b; o1 A
0 J( z- V/ g- p+ o& G* \+ k# O目标板:TQ2440开发板 cpu:s3c2440 linux内核:2.6.30
% C+ p0 @- L" }6 ?' G3 F" o8 \( G2 g& w9 T
下文中所输入的命令就是在开发板中执行。7 x2 ^! g( Y/ w. C' T7 l
) k0 Q) }/ t8 i
1. fstab的作用
8 t2 d1 ^( _$ u4 r9 \
2 L2 b# B" x9 A8 D1 S; D fstab包含了需要挂载的设备,相应的挂载点,以及属性等。在两种情况下,fstab中的内容将被读取。$ K6 M' G0 Q& p0 W
& o$ T. O' U3 ]7 z
1) 当执行mount -a的时候,fstab配置文件中的所有条目将被一一执行。3 v0 q% Y2 j4 j3 a9 ~' k
+ O& z% b- ?* ?1 i% J4 s
2) fstab配置文件中的内容将作为默认的配置,也就是说当mount命令只知道挂载设备或者是挂载点时,它将搜索fstab文件。,比如,执行mount /tmpfs的时候,此时我并没有给出需要挂载的设备,仅给出了挂载点,但是mount命令会首先查询fstab,如果查找到/tmpfs,将使用该默认配置进行挂载。请看例子: w. `/ O1 s+ J. U# g
1 p+ ?3 h3 X, O Z9 f" O
4 K! e% B! ?; w; M- m! U8 f[root@yj423 /root]#cat /etc/fstab | grep /tmp 6 b. L) Z0 g Y$ q+ C) S. h1 b
tmpfs /tmp tmpfs defaults 0 0
* y) K$ C+ g+ q[root@yj423 /root]#mount /tmp ' q- I; x o/ w" l
[root@yj423 /root]#mount | grep /tmp # D: E- e; h1 f) Y" G4 K3 O; N
tmpfs on /tmp type tmpfs (rw,relatime), \" H4 q$ N- j1 o( P1 X- Y$ C& N
9 z) T: n4 Q' j4 l7 p1 ?
但是如果我们把fstab中/tmp所在的该行删除,则会8 I( X4 l* Z7 }0 s _- K& A
" l7 ]* @( N0 E9 C: r9 b0 k# y7 M3 a
[root@yj423 /root]#mount /tmp; l3 j3 B! [) |- l; _- |
mount: can't find /tmp in /etc/fstab) s5 }$ Q3 q0 n% X5 Z9 I) t
2 K0 N! E6 F1 G& [: x! G6 O9 j% u8 c4 ?8 {: }
2. fstab语法
' v4 j$ B& P6 k% F
; N ]+ b0 f9 |( ?, n首先,先来看下完整的fstab内容
. O0 @6 f- |- f$ u' O5 d# D; C! m$ U+ U
[root@yj423 /root]#cat /etc/fstab * E5 c1 |7 z9 k* y1 d
<filesystem> <mountpoing> <type> <options> <dump> <pass>* A/ h& X1 r4 `6 c A
proc /proc proc defaults 0 05 { K& W+ ?( @) j, h }: z6 {
tmpfs /tmp tmpfs defaults 0 0
2 X* r2 d; i: A% |0 Ysysfs /sys sysfs defaults 0 0
/ V) ]+ L7 y0 C% Itmpfs /dev tmpfs defaults 0 0. A/ A7 E7 {8 Y. v' N
var /dev tmpfs defaults 0 08 G+ Q2 x/ o- ^5 p# i
ramfs /dev ramfs defaults 0 0
; ~& [* e$ v9 }# ]0 w5 R8 B
2 d' G! t* ^5 l0 g. J- e6 G第一列filesystem为mount命令所挂载的设备。3 U0 R4 s; K+ l8 I* V/ @
8 }- u& K9 L4 E# g8 a& w' _第二列mount point为mount命令的挂载点。挂载点必须是一个已存在的目录。
! ] j3 u, X4 A% V `: c: x7 r
( a b( V' c8 }7 W" k6 A! W1 ^; u7 u第三列type为文件系统的类型。
. c1 f/ n$ m. S! L# P! ]
7 m( N3 @' Q2 a) v第四列option为mount命令的选项。
% r" G" D' `0 u( C! H, u0 V3 W! g |
) V" j' O, w' R. S. b这里的defaults表示:rw, suid, dev, exec, auto, nouser, and async。! [, M% W* J! }1 e! N6 A" B) J
2 D0 E4 I9 A* f8 A1 `rw表示文件系统可以读写。! N2 a1 ?$ [3 h
9 V3 n" f4 S a( `suid表示当前用户权限和创建该文件的用户权限一样。/ [. k; D: \6 D: U i" ?
( V! H9 b: W" V! E; Mdev表示识别文件系统中的字符设备和块设备。与其对应的是nodev。! M) i9 j. a1 k; D1 N2 ~
! X4 ^* _1 q6 w' `exec表示可以在设备上运行二进制文件。与其对应的是noexec。
! W9 x, b% a! U! L7 Y$ q
6 b4 ?) \5 u2 O9 Z1 @3 bauto表示执行mount -a是会执行该条目。与其对应的是noauto。& X* |5 \+ W s' |/ c: O
1 ~: F- N F* F. Z d
nosuer表示只有root才能挂载该设备。与其对应的是user。
7 ^# I0 o$ s& \
8 y( F% F1 n9 r4 s5 R+ N( [async表示对该设备的写入操作不会立刻写入设备,而在随后的某个时刻写入。与其对应的是sync。2 R" M3 D n) q0 E7 R) r. x: }
0 x' b! e8 u$ N4 Q% q. A
第五列dump表示是否使用dump备份该文件系统,如果是0,dump将忽略该文件系统。大多数情况下该列都为0./ b+ n4 Z, @7 e' a
/ y) z& k& w" [8 ]第六列pass表示fsck工具检查文件系统的顺序。0表示不使用fsck。
) T- h- u) i% a, e% E7 B- q' G# q5 u6 J5 p9 E: T& U( h, ?$ U
5 k3 V5 H, z, \( U1 J" y8 ~
9 l- T ]9 [- u" P' |
6 C2 i) ]1 d, F1 g* ^7 V& K- C; n8 r. k1 ?) k1 @+ t2 @
|
|