有关/etc/fstab

本文详细介绍了Linux系统中/etc/fstab文件的作用,它是用于设置开机自动挂载文件系统的关键。文章讲解了fstab的六个关键字段,包括设备名、挂载点、文件系统类型、挂载选项、dump备份设置和fsck检查。同时,还通过挂载实例,演示了创建虚拟块设备、格式化和挂载的步骤,以及如何将挂载设置写入/etc/fstab实现开机自动挂载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开机挂载/etc/fstab

/etc/fstab 记录开机要挂载的文件系统的一个文件。当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。
简单的说,就是设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区。

想要在开机的时候就将需要的文件系统都挂好,使得每次进入Linux系统不用再次挂载,我们可以对/etc/fstab进行修改。

fstab - static information about the filesystems有关文件系统的静态信息。
fstab一旦配置错误,会导致服务器无法启动。

系统挂载的一些限制:
  • 根目录/是必须挂载的,且一定要先于其他挂载点被挂载进来
  • 其他的挂载点必须为已新建的目录,可任意指定,但一定要遵守必需的系统目录架构原则
  • 所有的挂载点在同一时间内,只能挂载一次
  • 所有分区在同一时间之内,只能挂载一次
  • 如若进行卸载,必须先将工作目录移到挂载点(及其子目录)之外
[root@ianLinux ~]# df -h #查看磁盘分区的情况
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       9.2G  1.6G  7.2G  18% /
tmpfs           731M     0  731M   0% /dev/shm
/dev/sda1       194M   29M  155M  16% /boot

/etc/fstab文件中的六个字段

[root@ianLinux ~]# cat /etc/fstab
...
tmpfs  /dev/shm  tmpfs   defaults  0  0
sysfs  /sys      sysfs   defaults  0  0
proc   /proc     proc    defaults  0  0
...

这里写图片描述

第一列:挂载的设备,可以是设备名,或UUID,或磁盘标签。

第二列:挂载点。找一个或创建一个目录,然后把文件系统挂到这个目录上,然后就可以从这个目录中访问要挂载的文件系统。

第三列:type,指定文件系统的类型。ext3,ntfs等等。

第四列:设置选项,文件系统参数,各个选项用逗号隔开。可用man mount查看。defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser,async。

第五列:能否被dump备份命令作用。dump为0,表示不备份。

第六列:是否以fsck检验扇区。开机的过程中,系统默认会以fsck检验我们的文件系统是否完整(clean)。0是不要检验,1表示最早检验(一般只有跟目录会设置为1),2也是要检验。

挂载实例

1.创建一个虚拟的块设备
[root@ianLinux ~]# dd if=/dev/zero of=/dev/sdb1 bs=4096 count=100
记录了100+0 的读入
记录了100+0 的写出
409600字节(410 kB)已复制,0.0060427 秒,67.8 MB/秒
[root@ianLinux ~]# ll /dev/sdb1
-rw-r--r-- 1 root root 409600 826 18:01 /dev/sdb1

dd命令:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
if=文件名,输入文件名;
of=文件名,输出文件名;
bs=bytes,同时设置读入/输出的块大小为bytes个字节;
count=blocks,仅拷贝blocks个块。

2.挂载前先格式化
[root@ianLinux ~]# mkfs.ext4 /dev/sdb1

这里写图片描述

3.挂载

(1)命令行手动挂载

[root@ianLinux ~]# mount -t ext4 -o loop,noatime,noexec /dev/sdb1 /mnt
[root@ianLinux ~]# df -h #查看是否挂载成功
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       9.2G  1.6G  7.2G  18% /
tmpfs           731M     0  731M   0% /dev/shm
/dev/sda1       194M   29M  155M  16% /boot
/dev/sdb1       388K   15K  353K   5% /mnt
[root@ianLinux ~]# cd /mnt/
[root@ianLinux mnt]# 

这里写图片描述
这是说你正在使用该文件系统,所以不能卸载这个设备。离开该文件系统的挂载点即可卸载了。

[root@ianLinux mnt]# cd ..
[root@ianLinux /]# umount /mnt
[root@ianLinux /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       9.2G  1.6G  7.2G  18% /
tmpfs           731M     0  731M   0% /dev/shm
/dev/sda1       194M   29M  155M  16% /boot

指定挂载点卸载 umount /mnt
df -h 查看挂载的情况

(2)放到/etc/fstab中,使得开机自动挂载

不知道为什么啊,用这种方式挂载/dev/sdb1,最后ll /dev/sdb1这个文件,都找不这个文件了。
ls: 无法访问/dev/sdb1: 没有那个文件或目录。

重新按上面步骤来:
①创建虚拟块设备[root@ianLinux ~]# dd if=/dev/zero of=/opt/sdb1 bs=4096 count=100

②格式化[root@ianLinux ~]# mkfs.ext4 /opt/sdb1

vi /etc/fstab

这里写图片描述

④最后[root@ianLinux ~]# reboot 检验是否开机自动挂载
这里写图片描述

[root@ianLinux ~]# df -h

这里写图片描述

### yes 命令与 cp 命令结合使用的含义 `yes` 命令是一个简单的工具,它会持续不断地输出指定的字符串(默认为“y”)到标准输出流。通常情况下,`yes` 命令用于自动响应需要用户输入的交互式命令[^1]。 当将 `yes` 与 `cp` 命令结合使用时,其主要目的是自动回答 `cp` 命令可能提出的交互问题。例如,当目标文件已存在且未指定 `-f`(强制覆盖)选项时,`cp` 命令可能会提示是否覆盖文件。此时,`yes` 可以自动提供“y”作为响应,避免手动干预。 以下是一个示例: ```bash yes | cp /etc/fstab /etc/fstab_bak ``` 上述命令的作用是将 `/etc/fstab` 文件复制到 `/etc/fstab_bak`,并自动确认所有可能的交互提示。如果目标文件已存在,`yes` 会自动提供“y”以完成覆盖操作[^2]。 --- ### `cp /etc/fstab /etc/fstab_bak` 的作用及场景 `/etc/fstab` 是 Linux 系统中用于定义文件系统挂载信息的关键配置文件。通过执行 `cp /etc/fstab /etc/fstab_bak`,可以创建该文件的一个备份副本,命名为 `/etc/fstab_bak`。这种操作通常在以下场景中使用: 1. **修改前的备份**:在对 `/etc/fstab` 进行编辑之前,创建一个备份副本,以便在发生错误时能够快速恢复原始配置。 2. **灾难恢复**:如果系统因 `/etc/fstab` 配置错误而无法启动,可以从备份文件中恢复正确的挂载信息。 3. **版本管理**:通过定期备份 `/etc/fstab`,可以记录不同时间点的文件系统挂载配置,便于审计或回滚。 --- ### 示例代码 以下是结合 `yes` 和 `cp` 的实际操作示例: ```bash # 自动覆盖目标文件 yes | cp /etc/fstab /etc/fstab_bak # 强制覆盖目标文件(无需交互) cp -f /etc/fstab /etc/fstab_bak ``` 如果目标文件不存在,则 `yes` 的作用不会体现,因为 `cp` 不会提出任何交互问题。只有在目标文件已存在且未使用 `-f` 选项时,`yes` 才能发挥作用[^3]。 --- ### 注意事项 1. 使用 `yes` 时需谨慎,因为它会无条件地提供“y”作为响应,可能导致意外的数据覆盖。 2. 在生产环境中,建议优先使用 `-i`(交互模式)或 `-n`(不覆盖模式),以确保数据安全。 3. 如果需要批量处理多个文件,可以结合 `find` 或 `xargs` 工具实现自动化备份。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值