jasmine214--love

只有当你的内心总是充满快乐、美好的愿望和宁静时,你才能拥有强壮的体魄和明朗、快乐或者宁静的面容。
posts - 731, comments - 60, trackbacks - 0, articles - 0

Linux 指令篇:文件系统--fstab

Posted on 2010-12-31 11:54 幻海蓝梦 阅读(675) 评论(0)  编辑  收藏 所属分类: Linux
指令:fstab
使用权限 : 超级使用者
使用方式 : 使用编辑器来修改 /etc/fstab (eg. vi /etc/fstab)
说明 : 存放档案系统与目录结构对应资料的档案
fstab 栏位说明:
第一栏(fs_spec): 实际的 device 名称
第二栏(fs_file): 对应到的目录结构(mount point)
第三栏(fs_vfstype):该 partition 的档案系统,常见的有:
minix、ext、ext2、msdos、iso9660、nfs、swap
第四栏(fs_mntops): 在 mount 时的参数
第五栏(fs_freq): 在使用 dump 时是否记录,不需要则输入0
第六栏(fs_passno): 决定在开机时执行 fsck 的先后顺序
例子 :
IDE 硬盘分成两个 partition 与一个 swap,还有一台光碟机跟一台软碟机的情形 :
/dev/hda1 / ext2 defaults 1 1
/dev/hda5 /home ext2 defaults 1 2
/dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0
/dev/hda6 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext2 noauto,owner 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0  

如果想开机就自动挂载(mount)上,可以在/etc/fstab上添加如下几行:
/dev/hda5 /mnt/d vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
同时也解决了中文文件名的乱码问题,我的fstab文件如下,仅供参考:
LABEL=/12 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda4 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/hda1 /mnt/c vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda5 /mnt/d vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda6 /mnt/e vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda7 /mnt/f vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda8 /mnt/g vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
fstab解读
从做到右:
/dev/device mount-point type rules dump fsck
1. /dev/device: 不用说了吧?例如,/dev/hda1 为M$-Win9x下的c:盘。
2. mount-point: 挂载点。例如,把/dev/hda1挂到/mnt/mywinc下。
3. type: ext3, vfat, ......就是要挂上的文件系统类型。
4. rules:
auto: 开机自动挂接;
default, noauto: 开机不自动挂接;
nouser: 只有root可挂;
ro: 只读挂接;
rw: 可读可写挂接;
user: 任何用户都可以挂接;
5. dump: 备份;0为从不备份,或显示上次至今备份之天数;
6. fsck: 启动时fsck检查顺序,0为不检查, “/”永远为1;
我的就是:
/dev/hda1 /mnt/mywinc vfat default 0 0
在fstab中加载分区
mkdir /mnt/win_c
vi /etc/fstab
:::::add:::::
/dev/hda1 /mnt/win_c vfat default,pagecode=936,iocharset=cp936 0 0
/etc/fastab释疑
1. fstab文件的作用
文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount
/directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格
或tab键分开。同时fsck、mount、umount的等命令都利用该程序。
2. fstab文件格式
下面是/etc/fatab文件的一个示例行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说
:IDE设备一般描述为/dev/hdaXN,X是IDE设备通道(a, b, or c),N代表分区号;SCSI设备一描述
为/dev/sdaXN。对于NFS情况,格式一般为:,例如:`knuth.aeb.nl:/'。对于procfs,使用
`proc'来定义。
fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包
含空格的情况,用40来表示空格。
fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (linux设备的常用文件类型)、
vfat(Windows系统的fat32格式)、NTFS、iso9600等。
fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对
于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:
选项 含义
ro 以只读模式加载该文件系统
sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低
了计算机速度
user 允许普通用户加载该文件系统
quota 强制在该文件系统上进行磁盘定额限制
noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统
fs_dump - 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置
该字段为0
fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字
段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0
3. 示例文件
# /etc/fstab
/dev/hda9 swap swap defaults 0 0
/dev/hda1 / ext2 defaults 1 1
/dev/hda5 /home ext2 defaults 1 1
/dev/hda6 /usr ext2 defaults 1 1
/dev/hda7 /usr/local ext2 defaults 1 1
/dev/hda8 /var ext2 defaults 1 1
/dev/hdb /cdrom iso9660 noauto,user 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0


如果要用好linux,一定需要熟悉linux的一些核心配置文件,为此我们组织了一系统文章,对这些文件的
相关信息进行介绍。
Fstab文件保存关于文件系统的信息。
这个文件描述系统中各种文件系统的信息。一般而言,应用程序仅读取这个文件,而不对它进行写操
作。对它的维护是系统管理员的工作。在这个文件中,每个文件系统用一行来描述,在每一行中,用空格
或TAB符号来分隔各个字段,文件中以*开头的行是注释信息。Fstab文件中的纪录的排序十分重要。因为
fsck,mount或umount等程序在做它们的工作时会按此顺序进行。
第一个字段是对文件系统的定义(fs spec),它描述了将被装载的块设备或远程文件系统。对于通常
的mount操作而言,这个字段应该包括一个将被装载的块设备的设备结点(通过mknod命令来创建)或指向这
类结点的连接(例如/dev/cdrom或/dev/sdb),对于NFS mount操作,这个字段应该包含host:dir格式的信
息,例如:knuth.aeb.nl:/,对于进程文件系统procfs,使用proc。
除了显示的使用设备名,你可以使用设备的UUID或设备的卷标签,例如,你可以在这个字段写成
“LABAL=root”或“UUID=3e6be9de-8139-11d1-9106-a43f08d823a6”,这将使系统更具伸缩性。例如,
如果你的系统添加或移除了一个SCSI硬盘,这有可以改变你的设备名,但它不会修改你的卷标签。
每二个字段(fs file),描述文件系统的载入点,对于交换分区(swap),这个字段定义为none,如果
在载入点的路径中包含空格符,可以用“\040”来替代空格符。
第三个字段,文件系统类型(fs vfstype),主要用来定义文件系统的类型。Linux系统支持大量的文
件类型,包括sdfs,affs,autofs,jfs,minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs,
romfs,,smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs等等。如果想了解你的kernel目前
支持哪些文件系统,可以查看/proc/filesystems的内容。如果这个字段定义为swap,这条纪录将关联到
一个用于交换目的的文件或分区。如果这个字段定义为ignored,这行将被忽略。这对于显示目前没有使
用的分区非常有用。
每四个字段,文件系统选项(fs mntops)在装载文件系统时使用的装载选项。多个选项之间用逗号做
分隔符,这些选项列表包括了装载类型以及对于该文件系统合适的其它装载选项。对于非NFS系统可用的
装载选项可以参看mount命令的说明,对于nfs系统的选项可以查看关于nfs的文档。对于所有文件系统都
适用的选项有noauto(当使用mount Ca命令时不载入),user(允许用户进行装载),owner(允许设备所有
人装载),_netdev(设备需要网络),后两个选项是linux系统所特有的。
第五个字段,文件系统频率(fs_freq),被dump程序使用来确定哪个文件系统需要dump,如果最后一
个字段没有设置,系统将认为其值为0,而dump程序则认为此文件系统无需dump。
第6个字段(fs_passno)被fsck程序所使用来确定进行在系统重启进行文件系统检查时的顺序,对于根
系统/这个值应设为1,其它文件系统可以设为2,在同一个物理硬盘内的文件系统应该被顺序检测,而不
同硬盘中的文件系统则应该同时检测以充分利用系统的并行性。如果最后一个字段值为0或没有设置,
fsck程序装跳过此文件系统的检测。在linux编程中可以用getmntent过程来访问这个文件的内容。

# /etc/fstab: static file system information.
#
#               
proc            /proc           proc    defaults        0       0
/dev/sda3       /               ext3    defaults,errors=remount-ro 0       1
/dev/sda7       none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/sda5       /mnt/winc       vfat    defaults,iocharset=utf8,codepage=936       0      0
/dev/sda6       /mnt/wind       vfat    defaults,iocharset=utf8,codepage=936      0      0
~
最后两行是挂载fat32分区的,iocharset  和codepage 解决文件夹 中文乱码问题    locale 显示
********************
#locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh:en_US:en
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
***********************
所以iocharset使用utf8
问题解决:
/dev/hda8 /mnt/g vfat exec,dev,suid,rw,umask=0,iocharset=cp936,codepage=936 0 0
参考加抄录的地址:
http://www.linuxfans.org/nuke/modules.php
?
name=Forums&file=viewtopic&t=137837&postdays=0&postorder=asc&start=15
http://www.linuxmine.com/520.html
http://blog.chinaunix.net/u/12673/showart_183406.html
http://www.linuxdby.com/?action_tag_tagname_Fstab.html

原文:http://www.36ji.net/article/1018/8310.html

只有注册用户登录后才能发表评论。


网站导航: