Chinaunix首页 | 论坛 | 博客
  • 博客访问: 591796
  • 博文数量: 118
  • 博客积分: 2114
  • 博客等级: 大尉
  • 技术积分: 1275
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-10 00:02
文章分类

全部博文(118)

文章存档

2019年(1)

2018年(4)

2017年(1)

2016年(6)

2015年(1)

2014年(1)

2013年(5)

2012年(4)

2011年(17)

2010年(13)

2009年(65)

分类: LINUX

2009-03-10 10:44:27

fstab详解


mount -a 可以重新挂载 /etc/fstab中的分区
‘fstab’的用处
‘/etc/fstab’是‘mount’命令重要的配置文件。您可以‘root’身份通过‘diskdrake’(Mandrake Linux 控制中心 - 载入点),或用编辑器修改这个文件。

‘/etc/fstab’有几个用处:

决定开机时自动挂载哪些介质;

指定每个介质挂载时的可选项、载入点;

系统用来挂载几个虚拟文件系统。

开机时挂载介质
默 认下,开机时‘fstab’中列出的所有介质都将被挂载。如果其中某个介质出了问题,‘mount’会显示出错信息,然后继续下一条目。请注意,这对于网 络介质,比如 NFS 或 SMB 共享,也有效。如果想取消开机时的自动挂载,您得在‘/etc/fstab’给相应条目提供‘noauto’可选项。

指定挂载的可选项和载入点
如果阅读了上一篇,您就已经知道‘mount’命令有两种可选项:常规可选项、文件系统的特殊可选项。

特 殊可选项针对特定的文件系统。如果您在‘fstab’中给某个条目提供了特殊可选项(比如用于 Windows FAT 文件系统的 umask=0),只有相应文件系统的介质才可以通过该条目被挂载。如果您想挂载其他文件系统的介质,要么再设置那个可选项,要么创建单独的条目。

指定载入点有个好处,以后可以省略挂载/卸载时的设备文件名。

mount mount_point

就将在‘/etc/fstab’寻找相应载入点的条目,并按照预先设定完成挂载。

虚拟文件系统
根据系统配置,‘fstab’含有一些虚拟文件系统的条目,这些条目没有列出相应的设备文件。不管如何,请不要动这些条目!

‘proc’挂载的是“进程树”(process tree) ,提供一些系统的信息;

‘pts’启用“伪终端支持”(pseudo terminal support),这是 Unix 的兼容功能;

‘shm’开启“POSIX shared memory”,仅有一小部分程序会用到,不会有负面影响。

section index top

‘fstab’中条目的介绍
本地的固定系统分区
您看到,‘/etc/fstab’中已有几个系统分区(如‘/’)的条目。 就拿这个为例:

/dev/hda3 / ext2 defaults 1 1

语法为:

/dev/hda3 / ext2 defaults 1 1
device_name mount_point file_system options 'dumpe2fs' 'fsck'
这儿有介质(硬盘的分区)的设备名、载入点(/)、文件系统(ext2)。
defaults 包括若干‘mount’的可选项:rw 可读写、 suid 允许设置用户标识符(set-user-identifier)、exec 允许运行程序、auto 开机时自动挂载、nouser 只有‘root’有权卸载、async 允许磁盘延迟存取(caching) 。

最后两个可选项是文件系统工具‘dumpe2fs’、‘fsck’用到的标志。
‘dump’域可设成‘1’(启用)和‘0’(禁用)。由于备份 ext2/ext3 文件系统的程序要用到‘dump’,因此文件系统为 ext2/ext3 的条目要设成‘1’,所有其他条目都为‘0’。
‘fsck’ 域可设成‘0’(不检查文件系统)、‘1’(先检查)、‘2’(检查)。所有非 Linux 文件系统、可移动的和网络介质、虚拟文件系统都要设成‘0’;由于根分区要先被挂载(接着检查),‘/’条目要设成‘1’;而所有其他不可移动的及 Linux 文件系统的本地介质都要设成‘2’。

可移动介质
可移动的数据存储体,比如光盘,需要不同的可选项(如果您没有用‘supermount’):

/dev/cdrom /mnt/cdrom auto user,noauto,exec,ro 0 0

user 允许用户进行挂载、卸载,否则只有‘root’有此权利。请注意,这个可选项会关闭 exec ,您得在 user 可选项后指定 exec ,以使在用户可在挂载的介质中运行程序,这些和上例是一致的。noauto 指开机时不挂载该介质,一些可移动介质就需要这个可选项。 ro 挂载的介质“只读”(read-only) 。‘dump’、‘fsck’都被关闭了。

虽然光盘没有设成自动挂载,但由于‘/etc/fstab’中的这一条目,使得接下来的挂载变得很简单:放入光盘,然后输入:

mount /mnt/cdrom

‘mount’将在‘/etc/fstab’查找和这个载入点联系的那个条目,并采用列出的可选项,因此,这样您就可以省些输入。在 KDE 中,放入光盘后,您只要用鼠标点击那个光盘图标,就能自动运行‘mount’命令。
挂载后的光盘将锁住光驱,要弹出光盘的话,您得先卸载:umount /mnt/cdrom 。

要配置其他可移动介质,您要知道他们的设备文件名,可以看一下 devices.txt 或阅读 有关可移动存储设备的文章 。

本地的固定非系统分区
MS-Windows 分区的条目看起来是什么样呢?假设是在第一块 IDE 硬盘的第二个分区,而且您想要自动挂载:

/dev/hda2 /mnt/win_d vfat umask=0,quiet 0 0

如果是 Windows NT 的 NTFS 分区,就要把‘vfat’换成‘ntfs’。请注意,目前在 Linux 下,只能对 NTFS 的文件系统读,而不能写。

‘umask’可选项将关闭权限监查,没有这项的话,就只有‘root’能存取该设备上的文件。当向这个介质移动文件时,由于无法设置权限,会显示恼人的出错信息,用‘quiet’就可以不显示这些无关紧要的信息。

如 果 Windows 分区中的文件名看起来很奇怪,那您就得再添两个可选项:‘iocharset’和‘codepage’。默认下,‘mount’用‘iso8859-1’ 字符集和 codepage 437 。修改后,可以实现字符转换。man charsets 列出了可用的字符集,将 codepage 设成 850 (codepage=850)就可以解决一些问题。

(注:要显示简体中文的话,得添上 charsets=gb2312,codepage=936)

网络共享
通过‘fstab’也可以配置 NFS 和 SMB 的共享目录。由于涉及到的可选项很重要,并且需要了解一些协议的工作情况,您得先阅读 Samba 和 NFS 。

基本语法和本地介质相差不是很多。条目中的‘device file’换成了远程服务器(remote server)和共享目录(share):

remote_server:share local_mount_point file_system options dump fsck

服务器‘domain.com’上的‘/share/nfs’目录如果是自动挂载到本地的‘/mnt/nfs’目录,并且是可读写的方式,那个条目基本上就类似于:

domain.com:/share/nfs /mnt/nfs nfs rw 0 0

对于 SMB 共享,您基本上只要用‘smbfs’替换‘nfs’。

section index top

使用‘supermount’
如果您使用的是 MDL 8.1 ,请阅读 有关‘supermount’的提示 。

Mandrake Linux 引入‘supermount’是为了简化对可移动介质的处理。为了实现自动挂载介质,这里用了个小技巧:开机时(空的)设备就已挂载,使用时对新插入或移去的介质再作查询。这样您就再也不用去挂载或卸载外部设备,系统都能自动完成。

但还有四个问题,您可能一时还不清楚:如何告诉‘supermount’去处理新添的设备?如何卸载某个介质?如何使用同一设备但不同文件系统的介质?如何通过‘supermount’条目给‘mount’命令传递可选项?

‘supermount’处理新设备
# supermount -i enable

将对‘/etc/fstab’中列出的所有可移动设备启用‘supermount’,为了使其生效,您得重新启动系统。这个命令需要‘root’权限。

如果系统无法识别您新添的外设,‘/etc/fstab’也没有增加条目,您就得自己动手。或者为该设备新建一个标准 fstab 条目,然后运行‘supermount’命令使其生效;或者立即按照‘supermount’的格式,写一个条目。

下面是一个光驱的普通‘supermount’条目:

/mnt/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom 0 0
mount_point mount_point supermount fs=file_system,dev=device 0 0
添加一个新设备,您要知道:载入点(以‘root’身份创建目录:mkdir /mnt/name)、加入介质的文件系统(man mount有支持的类型将其表示的介绍)、设备名(请看 devices.txt 或 有关可移动存储设备的文章 )。

One tricky thing here can be finding out how the vendor formatted the medium. Usually, they do not use the first partition, but either the forth (like Iomega's ZIP) or the fifth (like Castlewood's ORB). Remember to keep this scheme if you reformat the medium for Windows / Mac compatibility.

卸载‘supermount’设备
如果要听唱片,就会用到卸载。现在还没有其他解决措施,只能 umount 该设备,然后就可以接着使用介质,但同时下面的会话中,也就无法使用‘supermount’了。

对不同文件系统使用‘supermount’
‘/etc/fstab’ 中的条目只针对 MS-Windows 文件系统(vfat)有效,而无法直接挂载 GNU/Linux extfs2 格式的介质。解决办法是将该条目中的文件系统类型设为‘auto’,但要确保您用到的文件系统在‘/etc/filesystems’已列出。

这样,当加入介质后,‘supermount’就会在那个文件中寻找合适的参数。

在‘/etc/fstab’中将‘mount’可选项传递给‘supermount’
当‘supermount’处理某设备时,如果您想给‘mount’命令传递可选项,需要用 --, 将其他传递给‘supermount’的可选项分开来。

我们假设您想在‘/etc/fstab’中,给某个‘supermount’条目添加‘umask=0’可选项:

/mnt/zip /mnt/zip supermount fs=vfat,dev=/dev/sda4,--,umask=0 0 0
这样就可以了。

_____________

fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:

1. 第一项是您想要mount的储存装置的实体位置,如hdb或/dev/hda6。

2. 第二项就是您想要将其加入至哪个目录位置,如/home或/,这其实就是在安装时提示的挂入点。

3. 第三项就是所谓的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如ext2,可以参见/prco/filesystems说明。

4. 第四项就是您mount时,所要设定的状态,如ro(只读)或defaults(包括了其它参数如rw、suid、exec、auto、nouser、async),可以参见「mount nfs」。

5. 第五项是提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0。

6. 第六项是设定此filesystem是否要在开机时做check的动作,除了root的filesystem其必要的check为1之外,其它皆可视需要设定,内定值是0。
阅读(1126) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~