文件fstab包含了你的电脑上的存储设备及其文件系统的信息。它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件。
fstab文件示例
# <file system><dir><type><options><dump><pass> none /dev/pts devpts defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/cdrom /media/cd iso9660 ro,user,noauto,unhide 0 0 /dev/dvd /media/dvd udf ro,user,noauto,unhide 0 0 /dev/fd0 /media/fl auto user,noauto 0 0 /dev/hda1 swap swap defaults 0 0 /dev/hda4 / ext3 defaults 0 1 /dev/hda3 /home xfs rw,suid,exec,auto,nouser,async 0 2 </pass></dump></options></type></dir></file>
fstab详解
<file system><dir><type><options><dump><pass></pass></dump></options></type></dir></file>
- <file systems> 不是我们通常理解的文件系统,而是指设备(硬盘及其分区,DVD光驱等)。它告知我们设备(分区)的名字,这是你在命令行中挂载(mount)、卸载(umount)设备时要用到的。so one should substitute for this entry the device name, remote partition, or similar. </file>
- , 告诉我们设备挂载到哪里。
- <type> 指挂载设备或分区为何种文件系统类型(例如:ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap等)。 archLinux支持许多文件系统。 要得到一个完整的支持名单查找mount man-page。典型 的名字包括这些:ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap和auto, 'auto' 不是一个文件系统,而是让mount命令自动判断文件类型,特别对于可移动设备,软盘,DVD驱动器,这样做是很有必要的,因为可能每次挂载的文件类型不一致。 </type>
- <options>,选项,这部分是最有用的设置!!! </options>
-
- 推荐参数
noatime 关闭atime特性,提高性能,这是一个很老的特性,放心关闭,还能减少loadcycle
-
- 默认设置
defaults 使用默认设置。等于rw,suid,dev,exec,auto,nouser,async,具体含义看下面的解释。
-
- 自动与手动挂载
auto 在启动或在终端中输入mount -a时自动挂载 noauto 设备(分区)只能手动挂载 The file system can be mounted only explicitly.
-
- IO编码设置
iocharset= 在=号后面加入你的本地编码,似乎在这个设备(分区)中做文件IO的时候就会自动做编 码的格式转换。 例如:你的某个分区是编码是utf8,而设备中文件的编码是gb2312,当是复制你设备中的文件到你的这 个分区时,它将自动做编码转换。 (不知道我的理解对不对,但是好像用下面的nls就可以实现转换。)
-
- 中文乱码的解决
nls= 在=号后面加入你的本地编码,你的中文就不会出现乱码。
-
- 读写权限
umask= 这是关于读写权限的,好像比下面的ro,rw选项更管用!!! 例如:umask=000或0222,使得挂载时option中有default,普通用户仍然能读写挂载设备中的东西。 请大家补充!!! ro 挂载为只读权限 rw 挂载为读写权限
-
- 可执行
exec 是一个默认设置项,它使在那个分区中的可执行的二进制文件能够执行。 noexec 二进制文件不允许执行。千万不要在你的root分区中用这个选项!!!
-
- I/O同步
sync 所有的I/O将以同步方式进行 async 所有的I/O将以非同步方式进行
-
- 用户挂载权限
user 允许任何用户挂载设备。 Implies noexec,nosuid,nodev unless overridden. nouser 只允许root用户挂载。这是默认设置。
suid Permit the operation of suid, and sgid bits. They are mostly used to allow users on a computer system to execute binary executables with temporarily elevated privileges in order to perform a specific task. nosuid Blocks the operation of suid, and sgid bits.
- <dump> 是dump utility用来决定是否做备份的. 安装之后(Arch Linux默认是不安装dump的), dump会检查entry并用数字来决定是否对这个文件系统进行备份。允许的数字是0和1。如果是0,dump就会忽略这个文件系统,如果是1,dump就会作一个备份。大部分的用户是没有安装dump的,所以对他们而言<dump>这个entry应该写为0。 </dump></dump>
- <pass> fsck会检查这个头目下的数字来决定检查文件系统的顺序(looks at the number substituted for <pass> and determines in which order the file systems should be checked)。允许的数字是0, 1, 和2。 文件系统的<pass>选项是0将不会被fsck utility检查。root文件系统应该拥有最高的优先权, 1,而所有其它的文件系统,如果你想让它被check的话,应该写成2。 </pass></pass></pass>
用fstab自动挂载FAT32和NTFS分区
# Device Boot Start End Blocks Id System /dev/sda1 * 1 2397 19253871 b W95 FAT32 /dev/sda2 2398 3144 6000277+ 83 Linux /dev/sda3 3145 9729 52894012+ 5 Extended /dev/sda5 3145 3152 64228+ 83 Linux /dev/sda6 3153 3276 995998+ 82 Linux swap / Solaris /dev/sda7 3277 7340 32644048+ 83 Linux /dev/sda8 7341 9729 19189611 7 HPFS/NTFS
nano /etc/fstab
/dev/sda1 /mnt/WindowsC vfat defaults,codepage=936,iocharset=cp936,umask=0222 0 0 /dev/sda8 /mnt/WindowsD ntfs defaults,iocharset=utf8,umask=000,nls=utf8 0 0
/dev/sda1 /mnt/WindowsC vfat user,utf8,umask=000 0 0
mount -a