Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的分析与比较


本文主要讲解Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的作用以及不同之处。

转自http://haohaozhang.blog.51cto.com/9176600/1681827/

/etc/fstab

运维都知道的文件,若想把mount的disk和dir设置为每次开机自动加载,那么就要把相关信息写到这个文件中。当用”mount -a“命令自动mount的时候,也会去读这个文件。例如:

1
2
LABEL= /hadoop/9  /hadoop/9  ext3 defaults,noatime,nodiratime,noauto 0 2
LABEL= /hadoop/10  /hadoop/10  ext3 defaults,noatime,nodiratime,noauto 0 2


/etc/mtab

这个文件主要是用mount命令的时候,系统根据实际mount的情况生成的数据,例如:

1
2
/dev/sdb1  /hadoop/9  ext3 rw,noatime,nodiratime 0 0
/dev/sdc1  /hadoop/10  ext3 rw,noatime,nodiratime 0 0


/proc/mounts

这个文件是/proc/self/mounts的软链接,/proc下面的文件都是保存在内存中的,是内核自动生成的。所以/proc/mounts比/etc/mtab文件能更加真实的反映当前mount的情况。


场景应用:

服务器中有一块盘因为有坏道,被umount了,通过"df -h"就查看不到这块盘的信息了。

或者你使用"chmod 000 /dir",把这块盘设为不能读不能写。

这时如果你管理了1000台服务器,你需要知道你的服务器中哪些盘是被umount了,你会怎么做?

这里分享一个SHELL脚本,可以给你提供思路:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function  check_disks {
   for  in  ` awk  '$3~/ext3/ {printf" %s ",$2}'  /etc/fstab ` ;  do
     fsdev= ""
     fsdev=` awk  - v  m=$m  '$2==m {print $1}'  /proc/mounts `;
     if  [ -z  "$fsdev"  ] ;  then
       msg_= "$msg_ $m(u)"
     else
       msg_= "$msg_`awk -v m=$m '$2==m { if ( $4 ~ /^ro,/ ) {printf" %s(ro) ",$2 } ; }' /proc/mounts`"
     fi
   done
   if  [ -z  "$msg_"  ] ;  then
     echo  "disks ok"  exit  0
   else
     echo  "$msg_"  exit  2
   fi
}

脚本首先通过比较/etc/fstab和/proc/mounts中的不同之处,得到被umount的盘,然后再把ro(read only)的盘也分析出来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要修改Linux的/etc/fstab文件,可以按照以下步骤进行: 1. 打开终端,使用root用户登录系统。 2. 输入命令:vi /etc/fstab,进入编辑模式。 3. 找到需要修改的行,使用键盘上下左右箭头移动光标。 4. 修改需要修改的内容,例如修改挂载点、文件系统类型、挂载选项等。 5. 按下Esc键退出编辑模式,输入:wq保存修改并退出。 6. 重启系统,使修改生效。 需要注意的是,在修改/etc/fstab文件时,一定要谨慎操作,避免出现错误导致系统无法启动。建议在修改前备份原文件,以便出现问题时可以恢复。 ### 回答2: /etc/fstab文件Linux系统的一个重要文件,它存储了硬盘分区或者挂载点的信息,同时还定义了在系统启动时需要挂载哪些文件系统的信息。修改这个文件可以影响Linux系统的启动与运行。 无论是将分区挂载到指定的挂载点上,还是设置开机自动挂载某个分区,都需要修改/etc/fstab文件。修改/etc/fstab文件需要以root管理员身份进行操作。在此之前,我们需要备份一份原始的/etc/fstab文件,以防修改后出现问题无法回溯。 在进行修改之前,我们需要了解以下信息: 设备文件名:分区的设备文件名,例如/dev/sda。 挂载点:将分区挂载到哪个目录下,例如/mnt/data。 文件系统类型:分区所使用的文件系统类型,例如ext4、NTFS等。 挂载选项:挂载分区时需要指定的一些选项,例如读写权限、自动挂载等。 dump频率:对于需要定期备份的分区来说,需要指定dump的频率,通常为0。 文件系统检查顺序:定义磁盘检查程序执行的顺序,通常为1。 在了解以上信息后,我们可以通过以下步骤修改/etc/fstab文件: 1. 执行命令sudo cp /etc/fstab /etc/fstab.bak备份原始文件。 2. 执行命令sudo vim /etc/fstab打开/etc/fstab文件,添加需要修改的信息,例如将目录/mnt/data挂载到/dev/sda1这个分区。 /dev/sda1 /mnt/data ext4 defaults 0 0 3.保存并退出编辑器。 4.执行命令sudo mount -a,使修改的信息立即生效。 5.确认修改是否生效,可以通过执行命令sudo df -h查看已经挂载的文件系统来确认。 通过以上步骤,我们可以在Linux系统修改/etc/fstab文件,并实现对系统启动与运行的相关调整。为了避免对系统的稳定性造成影响,在修改/etc/fstab文件时需要注意谨慎操作,并做好备份工作。 ### 回答3: /etc/fstab文件Linux系统非常重要的一个文件,它记录了系统启动时需要自动挂载的文件系统以及对应的挂载点、挂载选项等信息。因此,修改/etc/fstab文件可以对系统的文件系统进行管理和配置。 要修改/etc/fstab文件,首先需要使用root权限登录系统。然后打开终端,使用编辑器打开/etc/fstab文件。常用的编辑器有nano、vi、gedit等,这里以nano为例: ``` sudo nano /etc/fstab ``` 这将使用sudo权限打开编辑器nano并打开/etc/fstab文件。接下来可以在文件添加、删除或修改条目。 每个条目都包含若干字段,用空格或Tab符号分隔。其最主要的字段是: 1. 文件系统类型:如ext4、ntfs、vfat等。 2. 文件系统位置:通过设备文件路径或UUID指定。 3. 挂载点:文件系统在系统的挂载位置。 4. 挂载选项:用逗号分隔的一些选项,如rw(读写)、ro(只读)、noauto(不自动挂载)等。 比如,要添加一个扩展文件系统(ext4)挂载在/dev/sdb1上并自动挂载到/mnt/data,可以在文件添加一行: ``` /dev/sdb1 /mnt/data ext4 defaults 0 0 ``` 这里使用了默认挂载选项。如果需要指定其他选项,可以根据需求修改。打算删除条目时,可以直接将其行注释掉。 当修改完/etc/fstab文件后,需要保存退出编辑器。输入Ctrl+X,然后按Y确认保存,最后按Enter键退出编辑器。现在可以重新启动系统,修改将在下次启动时生效。 总之,修改/etc/fstab文件需要谨慎,不要删除或修改系统默认的条目,以免造成系统问题。正确地配置/etc/fstab文件,可以方便地管理Linux系统文件系统,提高系统的稳定性和安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值