zoukankan      html  css  js  c++  java
  • /etc/fstab 文件解释

    /etc/fstab 文件解释

    文件fstab包含了你的电脑上的存储设备及其文件系统的信息。它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件。

    这个文件的全路径是/etc/fstab。它只是一个文本文件,你能够用你喜欢的编辑器打开它,但是必须是root用户才能编辑它。同时fsck、mount、umount的等命令都利用该程序。

    具体来说:用fstab可以自动挂载各种文件系统格式的硬盘、分区、可移动设备和远程设备等。对于Windows与arch双操作系统用户,用fstab挂载FAT格式和NTFS格式的分区,可以在Linux中共享windows系统下的资源。

    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详解

    让我们对fstab的用法进行一个详细的了解。一个典型的entry有下面的fields (fields用空格或tab分开):

    <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>

    它能使你所挂载的设备在开机时自动加载、使中文显示不出现乱码、限制对挂载分区读写权限。它是与mount命令的用法相关的,要想得到一个完整的列表,参考mount manpage.

      • 推荐参数
       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>

    注意: 除了直接用设备(分区)名字,你也可以用UUID或卷名。格式 LABEL=

    用fstab自动挂载FAT32和NTFS分区

    1.先在用fdisk -l(可能需要在root权限下)得到硬盘信息表,例如:

    #  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
    

    从上面知道,这台电脑上只有一个硬盘,其中分区sda1和sda8为NTFS格式,sda1为可以启动的,因而可能为window的系统所在盘。下面把系统盘以只读方式持载上去,非系统盘sda8以读写方式挂载上去(不能挂载在"/"及其以下的任何目录)。

    2.用你喜欢的编辑器在终端中打开/etc/fstab,例如:

                        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
    

    保存,退出。

    警告:使用936的codepage挂在fat32分区可能会造成linux下识别中文正常但是到windows下反而出现乱码,推荐替换成utf8,但是dmesg提示警告,没有关系,n多人用了这么长时间都没有问题

    /dev/sda1 /mnt/WindowsC vfat user,utf8,umask=000 0 0
    


    3.在终端中输入

    mount -a
    

    你就应该能在/mnt/WindowsC下找到你的系统分区sda1内容,在/home/username/WindowsD中找到sda8的内容(其中username指用户名)。

    转自http://www.javaeye.com/articles/368

  • 相关阅读:
    POJ 1003 解题报告
    POJ 1004 解题报告
    POJ-1002 解题报告
    vi--文本编辑常用快捷键之光标移动
    常用图表工具
    September 05th 2017 Week 36th Tuesday
    September 04th 2017 Week 36th Monday
    September 03rd 2017 Week 36th Sunday
    September 02nd 2017 Week 35th Saturday
    September 01st 2017 Week 35th Friday
  • 原文地址:https://www.cnblogs.com/langren1992/p/4893073.html
Copyright © 2011-2022 走看看