|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PC主机:Ubuntu 和 redhat 9.01 w7 U; N! _! U2 k
; B4 O: B+ D! R# U1 j- K5 L n& G
目标板:TQ2440开发板 cpu:s3c2440 linux内核:2.6.30* w7 g# {9 _, F( S* L/ O
! j% D2 M( \* y# C- m
下文中所输入的命令就是在开发板中执行。
) i5 @. N& l E8 F9 z1 V5 [3 y7 \' k0 G8 ^$ m9 f
1. fstab的作用$ ?& I' O6 w, g3 m1 B
- e+ k8 B) ?4 K. F% Y7 r' N# k
fstab包含了需要挂载的设备,相应的挂载点,以及属性等。在两种情况下,fstab中的内容将被读取。 h$ s: U$ V, H; Y0 ]/ A
) [& W3 B) t+ O2 P# e 1) 当执行mount -a的时候,fstab配置文件中的所有条目将被一一执行。- J! |% g, h. R; ]( o8 z
) W5 \& n. Z* h4 N
2) fstab配置文件中的内容将作为默认的配置,也就是说当mount命令只知道挂载设备或者是挂载点时,它将搜索fstab文件。,比如,执行mount /tmpfs的时候,此时我并没有给出需要挂载的设备,仅给出了挂载点,但是mount命令会首先查询fstab,如果查找到/tmpfs,将使用该默认配置进行挂载。请看例子:( J" f. Z5 ~6 h5 `8 _3 g
I3 ?; X1 ~* O. a5 Q0 w
* r6 r$ G4 C% \, L& a$ z[root@yj423 /root]#cat /etc/fstab | grep /tmp
# Q8 T2 o% h2 r9 [. A3 f+ w9 Dtmpfs /tmp tmpfs defaults 0 0 8 b) I2 H$ Q6 z; G. `
[root@yj423 /root]#mount /tmp : h2 `- v0 {: i! d
[root@yj423 /root]#mount | grep /tmp
) F, `8 F9 P3 t* ytmpfs on /tmp type tmpfs (rw,relatime)0 f3 A' p0 l5 M2 y
4 d4 z! s+ g' }. x7 I2 c# w0 ~1 F但是如果我们把fstab中/tmp所在的该行删除,则会
1 D# K6 x( T. t* {: F
O; K" ]( [6 }& B$ W1 `. P5 v[root@yj423 /root]#mount /tmp5 D9 n& B- a2 l# x/ p* Q. U9 ^
mount: can't find /tmp in /etc/fstab; @( V% o) ?9 {8 d; n
L) x; }1 W* X" k/ T8 Q" w) `+ m& X1 b8 j6 H' ~5 m. R
2. fstab语法% [& ]* p# f# A6 p$ D3 {
: H) Z. Z* Z+ `- S1 A
首先,先来看下完整的fstab内容
9 P: ?9 ?9 l, H9 a, E2 L/ C' S* g$ ~: P% a( P
[root@yj423 /root]#cat /etc/fstab x! J: A- \0 V3 D% B6 g( ?3 L f
<filesystem> <mountpoing> <type> <options> <dump> <pass>2 A& z( n7 |* m' n
proc /proc proc defaults 0 0
6 X" Y) y4 z4 n6 p7 S( xtmpfs /tmp tmpfs defaults 0 0
3 r( h( Y. }1 L6 [# Y8 x. G" Lsysfs /sys sysfs defaults 0 0% j: e2 f9 G- o/ ?. n) m1 a& f5 z
tmpfs /dev tmpfs defaults 0 0# c' D# s" e3 h2 @
var /dev tmpfs defaults 0 06 J8 T4 R% n$ y$ g8 L3 v n
ramfs /dev ramfs defaults 0 0
3 T8 U- g% X0 I% p5 \4 k3 H: K% p- D. G
第一列filesystem为mount命令所挂载的设备。
* b2 O, b0 |+ B
% L0 N1 }, Z+ P6 \$ Q S第二列mount point为mount命令的挂载点。挂载点必须是一个已存在的目录。
" ]4 j* A+ m% T, N6 k* C3 u+ b8 _: r
第三列type为文件系统的类型。( L( ]/ H* _1 j, N, V$ R2 i. U
( l: E& [" B$ @; q6 j; y
第四列option为mount命令的选项。) y" \, V% l7 y# ?
* }& ~! a a, C# u" h2 _( F/ X9 |这里的defaults表示:rw, suid, dev, exec, auto, nouser, and async。
6 `3 q. V' ?; A5 \ g+ y- C" ` M4 }; ^: T( S. ^5 B8 q4 v( s
rw表示文件系统可以读写。
& b4 \6 u; ]: ]1 V3 U( t7 c5 p2 g; {
suid表示当前用户权限和创建该文件的用户权限一样。8 [) c7 y8 C) M" ?3 O$ C- ~
% c; T9 p4 J% B) y7 F+ k% g8 H- Wdev表示识别文件系统中的字符设备和块设备。与其对应的是nodev。* |# ^0 h* \) K& @# J; K
/ ?$ j! e) L- s" j9 V/ jexec表示可以在设备上运行二进制文件。与其对应的是noexec。
. R. V- h( _! S8 x' ~2 r0 e! W. L, R( d7 y4 Q
auto表示执行mount -a是会执行该条目。与其对应的是noauto。4 ?1 e& W" i E- w4 o9 F1 a
/ c b, d9 v4 Dnosuer表示只有root才能挂载该设备。与其对应的是user。
" D! X) u& h% G: r$ o- k
: R- f; m5 W/ b6 ?3 ?7 oasync表示对该设备的写入操作不会立刻写入设备,而在随后的某个时刻写入。与其对应的是sync。
( q! T2 r6 y8 k+ u; Z' z/ w
5 Q# w3 I5 ^ R& z第五列dump表示是否使用dump备份该文件系统,如果是0,dump将忽略该文件系统。大多数情况下该列都为0.- y% `2 o9 Q5 S8 F8 @
+ r4 t! \: {+ F: E/ c; ?
第六列pass表示fsck工具检查文件系统的顺序。0表示不使用fsck。
$ J7 v9 z1 {3 n" H5 m* E- |* V2 f1 V/ K( }
# k0 e& p; Z3 g- x9 d
^# I7 ?, c) p& Q+ q
' M4 K( ]$ P. h0 S
- l& D" m2 ?, X: N# Q& ~/ y4 S |
|