Linux系统开机自动挂载文件fstab介绍
Linux系统开机自动挂载文件fstab介绍
一、fstab简介
fstab文件中包含了各种各样的文件系统描述信息,它可以被特殊的工具修改,fstab中每一个文件系统描述占一行,每一行是TAB或空格分隔。
二、fstab文件内容介绍
[root@Centos ~]# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Sun Aug 7 05:42:06 2016
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
UUID=4eff9bdb-7e0b-4d25-8931-dc776537bc73 /boot ext4 defaults 1 2
/dev/mapper/VolGroup-lv_home /home ext4 defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
第一列需要挂载的设备(/dev/sda)或远程文件系统(nfs)
第二列是文件系统的挂载点
第三列是需要挂载的文件系统
第四列挂载所需带有参数
async 此参数表明所涉及的文件系统I/O都是异步处理,不会同步写入磁盘能提高性能,生产环境一般不用
atime 此参数表明在每一次数据访问时,同步更新每次的访问的inode时间,是默认参数,实际生产环境中高并发情况不建议使用
auto 能够被自动挂载通过-a 选项
defaults 缺省值(rw,suid,dev,auto)
noatime不同步更新文件系统访问inode时间,提高I/O性能,实际生产环境常用
noauto不自动进行挂载
noexec不可执行可执行程序
第五列决定文件系统是否需要通过dump,通常设置为0或1
第六列控制文件是否需要开机进行fsck检查
0为不需要,根分区一般设置为1,/boot分区一般设置为2
三、配置fstab文件
[root@Centos ~]# vi /etc/fstab
# /etc/fstab
# Created by anaconda on Sun Aug 7 05:42:06 2016
# Accessible filesystems, by reference, are maintained under '/dev/disk'
/dev/mapper/VolGroup-lv_home /home ext4 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
192.168.1.2:/data/bbs /mnt nfs defaults 0 0
保存退出即可
四:配置测试
前面也提到过,我们可以把开机自动启动的文件放在/etc/rc.local下面
因此在测试此配置之前,我们先来测试下/etc/rc.local能否达到开机自动挂载的需求
[root@localhost ~]# cat /etc/rc.local
#!/bin/sh
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
[root@localhost ~]# echo "/bin/mount -t nfs 192.168.1.2:/data/bbs /mnt">>/etc/rc.local
[root@localhost ~]# tail -1 /etc/rc.local
/bin/mount -t nfs 192.168.1.2:/data/bbs /mnt
[root@localhost ~]# reboot
重启系统测试开机挂载情况
[root@localhost /]# df -h 查看是否挂载成功
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 18G 3.3G 14G 20% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 485M 35M 426M 8% /boot
192.168.1.2:/data/bbs 50G 3.5G 44G 8% /mnt
经测试可以实现开机自动挂载
接下来我们将自动挂载命令放在/etc/fstab下面测试下
这里注明下,在配置/etc/fstab文件前记得备份
[root@localhost ~]# cp /etc/fstab /etc/fstab.ori.bak.20160818
[root@localhost /]# vi /etc/fstab
# /etc/fstab
# Created by anaconda on Fri Aug 19 20:33:46 2016
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
192.168.1.2:/data/bbs /mnt nfs defaults 0 0
"/etc/fstab" 16L, 833C written
[root@localhost /]# tail -1 /etc/fstab 检查配置
192.168.1.2:/data/bbs /mnt nfs defaults 0 0
配置完成,重启系统
[root@localhost /]# reboot
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 18G 3.3G 14G 20% /
tmpfs 491M 72K 491M 1% /dev/shm
/dev/sda1 485M 35M 426M 8% /boot
192.168.1.2:/data/bbs 50G 3.5G 44G 8% /mnt
同样也可以开机自动挂载成功
但是实际生产环境中,这种做法是不建议的,因为如果当NFS服务端处于不可用状态,那么客户端开机后可能会导致无法启动的风险,因开机启动的顺序是/etc/fatab先启动,/etc/rc.local后启动,因此要实际生产环境中,要形成一定规范,要么将启动内容放入/etc/rc.local,要么将启动内容放入/etc/fatab中。
五:fstab故障导致开机无法启动解决方法
故障环境操作系统是Centos 6.5
开机加载后出现如下提示,提示开机检查时出现一个错误
系统加载错误,无法启动了
方法一:
提示输入root密码或control-D 继续,这里我们输入管理员密码
编辑/etc/fstab时,提示无法写入
接下来执行下面命令进行修改
[root@localhost ~]# mount -o rw,remount /
[root@localhost ~]# cp /etc/fstab.ori.bak.20160818 /etc/fstab
[root@localhost ~]# reboot
可以正常启动了
方法二:
利用系统光盘引导进行恢复,先设置好从光驱启动
重启系统后选择救援模式
进入后选择二个默认选项
选择不从网卡启动
选择启动shell
从上面得知目录被挂载在/mnt/sysimage下面,因此执行前面的备份文件进行恢复即可
重启系统,将启动设置为磁盘启动
输入用户名与密码,成功登陆系统,恢复成功。
- 【Windows编程】创建多文档界面
- 生产环境sqlldr加载性能问题及分析之二(r2第20天)
- [Python]从豆瓣批量获取看过电影的用户列表,并应用kNN算法预测用户性别
- 关于desc的一个奇怪问题及分析(r2第18天)
- R语言进行中文分词,并对6W条微博聚类
- 只言片语分析datapump的工作原理(r2第18天)
- 开发 | TensorFlow全新的数据读取方式:Dataset API入门教程
- 用python实现支持向量机对婚介数据的用户配对预测
- SQL*Loader-805的解决(r2笔记36天)
- 用python实现决策树ID3算法,对隐形眼镜类型预测
- 用GA算法设计22个地点之间最短旅程-R语言实现
- 开发 | 谷歌发布TensorFlow 1.4版本:支持分布式训练,迎来三大新变化
- 创建用户时的密码校验问题(r2第34天)
- 巧用xmltype解析clob数据(r2笔记33天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter异步编程async与await的基本使用
- 教大家一个万能PPT图片排版技巧,太赞了!
- 重复读取 HttpServletRequest 中 InputStream 的方法
- 测试面试题集锦(三)| 计算机网络和数据库篇(附答案)
- 关于Scikit-Learn你(也许)不知道的10件事
- 技术天地 | CSS-in-JS:一个充满争议的技术方案
- 安全研究 | 通过域名劫持实现Azure DevOps账户劫持
- 一款针对DLL劫持的恶意DLL生成器
- AuthMatrix:一款针对Web应用和服务的认证安全检测BurpSuite工具
- KITT-Lite:基于Python实现的轻量级命令行渗透测试工具集
- 一次KimSuky攻击事件分析
- OpenCV中如何使用滚动条动态调整参数
- 一文读懂「分布式架构」
- 老哥,您看我这篇Java集合,还有机会评优吗?
- 在 IDEA 中使用 Java 热部署插件 JRebel