/********************************************************
* Author: Goup
*
* Date: 2017-09-04 15:27
*
* Description: regular expression
*
********************************************************/
/etc/fstab 设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区
/etc/fstab 文件包含了如下字段,通过空格或 Tab 分隔:
<file system> <dir> <type> <options> <dump> <pass>
#第一列:要被挂载的磁盘设备
#第二列:前面目录的挂载点(前面的目录挂载到哪个目录下)
#第三列:挂载的文件系统类型!支持许多种不同的文件系统:ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto。 设置成auto类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的。
#第四列:挂载的选项!注意有些mount 参数是特定文件系统才有的。一些比较常用的参数有
auto - 在启动时或键入了 mount -a 命令时自动挂载。
noauto - 只在你的命令下被挂载。
exec - 允许执行此分区的二进制文件。
noexec - 不允许执行此文件系统上的二进制文件。
ro - 以只读模式挂载文件系统。
rw - 以读写模式挂载文件系统。
user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。
users - 允许所有 users 组中的用户挂载文件系统.
nouser - 只能被 root 挂载。
owner - 允许设备所有者挂载.
sync - I/O 同步进行。
async - I/O 异步进行。
dev - 解析文件系统上的块特殊设备。
nodev - 不解析文件系统上的块特殊设备。
suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
nosuid - 禁止 suid 操作和设定 sgid 位。
noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。
flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async.
#第五列:是否需要备份磁盘,1表示需要备份,0表示不需要备份
#第六列:开机是否自检
文件系统标识
在 /etc/fstab配置文件中你可以以三种不同的方法表示文件系统:内核名称、UUID 或者 label。使用 UUID 或是 label 的好处在于它们与磁盘顺序无关。如果你在 BIOS 中改变了你的存储设备顺序,或是重新拔插了存储设备,或是因为一些 BIOS 可能会随机地改变存储设备的顺序,那么用 UUID 或是 label 来表示将更有效。
要显示分区的基本信息请运行:
[root@localhost ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0 iso9660 RHEL_6.5 x86_64 Disc 1 /yum/iso
sda
├─sda1 ext4 84ab1582-bf50-4cee-8fa1-3c437d58fd30 /boot
├─sda2 swap fae16eba-3ddd-4c3e-9db4-82d705873828 [SWAP]
└─sda3 ext4 f7720d29-4e0d-4caa-9bb1-e5aca75f4c39 /
sr0
sr1
UUID
所有分区和设备都有唯一的 UUID。它们由文件系统生成工具 (mkfs.*) 在创建文件系统时生成。
lsblk -f 命令将显示所有设备的 UUID 值。/etc/fstab 中使用 UUID= 前缀:
手动挂载测试
1:创建一个虚拟的块设备
[root@Gin scripts]# dd if=/dev/zero of=/dev/sdb1 bs=4096 count=10
2:格式化 [root@Gin scripts]# mkfs.ext4 /dev/sdb1
3:挂载 [root@Gin scripts]# mount -t ext4 -o loop,noatime,noexec /dev/sdb1 /mnt
4:查看挂载设置 [root@Gin scripts]# df -hT
5:写入/etc/fstab配置文件,开机自动挂载!也可以写入到/etc/rc.local文件
[root@Gin scripts]# cat /etc/fstab
UUID=435a2a45-0f41-49b0-b3f2-5d4a00615339 / ext4 defaults 1 1
UUID=851d3618-fb61-40cb-ba6d-e0879a7d06a3 /boot ext4 defaults 1 2
UUID=91f17110-1462-4327-82ce-474f728f2e62 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/sdb1 /mnt ext4 loop,noatime,noexec 0 0
#上面的/dev/sdb1需要挂载的目录,可以使用UUID来替代,查看UUID命令如下:blkid 或 ls -l /dev/disk/by-uuid
fstab出问题的修复方案:
1)开机提示,输入密码 修改
2)救援模式,rescue
修复/etc/fstab只读状态:mount -o rw,remount /
* Author: Goup
*
* Date: 2017-09-04 15:27
*
* Description: regular expression
*
********************************************************/
/etc/fstab 设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区
/etc/fstab 文件包含了如下字段,通过空格或 Tab 分隔:
<file system> <dir> <type> <options> <dump> <pass>
#第一列:要被挂载的磁盘设备
#第二列:前面目录的挂载点(前面的目录挂载到哪个目录下)
#第三列:挂载的文件系统类型!支持许多种不同的文件系统:ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto。 设置成auto类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的。
#第四列:挂载的选项!注意有些mount 参数是特定文件系统才有的。一些比较常用的参数有
auto - 在启动时或键入了 mount -a 命令时自动挂载。
noauto - 只在你的命令下被挂载。
exec - 允许执行此分区的二进制文件。
noexec - 不允许执行此文件系统上的二进制文件。
ro - 以只读模式挂载文件系统。
rw - 以读写模式挂载文件系统。
user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。
users - 允许所有 users 组中的用户挂载文件系统.
nouser - 只能被 root 挂载。
owner - 允许设备所有者挂载.
sync - I/O 同步进行。
async - I/O 异步进行。
dev - 解析文件系统上的块特殊设备。
nodev - 不解析文件系统上的块特殊设备。
suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
nosuid - 禁止 suid 操作和设定 sgid 位。
noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。
flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async.
#第五列:是否需要备份磁盘,1表示需要备份,0表示不需要备份
#第六列:开机是否自检
文件系统标识
在 /etc/fstab配置文件中你可以以三种不同的方法表示文件系统:内核名称、UUID 或者 label。使用 UUID 或是 label 的好处在于它们与磁盘顺序无关。如果你在 BIOS 中改变了你的存储设备顺序,或是重新拔插了存储设备,或是因为一些 BIOS 可能会随机地改变存储设备的顺序,那么用 UUID 或是 label 来表示将更有效。
要显示分区的基本信息请运行:
[root@localhost ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
loop0 iso9660 RHEL_6.5 x86_64 Disc 1 /yum/iso
sda
├─sda1 ext4 84ab1582-bf50-4cee-8fa1-3c437d58fd30 /boot
├─sda2 swap fae16eba-3ddd-4c3e-9db4-82d705873828 [SWAP]
└─sda3 ext4 f7720d29-4e0d-4caa-9bb1-e5aca75f4c39 /
sr0
sr1
UUID
所有分区和设备都有唯一的 UUID。它们由文件系统生成工具 (mkfs.*) 在创建文件系统时生成。
lsblk -f 命令将显示所有设备的 UUID 值。/etc/fstab 中使用 UUID= 前缀:
手动挂载测试
1:创建一个虚拟的块设备
[root@Gin scripts]# dd if=/dev/zero of=/dev/sdb1 bs=4096 count=10
2:格式化 [root@Gin scripts]# mkfs.ext4 /dev/sdb1
3:挂载 [root@Gin scripts]# mount -t ext4 -o loop,noatime,noexec /dev/sdb1 /mnt
4:查看挂载设置 [root@Gin scripts]# df -hT
5:写入/etc/fstab配置文件,开机自动挂载!也可以写入到/etc/rc.local文件
[root@Gin scripts]# cat /etc/fstab
UUID=435a2a45-0f41-49b0-b3f2-5d4a00615339 / ext4 defaults 1 1
UUID=851d3618-fb61-40cb-ba6d-e0879a7d06a3 /boot ext4 defaults 1 2
UUID=91f17110-1462-4327-82ce-474f728f2e62 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/sdb1 /mnt ext4 loop,noatime,noexec 0 0
#上面的/dev/sdb1需要挂载的目录,可以使用UUID来替代,查看UUID命令如下:blkid 或 ls -l /dev/disk/by-uuid
fstab出问题的修复方案:
1)开机提示,输入密码 修改
2)救援模式,rescue
修复/etc/fstab只读状态:mount -o rw,remount /