热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

一天一点学习Linux之文件系统的开机挂载

昨天,我们介绍的都是手动执行命令来实现挂载,如果你常常需要挂载某些文件系统,那么我如何让系统在启动时就自动挂载,应该怎样做呢?下面介绍两种方法:方法1.把挂载的命令放在/etc/rc.d/rc.local中。这个虽然...

 

昨天,我们介绍的都是手动执行命令来实现挂载,如果你常常需要挂载某些文件系统,那么我如何让系统在启动时就自动挂载,应该怎样做呢?下面介绍两种方法:

方法1.

把挂载的命令放在/etc/rc.d/rc.local中。

这个虽然是一种方法,但不建议这么做,因为我们的系统中有统一规划的解决方案,所以建议用第二种方法。

 

 

方法2.

修改配置文件/etc/fstab,这个文件就是设置在启动时加挂的文件系统,下面我们就一起来研究一下/etc/fstab

 

[root@yufei ~]# cat /etc/fstab

此处省略多行无用信息

UUID=8e4f6141-20f9-4f5a-aad4-bac048374152 /                       ext4    defaults        1 1

UUID=c70cd6a4-09cd-4aea-ba94-f3641df4e981 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

这个内容和您的系统有关系,最上面两行的是我们磁盘文件系统,而后面的四行是虚拟文件系统,我们不关心这个。

 

这个文件里面分成六个字段。这六个字段是很重要的,所以我们要带大家一起来认识一下。

 

第一栏:磁盘设备的文件名或设备的卷标或者是设备的UUID。#关于这些信息的查询可以通过tune2fs 或者是dumpe2fs来查询。

 

[root@yufei ~]# tune2fs -l /dev/sdb1 |more

[root@yufei ~]# dumpe2fs /dev/sdb1 |more

只显示有用信息

Filesystem volume name:   opsers_tech

Last mounted on:          /mnt

Filesystem UUID:          994ae2b7-d28a-4f7c-9464-c1763860378b

所以这一栏可以有下面三种表示方法,效果都是一样的,都是表示的是同一个设备。

/dev/sdb1

LABEL=opsers_tech

UUID=994ae2b7-d28a-4f7c-9464-c1763860378b

第二栏:挂载点。#强烈建议用一个空目录

 

第三栏:文件系统类型。#在手动挂载时可以让系统自动测试挂载,但在这个文件中必须要手动写入文件系统的类型。文件系统类型主要有:ext3、ext4、vfat、ntfs、nfs、smbfs、swap等等。

 

第四栏:文件系统参数。#这个和我们前面介绍的mount是一样的,在这里再做一个简单的介绍,因为这个很重要。

 

async/sync 异步/同步:设定磁盘的运作方式,预设为async(效能较佳),是把内容写入日志,然后保存到磁盘。

 

auto/noauto 自动/非自动:当下达mount -a 时,此文件系统是否会被主动测试挂载。预设为auto。

 

rw/ro 读写/只读:如果你想要分享的数据是不给用户随意变更的,就可以设置成ro的,无论在此文件系统的文件是否有w 权限,都是无法写入内容。

 

exec/noexec 可被执行/不可被执行:限制在此文件系统内是否可以进行执行的操作,如果此文件系统是纯粹用来储存资料的,那么可以设定为noexec 会比较安全。

 

user/nouser 允许/不允许其他用户挂载:正常情况下,系统为了安全,不希望一般身份的用户能使用mount命令的,因为太不安全了,默认是设定为nouser。

 

suid/nosuid 具有/不具有suid权限:该文件系统是否允许SUID的存在。因为这个也和系统的安全相关。如果不是执行文件存放的目录,可以设定为nosuid来取消这个功能。

 

usrquota 注意不要拼错了。这个是在启动文件系统的时候,让其支持磁盘配额,这个是针对用户的。

 

grpquota 和上面一样,支持用户组的磁盘配额。

 

defaults 同时具有rw, suid, dev, exec, acl, async参数。

 

而我们基本上预设使用defaults即可。

 

第五栏:能否被dump备份指令使用。#dump是一个用来备份的命令,我们可以通过fstab指定哪个文件系统必须要进行dump备份。0代表不要做dump备份,1代表要每天进行dump的动作,2也代表其他不定日期的dump备份。通常这个数值不是0就是1。

 

第六栏:是否用fsck 检验扇区:#开机的过程中,系统默认会用fsck检验文件系统是否完整。不过,某些文件系统是不需要检验的,例如swap以及特殊文件系统/proc、/sys等等。0是不要检验,1表示最先检验(一般只有根目录会设定为1),2也是要检验,只是1是最先,2是其次才进行检验。这一项只针对操作系统的分区有效果,其他的文件系统根据需要来设置,因为他不影响系统的引导。

 

特别提醒1:因为/etc/fstab这个文件和系统启动有很大的关系,如果你一不小心,把里面的内容写错了,可能导致系统无法启动。为了防止这个问题的发现,当你增加了相应的挂载内容后,最好用

 

mount -a命令进行一下测试,在没有错误的情况,才能保证下次在系统启动的时候是正常的。

 

特别提醒2:如果我在此文件中修改了相应的挂载参数的话,你需要用mount -o remount来重新使新的参数生效。而mount -a则是加载不了已经挂载了文件系统的参数信息。可以用mount命令查看到参数的信息。

最后我们把昨天格式化出来的分区写到/etc/fstab文件中。在开始编辑文件前,我再给大家介绍一个很实用的工具blkid,他会显示出系统中所有的文件系统的信息,包括设备名、卷标、UUID以及文件系统类型。下面的看效果

 

 

 

[root@yufei ~]# blkid

/dev/sda1: UUID="8e4f6141-20f9-4f5a-aad4-bac048374152" TYPE="ext4"

/dev/sda2: UUID="c70cd6a4-09cd-4aea-ba94-f3641df4e981" TYPE="swap"

/dev/sdb1: LABEL="opsers_tech" UUID="994ae2b7-d28a-4f7c-9464-c1763860378b" TYPE="ext4"

/dev/sdb2: SEC_TYPE="msdos" UUID="7F29-8A7A" TYPE="vfat"

 

[root@yufei ~]# vim /etc/fstab

/dev/sdb1               /mnt                    ext4    defaults        0 0

UUID=7F29-8A7A          /test                   vfat    defaults        0 0

 

[root@yufei ~]# mount -a

[root@yufei ~]# mount -a

没有错误提示,说明我们的配置是没有错误的,那么在下次系统启动后就不会有错误了,而导致系统启动不了。

 

启动系统后,用df -T来查看挂载在系统中的磁盘信息情况

 

 

 

[root@yufei ~]# df -T

Filesystem    Type   1K-blocks      Used Available Use% Mounted on

/dev/sda1     ext4    15118728   6980432   7370296  49% /

tmpfs        tmpfs      255784         0    255784   0% /dev/shm

/dev/sdb1     ext4     1033560     40980    939568   5% /mnt

/dev/sdb2     vfat      409424         0    409424   0% /test

用mount命令可以查看系统中的挂载情况

 

[root@yufei ~]# mount

/dev/sda1 on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw,rootcOntext="system_u:object_r:tmpfs_t:s0")

/dev/sdb1 on /mnt type ext4 (rw)

/dev/sdb2 on /test type vfat (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

none on /proc/fs/vmblock/mountPoint type vmblock (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

/etc/fstab 是开机时的配置文件,实际上文件系统的挂载是记录在/etc/mtab 与/proc/mounts 这两个文件中的。如果万一在/etc/fstab中写入的数据错误时候,会导致无法顺利开机成功,而进入单人维护模式,而这时候/ 是只读的状态,要想修改/etc/fstab,就要用到下面这个常用的系统修复命令了。

 

mount -o remount,rw /

摘自 羽飞博客


推荐阅读
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 深入探讨ASP.NET中的OAuth、JWT与OpenID Connect
    本文作为前文关于OAuth2.0和使用.NET实现OAuth身份验证的补充,详细阐述了OAuth与JWT及OpenID Connect之间的关系和差异,旨在提供更全面的理解。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • 近期,考虑到在Vim内部进行GDB调试、运行Python脚本和数据库连接等多样化需求,思考是否可以通过集成终端来简化这些操作,而非逐一编写Vim脚本来实现。通过研究发现,确实存在一种高效的方法——利用特定插件实现终端功能的整合。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • Linux网络安装指南
    本文详细介绍了如何通过网络安装Linux操作系统,包括必要的服务配置和常见问题解决方法,旨在帮助IT专业人士提高系统部署效率。 ... [详细]
  • VMware Horizon View 5.0桌面虚拟化部署实践与心得
    在近期的研究中,我花费了大约两天时间成功部署了桌面虚拟化环境,并在此过程中积累了一些宝贵的经验。本文将分享这些经验和部署细节,希望能对同样关注桌面虚拟化的同行有所帮助。 ... [详细]
author-avatar
just_roshinn5
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有