首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

Linux基础之挂载详解(mount,umount及开机自动挂载)

2016-8-30新增: /etc/fstab配置文件设置错误造成的开机故障 挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载” 1.挂载:根文件系统外通过关联至根文件系统上的某个目录来实现访问 2.挂载点:mount_point,用于作为另一个文件系统的访问入口; (1) 事先存在; (2) 应该使用未被或不会被其它进程使用到的目录; (3) 挂载点下原有的文件将会被隐藏; 实验环境CentOS7.2 挂载与卸载 挂载方法:mount DECE MOUNT_POINT mount:通过查看/etc/mtab(文章最后会对/etc/mtab有个解释)文件显示当前系统已挂载的所有设备 命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要挂载的设备;(被挂载的设备可用以下四种之一表示) (1) 设备文件:例如/dev/sda5 (2) 卷标:-L 'LABEL', 例如 -L 'MYDATA' (3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e' (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs dir:挂载点 事先存在;建议使用空目录;(若非空则挂载后原文件会被隐藏,卸载后方能显示出来) 进程正在使用中的设备无法被卸载; 常用命令选项: -t vsftype:指定要挂载的设备上的文件系统类型; -r: readonly,只读挂载; -w: read and write, 读写挂载; -n: 不更新/etc/mtab; -a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能) -L 'LABEL': 以卷标指定挂载设备; -U 'UUID': 以UUID指定要挂载的设备; -B, --bind: 绑定目录到另一个目录上; 注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts ……………………………………………………………………………………………………………………… -o options:(挂载文件系统的选项) async:异步模式; sync:同步模式; atime/noatime:包含目录和文件; diratime/nodiratime:目录的访问时间戳 auto/noauto:是否支持自动挂载 exec/noexec:是否支持将文件系统上应用程序运行为进程 dev/nodev:是否支持在此文件系统上使用设备文件; suid/nosuid:是否支持在此文件系统上使用特殊权限 remount:重新挂载 ro:只读 rw:读写 user/nouser:是否允许普通用户挂载此设备 acl:启用此文件系统上的acl功能 注意:上述选项可多个同时使用,彼此使用逗号分隔; 默认挂载选项:defaults:rw, suid, dev, exec, auto, nouser, and async 上述信息可以通过查看超级块信息看到,这里不再对其进行演示。 ……………………………………………………………………………………………………………………… 命令演示: 1、指定文件系统将块设备挂载至指定空文件夹内:演示内容:1)没有指定文件系统,命令是否能正确执行;2)指定错误文件系统,命令是否能正确执行;3)挂载点有内容的文件夹,查看被挂载后其内容是否消失。 [root@localhost/]#fdisk-l ... 设备BootStartEndBlocksIdSystem /dev/sdb120482099199104857683Linux /dev/sdb22099200419635110485765Extended /dev/sdb52101248230604710240083Linux /dev/sdb62308096251289510240083Linux /dev/sdb72514944271974310240083Linux /dev/sdb82721792292659110240083Linux ... [root@localhost/]#mount/dev/sdb8/device [root@localhost/]#df 文件系统1K-块已用可用已用%挂载点 /dev/mapper/centos-root1830707247241361358293626%/ devtmpfs48536804853680%/dev tmpfs500664845005801%/dev/shm tmpfs50066471604935042%/run tmpfs50066405006640%/sys/fs/cgroup /dev/sda150858814262036596829%/boot tmpfs100136201001161%/run/user/42 tmpfs10013601001360%/run/user/0 /dev/sdb8989885280937086%/device [root@localhost/]#blkid/dev/sdb8 /dev/sdb8:UUID="a3c4bf06-3695-45e8-8a07-a063498f0578"TYPE="xfs" [root@localhost/]#umount/device [root@localhost/]#mount-text2/dev/sdb8/device mount:文件系统类型错误、选项错误、/dev/sdb8上有坏超级块、 缺少代码页或助手程序,或其他错误 [root@localhost/]#cd/device/ [root@localhostdevice]#ll 总用量0 [root@localhostdevice]#touch1122 [root@localhostdevice]#ll 总用量0 -rw-r--r--.1rootroot08月2310:1411 -rw-r--r--.1rootroot08月2310:1422 [root@localhostdevice]#ll 总用量0 [root@localhostdevice]#ll-a 总用量4 drwxr-xr-x.2rootroot68月2309:27. dr-xr-xr-x.21rootroot40968月2309:29.. [root@localhostdevice]#cd.. [root@localhost/]#umount/device/ [root@localhost/]#cd/device/ [root@localhostdevice]#ll 总用量0 -rw-r--r--.1rootroot08月2310:1411 -rw-r--r--.1rootroot08月2310:1422 通过上述演示,说明了如下事实:1)没有指定文件系统,块设备也可以正常挂载;2)指定与块设备不一致的文件系统类型则命令报错;3)挂载点有内容的文件夹,在挂载后内容消失,卸载后内容重现,也就是说挂载后会将原文件内容掩盖,但并不对其进行其他操作。 ……………………………………………………………………………………………………………………… 2、演示内容:1)指定卷标并以只读方式挂载;2)对目录进行挂载操作,查看其与硬链接与软链接有何不同。 [root@localhostdevice]#blkid/dev/sdb6 /dev/sdb6:LABEL="sdb6"UUID="8284450c-8cb9-45d7-a8b8-ed9ed9ef9e52"TYPE="xfs" [root@localhostdevice]#mount-L'sdb6'-r/device/ [root@localhostdevice]#touch/device/33 touch:无法创建"/device/33":只读文件系统 [root@localhostdevice]#umount/device/ [root@localhost/]#mount-B/etc//device/ [root@localhost/]#ll-i/ 总用量64 11341lrwxrwxrwx.1rootroot77月1923:54bin->usr/bin 128dr-xr-xr-x.4rootroot40968月210:09boot 3drwxr-xr-x.19rootroot33008月2309:10dev 33554561drwxr-xr-x.129rootroot81928月2309:38device 33554561drwxr-xr-x.129rootroot81928月2309:38etc 158drwxr-xr-x.42rootroot40968月2209:00home 通过上述演示,说明了如下事实:1)指定卷标挂载可行,以只读方式挂载后,无法对挂载点中的内容进行修改、创建等操作;2)目录的挂载实质上是硬链接,挂载后可以对里面的文件内容进行修改与删除。 注:文件夹的挂载在df中并不显示 ……………………………………………………………………………………………………………………… 卸载命令:umount 命令使用格式: # umount DEVICE # umount MOUNT_POINT 上面已经演示过umount的使用 fuser:查看正在访问指定文件系统的进程: 命令使用格式: # fuser -v MOUNT_POINT 终止所有在正访问指定的文件系统的进程:慎用 # fuser -km MOUNT_POINT 交换分区swap 这里介绍下交换分区,通过实验演示交换分区的创建及挂载 挂载交换分区: 启用:swapon swapon [OPTION]... [DEVICE] -a:激活所有的交换分区; -p PRIORITY:指定优先级; 禁用:swapoff [OPTION]... [DEVICE] 实验演示: 1、交换分区的创建:1)新创建一分区,2)修改新分区的类型,改为swap号码为82,3)格式化为swap [root@localhost~]#fdisk/dev/sdb 欢迎使用fdisk(util-linux2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入m获取帮助):n Partitiontype: pprimary(1primary,1extended,2free) llogical(numberedfrom5) Select(defaultp):l 添加逻辑分区9 起始扇区(2928640-4196351,默认为2928640): 将使用默认值2928640 Last扇区,+扇区or+size{K,M,G}(2928640-4196351,默认为4196351):+100M 分区9已设置为Linux类型,大小设为100MiB 命令(输入m获取帮助):p 磁盘/dev/sdb:5368MB,5368709120字节,10485760个扇区 Units=扇区of1*512=512bytes 扇区大小(逻辑/物理):512字节/512字节 I/O大小(最小/最佳):512字节/512字节 磁盘标签类型:dos 磁盘标识符:0xd391e822 设备BootStartEndBlocksIdSystem /dev/sdb120482099199104857683Linux /dev/sdb22099200419635110485765Extended /dev/sdb52101248230604710240083Linux /dev/sdb62308096251289510240083Linux /dev/sdb72514944271974310240083Linux /dev/sdb82721792292659110240083Linux /dev/sdb92928640313343910240083Linux 命令(输入m获取帮助):t 分区号(1,2,5-9,默认9):9 Hex代码(输入L列出所有代码):82 已将分区“Linux”的类型更改为“Linuxswap/Solaris” 命令(输入m获取帮助):p 磁盘/dev/sdb:5368MB,5368709120字节,10485760个扇区 Units=扇区of1*512=512bytes 扇区大小(逻辑/物理):512字节/512字节 I/O大小(最小/最佳):512字节/512字节 磁盘标签类型:dos 磁盘标识符:0xd391e822 设备BootStartEndBlocksIdSystem /dev/sdb120482099199104857683Linux /dev/sdb22099200419635110485765Extended /dev/sdb52101248230604710240083Linux /dev/sdb62308096251289510240083Linux /dev/sdb72514944271974310240083Linux /dev/sdb82721792292659110240083Linux /dev/sdb92928640313343910240082Linuxswap/Solaris 命令(输入m获取帮助):w Thepartitiontablehasbeenaltered! Callingioctl()tore-readpartitiontable. 正在同步磁盘。 [root@localhost~]#mkswap/dev/sdb9 正在设置交换空间版本1,大小=102396KiB 无标签,UUID=74bf2766-a01b-48ea-9082-2fad6b8e06a9 2、挂载交换分区:启用与禁用 [root@localhost~]#free totalusedfreesharedbuff/cacheavailable Mem:100133210175653589213424363684720328 Swap:209714802097148 [root@localhost~]#swapon/dev/sdb9 [root@localhost~]#free totalusedfreesharedbuff/cacheavailable Mem:100133210171653592413424363692720368 Swap:219954402199544 [root@localhost~]#swapoff/dev/sdb9 [root@localhost~]#free totalusedfreesharedbuff/cacheavailable Mem:100133210249253515213424363688719592 Swap:209714802097148 实验涉及到的命令小结: 内存空间使用状态:free [OPTION] -m: 以MB为单位 -g: 以GB为单位 文件系统空间占用等信息的查看工具:df -h: human-readable -i:inodes instead of blocks -P: 以Posix兼容的格式输出; 查看某目录总体空间占用状态:du du [OPTION]... DIR -h: human-readable -s: summary 命令总结:mount, umount, free, df, du, swapon, swapoff, fuser 开机自动挂载 如果我们想实现开机自动挂载某设备,只要修改/etc/fstab文件即可。 文件挂载的配置文件:/etc/fstab 查看此文件可知 每行定义一个要挂载的文件系统; 其每行的格式如下 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序 UUID=6efb8a23-bae1-427c-ab10-3caca95250b1 /boot xfs defaults 0 0 要挂载的设备或伪文件系统:设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs) 挂载点:指定的文件夹 挂载选项:defaults,一般没有特殊要求设置为默认 转储频率: 0:不做备份 1:每天转储 2:每隔一天转储 自检次序: 0:不自检 1:首先自检;一般只有rootfs才用1; /etc/fstab和/etc/mtab的区别 /etc/fstab文件的作用: 记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正确的检查和挂载硬盘。 /etc/mtab文件的作用: 先看它的英文是: This changes continuously as the file /proc/mount changes. In other words, when filesystems are mounted and unmounted, the change is immediately reflected in this file. 记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;而/etc/fstab是系统准备装载的。 每当 mount 挂载分区、umount 卸载分区,都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息,fdisk、df 这类程序,必须要读取 mtab 文件,才能获得当前系统中的分区挂载情况。当然我们自己还可以通过读取/proc/mount也可以来获取当前挂载信息 /etc/fstab文件配置异常导致的开机故障及其解决方法 模拟该故障的环境准备: 1、挂载目录/mountdir存在 2、要挂载的设备存在且已做好格式化,这里用的是/dev/sdb1,1G大小文件系统为ext4. 3、设置/dev/sdb1卷标为label 编辑/etc/fstab文件,指定设备的UUID或卷标代表挂载设备,并故意写错UUID或卷标,之后在自检次序选项中设置为大于0的数,此次实验设置为3 [root@localhost~]#blkid/dev/sdb1 /dev/sdb1:LABEL="label"UUID="1633ca8a-b750-4231-a226-f58d7976c72c"TYPE="ext4" 设置完毕后重启 重启后加载/etc/fstab文件后发现要挂载的设备不对,于是进行检查,如下图 检查完毕还是挂在不了于是要求进入紧急救援模式,进行修缮。进入该模式需要输入root的密码 进入/etc/fstab文件后,要想让机器正常启动,可以修改如下两处: 1、将卷标修改正确,比如改为label;2、将开机自检设置为0. 修改完毕后重启,机器正常启动。 注:开机自动挂载最好设置UUID其次使用卷标,因为有的时候卷设备名会发生变化,导致开机启动出现异常,比如上面这种情况。 在CentOS6中略有不同,在CentOS6进入紧急救援模式之后它无法直接更改/etc/fstab文件,因为它没有写权限,需要先df查看根挂载所在,之后使用mount -o rw,remount /mountdevice /mountpoint 重新挂载并赋予写的权限即可。 /etc/fstab和/etc/mtab的区别 此内容参看如下博客 http://blog.163.com/qimeizhen8808@126/blog/static/165119518201281892121501/

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册