|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PC主机:Ubuntu 和 redhat 9.04 N% N7 q: b- x( } C
" R+ u7 U) d! T/ w9 i目标板:TQ2440开发板 cpu:s3c2440 linux内核:2.6.30
9 @/ A0 i! Q1 ~' |% f; E5 t) e: A0 w& ^6 s8 m
下文中所输入的命令就是在开发板中执行。
# P# H& u& F: I2 g( D
9 A# z+ [. O. w U( E1. fstab的作用& l+ B. k1 C# j+ g/ Z3 w, G0 v; E
: s' @( s2 M0 J0 }& h
fstab包含了需要挂载的设备,相应的挂载点,以及属性等。在两种情况下,fstab中的内容将被读取。9 m0 A+ I. B1 }/ w. Y m
5 h0 U# i* h8 N
1) 当执行mount -a的时候,fstab配置文件中的所有条目将被一一执行。
3 @' k' F0 N( p7 t1 X
) U( ?; y9 i! M, {2 c 2) fstab配置文件中的内容将作为默认的配置,也就是说当mount命令只知道挂载设备或者是挂载点时,它将搜索fstab文件。,比如,执行mount /tmpfs的时候,此时我并没有给出需要挂载的设备,仅给出了挂载点,但是mount命令会首先查询fstab,如果查找到/tmpfs,将使用该默认配置进行挂载。请看例子:2 u/ U' U) A3 f2 x/ q
) Y/ e: k! A) ?3 p8 `
0 a1 c# f: O t+ ~4 ~[root@yj423 /root]#cat /etc/fstab | grep /tmp . H2 z6 z- x) z, {/ j6 Q- \* S
tmpfs /tmp tmpfs defaults 0 0
% Z+ y+ B) p e3 m% Y, p[root@yj423 /root]#mount /tmp
( G! {6 c; n U* @[root@yj423 /root]#mount | grep /tmp ! s& S$ G2 A8 |! H
tmpfs on /tmp type tmpfs (rw,relatime)
* a% W( U. k" c7 \" ]4 u6 h" R
但是如果我们把fstab中/tmp所在的该行删除,则会
: K+ h$ E# O& {( {9 i" O0 k2 }, w. e& q
[root@yj423 /root]#mount /tmp$ `, _( C+ l) [; k- w( s
mount: can't find /tmp in /etc/fstab. j9 o& Q" z# d0 I) _, v
; }) ^! C% Y+ q8 n, p4 Y, j9 A( @8 z( k" K" t. V Z/ e
2. fstab语法
4 \! x; C, ~6 V$ }& `% P7 v" f/ R* }4 n& p# d2 [! y5 P1 C+ L# O
首先,先来看下完整的fstab内容
& B0 K. a/ Y4 r8 ^# \
3 x1 o g' O1 Y: H[root@yj423 /root]#cat /etc/fstab 5 ~$ T1 z$ s) o6 S& ]6 Z6 o- B9 [
<filesystem> <mountpoing> <type> <options> <dump> <pass>' h$ r9 @7 n% y' { y5 M
proc /proc proc defaults 0 0# n0 y& O+ S. O" ]3 T; B! |
tmpfs /tmp tmpfs defaults 0 0. E$ K4 d0 E9 o6 {# i' A
sysfs /sys sysfs defaults 0 0
, x$ u% c, _) r: H) P& E$ y, f6 gtmpfs /dev tmpfs defaults 0 0" A2 `. {7 ^- S
var /dev tmpfs defaults 0 03 _- W5 V8 M) h, z+ z+ d" ^
ramfs /dev ramfs defaults 0 0
1 V+ _- W8 Z, t' E: B1 z# a8 e1 t( l: i( m) v/ P8 L( o" @6 Q) J% e
第一列filesystem为mount命令所挂载的设备。
2 ~. f; f: {( @& Z8 x, u, S" W P0 R
第二列mount point为mount命令的挂载点。挂载点必须是一个已存在的目录。3 H# j! G2 ~2 ^7 [
9 q" z' K$ ^' p: e! r6 D/ l
第三列type为文件系统的类型。
$ k8 {/ s3 }5 L4 T; R, x% B6 K w+ {# [6 D; W0 \2 Q4 a
第四列option为mount命令的选项。
' I' y" o. e# A# ~, J) |8 v* u! {9 W; Z( R4 w, A+ K4 R8 P
这里的defaults表示:rw, suid, dev, exec, auto, nouser, and async。
0 t& G+ E K, ^" N9 ]& `" K; R G5 X7 T0 v4 m7 u
rw表示文件系统可以读写。
& Z5 R9 U" s3 m4 f6 |1 @- i' c9 w$ Z9 a) V5 h2 o6 i& X1 K6 [
suid表示当前用户权限和创建该文件的用户权限一样。
/ Z' p) S( @6 I6 j$ i
4 t- g# g& {7 |3 [- `- v% Pdev表示识别文件系统中的字符设备和块设备。与其对应的是nodev。
0 V& v6 @. Q% b1 P6 _5 v# j
; |/ \3 o! q% G: u! ~- Jexec表示可以在设备上运行二进制文件。与其对应的是noexec。
0 B6 D9 d) ]) X' `+ `1 Y4 }* ~# K9 y* B, [
auto表示执行mount -a是会执行该条目。与其对应的是noauto。
$ I S0 F% c2 _6 H9 r6 l9 K, k; K) }8 @. C/ d5 f' m2 z6 V+ W
nosuer表示只有root才能挂载该设备。与其对应的是user。
! H9 S& Z, ^8 M
+ G: I, S+ b# k& p, p6 Yasync表示对该设备的写入操作不会立刻写入设备,而在随后的某个时刻写入。与其对应的是sync。4 p8 I4 I+ [: D7 ~4 n( r
3 e# O6 Y G1 N/ D7 A1 O
第五列dump表示是否使用dump备份该文件系统,如果是0,dump将忽略该文件系统。大多数情况下该列都为0.
; ?# C7 N9 a. T( n: k* W
& w- U1 v/ U- i, F第六列pass表示fsck工具检查文件系统的顺序。0表示不使用fsck。$ T) l/ \. c8 ^
+ w; B/ \ C5 |
7 `6 a! J6 \* J9 Z
# K) H6 _3 j$ c8 A( v2 }( j% d3 ~/ n% d) q, R
r; Q9 z% M4 s
|
|