8.10 mount:挂载文件系统

  mount命令可以将指定的文件系统挂载到指定目录(挂载点),在Linux系统下必须先挂载所有的设备,然后才能被访问,挂载其实就是为要访问的设置开个门(开门才能访问)。
  mount [option] [device] [dir] 
挂载的目录必须事先存在且最好为空,如果目录不为空,那么挂载设备后会掩盖以前的目录内容,但原目录下的内容不会受损,所以,如果卸载了相应的设备,那么此前的目录内容又可以访问了。

mount命令的参数选项及说明

-l    显示系统已经挂载的设备的相关信息
-a    根据/etc/fstab文件里的配置挂载文件系统
-t    指定挂载的文件系统类型,例如,文件系统类型有,nfs(网络文件系统),iso9660(挂载CD-ROM光盘),auto(自动检测文件系统)。如果不设置t参数,或使用-t auto参数,mount命令会自行选择挂载的文件类型
-o    后接一些挂载的选项,是安全、性能优化的重要选项
-r    只读挂载,等同于-o ro的挂载方式
-w    读写挂载,等同于-o rw的挂载方式
 
其中mount的-o参数可以接的挂载选项请参见下表
 
mount的-o参数可接的选项*
async      所有涉及文件系统/O的操作都是异步处理,即数据不会同步写入到磁盘,而是写入到缓冲区中,这种设置会提高系统的性能,但同时也会降低数据的安全性,一般在生产环境下不推荐使用。除非对性能要求很高,对数据可靠性要求不高的场景
sync 与async相反,即有I/O操作时,都会同步处理/O,即把数据同步写入硬盘,此参数会牺牲一部分I/O性能,但是换来的是系统突发宕机后数据的安全性
atime 在每一次数据访问时,都会同步更新每次访问的文件的inode时间,是默认选项,在高并发的情况下,要明确加上noatime来取消该默认项,以达到提升/O性能,优化磁盘I/O的目的
noatime 不更新文件系统上文件的inode访问时间,在高并发环境下,应用此选项,可以在一定程度上提高系统I/O的性能
nodiratime 不更新文件系统上目录的inode访问时间,在高并发环境下,应用此选项,可以在一定程度上提高系统I/O的性能
auto 通过-a参数能够被自动挂载
noauto 不会自动挂载文件系统
defaults 默认值包括rw、suid、dev、exec、auto、nouser 和 async,/etc/fstab文件挂载配置的很多情况下都使用默认值
exec 允许执行二进制程序,取消该参数,可以提升系统的安全性
noexec 不能执行二进制程序
nosuid 不允许suid(Linux的特殊权限)特殊功能生效
nouser 禁止一个普通用户挂载该文件系统,这是挂载时的默认选项
remount 尝试重新挂载一个已经挂载了的文件系统,其通常用于改变一个文件系统的挂载标志,从而使得一个只读文件系统变得可写,这个动作不会改变设备或者挂载点。
       提示一下,当系统发生故障时或者进入单用户模式、教援模式时,会发现根文件系统经常会变成只读文件系统,不允许修改,此时该命令就派上用场了,具体命令为:mount -o remount,rw / 会将根文件系统重新挂载使其可写。
       在单用户模式或教援模式修改系统时该命令十分重要
ro 只读挂载
rw 读写挂载

显示系统已挂载的信息(不加参数或加-l参数)

[root@cs6 ~]# mount
/dev/mapper/vg_cs6-lv_root on / type ext4 (rw) #<==磁盘/dev/mapper/vg_cs6-lv_root挂载在(on)根上,文件系统类型为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/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /mnt/data1 type ext4 (rw)

对系统的光驱进行挂载

首先要把光盘放入光驱驱动器中,如果是VM(虚拟机),则需要将ISO镜像放入VM光驱驱动器中,然后执行下面的操作:
[root@cs6 ~]# mount /dev/cdrom /mnt    #<=这里没有指定-t iso9660,但mount命令会自动识别
mount: block device /dev/sr0 is write-protected, mounting read-only #<=提示设备写保护,只读挂载。 [root@cs6 ~]# mkdir /mnt/cdrom
[root@cs6 ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@cs6 ~]# ll -h /mnt/cdrom/
total 82K
-r--r--r--. 1 root root 14 Jun 29 2018 CentOS_BuildTag
dr-xr-xr-x. 3 root root 2.0K Jun 30 2018 EFI
-r--r--r--. 1 root root 212 Nov 27 2013 EULA
-r--r--r--. 1 root root 18K Nov 27 2013 GPL
dr-xr-xr-x. 3 root root 2.0K Jun 30 2018 images
dr-xr-xr-x. 2 root root 2.0K Jun 30 2018 isolinux
dr-xr-xr-x. 2 root root 40K Jun 30 2018 Packages
-r--r--r--. 1 root root 1.4K Jun 29 2018 RELEASE-NOTES-en-US.html
dr-xr-xr-x. 2 root root 4.0K Jun 30 2018 repodata
-r--r--r--. 1 root root 1.7K Nov 27 2013 RPM-GPG-KEY-CentOS-6
-r--r--r--. 1 root root 1.7K Nov 27 2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r--. 1 root root 1.7K Nov 27 2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r--. 1 root root 1.7K Nov 27 2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r--. 1 root root 3.4K Jun 30 2018 TRANS.TBL
[root@cs6 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cs6-lv_root
26G 1.7G 24G 7% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 477M 28M 424M 7% /boot
/dev/sdb1 392M 2.3M 369M 1% /mnt/data1
/dev/sr0 406M 406M 0 100% /mnt/cdrom

使用性能及安全挂载参数选项(-o多选项)的企业案例

    在工作中,我们会经常使用NFS网络文件系统,若要使用NFS文件系统,则需要进行挂载。有关NFS网络文件系统的部署请读者参考《跟老男孩学习Linux运维;Web集群实战》一书的第10章,本例假定读者已经部署了NFS网络文件系统服务,挂载点为:10.0.0.3:/data,挂载操作如下: 
[root@backup ~]# mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,rsize=131072,wsize=131072 172.16.1.31:/data/ /upload
[root@backup ~]# grep upload /proc/mounts
172.16.1.31:/data/ /upload nfs4
rw,nosuid,nodev,noexec,noatime,nodiratime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,pro
to=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.45,minorversion=0,local_lock=non
e,addr=172.16.1.31 0 0
生产场景文件系统故障解决案例。 
由于系统等问题,在工作中可能会造成文件系统只读,这时就需要重新挂载根(/)为读写模式。 
 mount -o remount,rw / #<==remount 索试重新挂载“/”为rw(可读可写)。  
如果上述操作还不能解决问题,则需要重启系统或使用救援模式来解决。
 

生产场景配置fstab后防止开机启动出错案例

    在工作中,当添加新的磁盘时,会有永久性挂载的需求,此时就会配置/etc/fstab这个文件,但这个文件若配置错误则有可能造成系统重启后无法开机,因此,在配置好fstab文件后可先用mount -a读取/etc/fstab进行挂载测试,如果能挂载成功,那么重启一般也会正常,反之则会出现异常。
[root@cs6 ~]# tail -1 /etc/fstab
/dev/sdb1 /mnt ext4 defaults 0 0
[root@cs6 ~]# mount -a

提示:经过这样的挂载测试以后,就可以确保下一次开机的时候,系统能够重启成功,当然修改fstab文件也要特别注意,最后一列的数字最好改为0(表示不用fsck检查)。

 
 
 

8.11 umount:卸载文件系统

    umount命令可以卸载已经挂载的文件系统。 
 umount卸载可以接挂载点目录,也可以接设备文件。
 
-f    强制卸载
-l    懒情地卸载。将文件系统从文件系统层次结构中分离出来,并清除对文件系统的所有引用。一般和-f参数配合使用其卸载效果更佳*
 

卸载已挂载的光盘

[root@cs6 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cs6-lv_root
26G 1.7G 24G 7% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 477M 28M 424M 7% /boot
/dev/sdb1 392M 2.3M 369M 1% /mnt
[root@cs6 ~]# umount /mnt/
[root@cs6 ~]# ls /mnt/
cdrom data1 data2
[root@cs6 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cs6-lv_root
26G 1.7G 24G 7% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 477M 28M 424M 7% /boot

生产场景下强制卸载的例子

    有的时候由于挂载的设备停止了响应(例如NFS),或者在当前挂载点的目录下,直接执行卸载命令就会无法卸载设备,而使用如下的方式就可以轻松卸载:
    这里简单举例如下,进入到挂载点目录进行卸载尝试。

[root@cs6 ~]# mount /dev/sdb1 /mnt/data1
[root@cs6 ~]# ls /mnt/data1
1.html 2.html 3.html 4.html 5.html lost+found
[root@cs6 ~]# cd /mnt/data1
[root@cs6 data1]# umount /mnt/data1 #<==固为当前在/mnt/data1目条中,所以无法卸载,此处执行方法一,退出当前目录卸载。
umount: /mnt/data1: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@cs6 data1]# umount -lf /mnt/data1 #<==方法二:使用-lf参教进行强制师载。
[root@cs6 data1]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cs6-lv_root
26G 1.7G 24G 7% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 477M 28M 424M 7% /boot

8.10-11 mount、umount的更多相关文章

  1. mount、umount、fuser命令使用小结

    mount -t cifs -o username=administrator,password=xxxxx //192.168.11.17/Data/ /mnt/databak/之后想卸载挂载目录, ...

  2. linux 11 -- mount,umount

    Linux 文件系统是一个以 / 为根的大树,我们在不同的设备和分区上都有文件系统.我们如何处理这种明显的不一致性?根 (/) 文件系统是在初始化过程中挂载的.您创建的其他每个文件系统在挂载 在挂载点 ...

  3. Linux命令——mount、umount

    前言 由于引入了LVM.RAID技术,导致OS时别到的磁盘已经不单纯是事实意义上的物理磁盘(虽然OS认为他是物理盘).传统文件系统与分区可以认为是1:1关系,但是现在一个分区可以有多个FS,一个FS也 ...

  4. linux 挂载命令mount、umount

    mount /bin/mount语法:mount [-t文件系统] 设备文件名 挂载点mount -t iso9660 /dev/sr0 /mnt/cdromiso9660是固定的,光盘:所以 -t ...

  5. CocoaPods安装、卸载、使用说明(Mac ox 10.11+)

    一.全新安装前,先检查是否有安装残留 由于Mac 10.11更改了安全机制,所以cocoapods得安装和卸载命令也有所改变, 1.如果之前装过cocopods,最好先卸载掉,卸载命令: $ sudo ...

  6. Windows环境下使用Clover四叶草引导双硬盘安装OSX 10.11.5原版镜像

    作为一个穷逼大学生,想搞iOS开发 买不起Mac只能鼓捣鼓捣黑苹果啦........ 之前我的电脑通过变色龙引导的方式装了个OSX10.10和win8.1双系统,因为自学的是Swift语言之前装的OS ...

  7. ThinkPad X220 完美黑苹果 Hackintosh OS X 10.11 El Capitan

    原文链接:https://www.gaojinan.com/thinkpad-x220-hackintosh-osx-10-11-el-capitan-perfect.html //Update 20 ...

  8. Linux基础之命令练习Day4-fdisk,mkfs,mlabel,mount,umount,mkswap,swapon,dd,top,free,ps,kill,rpm,yum,make

    一. 硬盘分区.格式化及文件系统的管理 1. 在Linux系统中,一切皆文件.每个设备都被当作一个文件来对待. 常见的存储设备在Linux系统中的文件名如下表所示: 2. 对硬盘进行分区有以下优点: ...

  9. linux命令之------which命令/cp命令/Head及tail命令/grep命令/pwd命令/cd命令/df命令/mkdir命令/mount及umount命令/ls命令/history命令/ifconfig命令/ping命令/useradd命令/命令passwd/kill命令/su命令/clear命令/ssh命令/tar解压缩/远程拷贝scp

    which命令 1)    作用:搜索某个系统命令的位置. 2)    案例:查询vi命令路径:which vi cp命令 1)作用:用于复制文件或目录: 2)-a:此选项通常使用在复制目录时使用,它 ...

随机推荐

  1. Vue3 封装第三方组件(一)做一个合格的传声筒

    各种UI库的功能都是非常强大的,尤其对于我这种不会 css 的人来说,就更是帮了大忙了. 只是嘛,如果再封装一下的话,那么用起来就会更方便了. 那么如何封装呢? 封装三要素 -- 属性.插槽.事件.方 ...

  2. Java【线程池、Lambda表达式】

    见pdf 等待唤醒机制 wait和notify 第二章 线程池 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低 系统的效率,因为频繁创建线程和销毁 ...

  3. adb 简介与常用命令

    1. abd 简介 2. adb 常用命令 1. abd 简介 adb 的全称为 Android Debug Bridge,就是起到调试桥的作用. 借助 adb 工具,我们可以管理设备或手机模拟器的状 ...

  4. Solon Cloud 分布式开发套件清单与快速概览

    Solon Cloud 是一系列的接口标准和配置规范.Solon Cloud 为常见的分布式系统模式提供了一种简单且方便的编程模式,帮助开发人员构建有弹性的.可靠的.协调的应用程序.Solon Clo ...

  5. php自定义配置文件简单写法

    1 <?php 2 header("Content-type:text/html;charset=utf-8"); 3 4 $q = getconfig('rr'); 5 e ...

  6. phpstorm2017 激活方法

    1.license server 在线激活方式 不是很推荐,自己有服务器的话可以考虑搭建 以下地址可以用一下,不保证长期有效 http://idea.goxz.gq http://v2mc.net:1 ...

  7. Thinkphp树形菜单相关方法

    1 <?php 2 3 /** 4 * Menu(菜单管理) 5 */ 6 namespace Admin\Controller; 7 use Common\Controller\Adminba ...

  8. Win64 驱动内核编程-20.UnHook SSDT

    UNHOOK SSDT 要恢复 SSDT,首先要获得 SSDT 各个函数的原始地址,而 SSDT 各个函数的原始地址,自然是存储在内核文件里的.于是,有了以下思路: 1.获得内核里 KiService ...

  9. 手机访问电脑本地localhost网页

    项目需要用手机访问电脑本地网页,从而可以调试项目,对代码的理解的快一点 重点 确保手机和电脑在同一个局域网 可以通过手机开热点电脑连接或者电脑开便携式热点手机连接 确保电脑的防火墙是关闭的 打开apa ...

  10. C#中的委托(Update)

    什么是委托? 委托(delegate)是一种托管方法的数据结构,它是一种引用类型,是对方法的引用.如果说int,string等是对数据类型的定义,那么委托就类似于对"方法类型"的定 ...