Linux /etc/fstab文件详解

我们在linux中常常用mount命令把硬盘分区或者光盘挂载到文件系统中。
      /etc/fstab就是在开机引导的时候自动挂载到linux的文件系统。
   
      在linux中/etc/fstab的数据项如下所示:
      /dev/device   mountpoint   type   rules   0   order 
      例如这是一个普通的/etc/fstab:
      /dev/hda2     /                    ext3        defaults   0 1
      /dev/hda3     swap             swap      defaults   0 0
      /dev/hda5     /usr               ext3        defaults   0 0 
      /dev/fdo        /mnt/flopy     ext3        noauto     0 0
      /dev/cdrom    /mnt/cdrom   iso9660  noauto,ro 0 0
      /dev/device就是需要挂载的设备,/hda2就是第一个IDE插槽上的主硬盘的第二个分区。如果是第二个IDE插槽主硬盘的第三个分区,那就是/dev/hdc3,具体可以在linux下使用fdisk -l  查看。
      mountpoint 就是挂载点。/、 /usr、 swap 都是系统安装时分区的默认挂载点。
      如果你要挂载一个新设备,你就要好好想想了,因为这个新设备将作为文件系统永久的一部分,需要根据FSSTND(文件系统标准),以及它的作用,用户需求来决定。比如你想把它做为一个共享资源,放在/home下面就是一个不错选择。
      type 是指文件系统类形。
      rules 是指挂载时的规则。下面列举几个常用的:
        auto 开机自动挂载 
        default 按照大多数永久文件系统的缺省值设置挂载定义
        noauto 开机不自动挂载
        nouser 只有超级用户可以挂载
        ro 按只读权限挂载
        rw 按可读可写权限挂载
        user 任何用户都可以挂载
       请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto
      0 是指dump(系统备份工具)。这一项为0,就表示从不备份。如果上次用dump备份,将显示备份至今的天数。 
      order 指fsck(启动时fsck检查的顺序)。为0就表示不检查,(/)分区永远都
是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1)。
      如果我要把第二个IDE插槽主硬盘上的windows C 区挂到文件系统中,那么数据项是:
     /dev/hdc1 /c vfat defaults 0 0
     (/c 是事先建立的文件夹,作为c盘的挂载点。)
      
     当你修改了/etc/fstab后,一定要重新引导系统才会有效。

fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:
  1. 第一项是您想要mount的储存装置的实体位置,如hdb或如上例的/dev/hda7。 
  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。


本文转载自:http://blog.chinaunix.net/u1/55527/showart_449692.html


有很多人经常修改/etc/fstab文件,但是其中却有很多人对这个文件所表达的意义不太清楚,因为只要按照一定的模式,就可以轻而易举地添加一行挂载 信息,而不需要完全理解其中的原理。下面就让我们来看看到底还有多少是我们不了解的。

   /etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。

       当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。下面我来介绍如何在此文件下填写信息。

   在这个文件下,我们要关注的是它的六个域,分别为:<file system>、<mount point>、<type> 、<options>、<dump>、<pass>。下面将详细介绍这六个域的详细意义。

      1、<fie sysytem>。这里用来指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。做过嵌入式linux开发的朋友都可能知道 mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock (可以是其他IP)命令所代表的意义。它的任务是把IP为192.168.1.56的远程主机上的/home/nfs/目录挂载到本机的/mnt/nfs /目录之下。如果要把它写进/etc/fstab文件中,file system这部分应填写为:/192.168.1.56:/home/nfs/。

   如果想把本机上的某个设备(device)挂载上来,写法如:/dev/sda1、/dev/hda2或/dev/cdrom,其中,/dev/sda1 表示第一个串口硬盘的第一个分区,也可以是第一个SCSI硬盘的第一个分区,/dev/hda1表示第一个IDE硬盘的第一个分区,/dev/cdrom 表示光驱。

   此外,还可以label(卷标)或UUID(Universally Unique Identifier全局唯一标识符)来表示。用label表示之前,先要e2label创建卷标,如:e2label /dir_1 /dir_2,其意思是说用/dir_2来表示/dir_1的名称。然后,再在/etc/fstab下按如下形式添加:LABEL=/dir_2 /dir_2 <type>   <options> <dump> <pass>。重启后,系统就会将/dir_1挂载到/dir_2目录上。对于UUID,可以用vol_id -u /dev/sdax来获取。比如我想挂载第一块硬盘的第十一个分区,先用命令vol_id -u /dev/sda11 来取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在<file system>这个域上填写: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11。Red Hat linux 一般会使用label,而Ubuntu linux 一般会用UUID。

   2、<mount point>。挂载点,也就是自己找一个或创建一个dir(目录),然后把文件系统<fie sysytem>挂到这个目录上,然后就可以从这个目录中访问要挂载文件系统。对于swap分区,这个域应该填写:none,表示没有挂载点。

       3、<type>。这里用来指定文件系统的类型。下面的文件系统都是目前Linux所能支持的:adfs、befs、cifs、ext3、 ext2、ext、iso9660、kafs、minix、msdos、vfat、umsdos、proc、reiserfs、swap、 squashfs、nfs、hpfs、ncpfs、ntfs、affs、ufs。

   4、<options>。这里用来填写设置选项,各个选项用逗号隔开。由于选项非常多,而这里篇幅有限,所以不再作详细介绍,如需了解,请用 命令 man mount 来查看。但在这里有个非常重要的关键字需要了解一下:defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser和 async。

   5、<dump>。此处为1的话,表示要将整个<fie sysytem>里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0。

   6、<pass>。这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字 的同时检查。比如第一和第二个分区填写2,第三和第四个分区填写3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个 分区。



  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 如果Linux系统中的/etc/fstab文件不能修改,可能是由于权限问题导致的。要解决这个问题,你可以尝试以下几种方法: 1. 使用root权限:确保你以root用户身份登录系统,并使用root权限进行修改。可以使用sudo命令来获取root权限,例如:sudo vi /etc/fstab。 2. 修改文件属性:检查/etc/fstab文件的属性,确保你有足够的权限进行修改。可以使用ls -l命令查看文件属性,如果你没有写入权限,可以使用chmod命令来修改文件权限,例如:sudo chmod +w /etc/fstab。 3. 检查文件系统:如果你的文件系统是只读的,你将无法修改/etc/fstab文件。可以使用mount命令来检查文件系统的挂载状态,如果是只读的,可以尝试重新挂载文件系统为可写模式,例如:sudo mount -o remount,rw /。 4. 检查文件锁定:有时候/etc/fstab文件可能被其他进程锁定,导致无法修改。可以使用lsof命令来查看哪个进程正在使用该文件,然后终止该进程或等待其释放文件。 请注意,在修改/etc/fstab文件之前,建议先备份该文件,以防止意外情况发生。 #### 引用[.reference_title] - *1* [Linux系统中 /etc/fstab 文件的深入解读](https://blog.csdn.net/weixin_35884307/article/details/117005593)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [linux /etc/fstab 文件详细说明](https://blog.csdn.net/qq_27546717/article/details/119720167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Linux之/etc/fstab文件详解及实践](https://blog.csdn.net/carefree2005/article/details/125632867)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值