文件系统挂载

挂载:

将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为

卸载:

为解除此关联关系的过程

把设备关联挂载点:mount Point

mount

卸载时:可使用设备,也可以使用挂载点

umount

mount   umount命令都是临时生效,机器重启后失效

挂载点下原有文件在挂载完成后会被临时隐藏

挂载点目录一般为空

 

mount 命令挂载文件系统

挂载方法:mount DEVICE MOUNT_POINT

mount :通过查看/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 :挂载点

事先存在;建议使用空目录

进程正在使用中的设备无法被卸载

挂载方法:mount DEVICE MOUNT_POINT

mount :通过查看/etc/mtab 文件显示当前已挂载的所有设备

[root@station29 ~]# cat /etc/mtab
/dev/sda6 / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0
/dev/sda1 /boot ext4 rw 0 0
/dev/sda2 /data ext4 rw 0 0
/dev/sda3 /home ext4 rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

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 :挂载点

事先存在;建议使用空目录

进程正在使用中的设备无法被卸载

[root@station29 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda6      173059896 3771028 160491224   3% /
tmpfs             953124      72    953052   1% /dev/shm
/dev/sda1         194241   72183    111818  40% /boot
/dev/sda2       20511356   45032  19417748   1% /data
/dev/sda3       10190136   40508   9625340   1% /home
 
[root@station29 ~]# mkdir /sda6
[root@station29 sda6]# mount /dev/sda1 /sda6

将sda1挂载到sda6

[root@station29 sda6]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda6      173059896 3771032 160491220   3% /
tmpfs             953124      72    953052   1% /dev/shm
/dev/sda1         194241   72183    111818  40% /boot
/dev/sda2       20511356   45032  19417748   1% /data
/dev/sda3       10190136   40508   9625340   1% /home
/dev/sda1         194241   72183    111818  40% /sda6
 
[root@station29 sda6]# mount /dev/sda6 /sda6/sda1
[root@station29 sda6]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda6      173059896 3770976 160491276   3% /
tmpfs             953124      72    953052   1% /dev/shm
/dev/sda1         194241   72185    111816  40% /boot
/dev/sda2       20511356   45032  19417748   1% /data
/dev/sda3       10190136   40508   9625340   1% /home
/dev/sda1         194241   72185    111816  40% /sda6
/dev/sda6      173059896 3770976 160491276   3% /sda6/sda1
 
[root@station29 ~]# umount /dev/sda6       (取消挂载)
[root@station29 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda6      173059896 3770976 160491276   3% /
tmpfs             953124      72    953052   1% /dev/shm
/dev/sda1         194241   72185    111816  40% /boot
/dev/sda2       20511356   45032  19417748   1% /data
/dev/sda3       10190136   40508   9625340   1% /home
/dev/sda1         194241   72185    111816  40% /sda6

注意:取消挂载时不能有其他用户访问

  fuser -v /dev/sda6    查看正在访问的用户

  fuser -km /dev/sda2    杀掉所有进程

 一个设备可同时挂载到多个目录中,一个目录不可同时挂载多个设备

 

[root@station29 ~]# mount
/dev/sda6 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/sda1 on /boot type ext4 (rw)
/dev/sda2 on /data type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sda1 on /sda6 type ext4 (rw)
/dev/sr0 on /media/CentOS_6.9_Final type iso9660 (ro,nosuid,nodev,uhelper=udisksuid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
 
[root@station29 ~]# cat /etc/mtab
/dev/sda6 / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0
/dev/sda1 /boot ext4 rw 0 0
/dev/sda2 /data ext4 rw 0 0
/dev/sda3 /home ext4 rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/sda1 /sda6 ext4 rw 0 0
/dev/sr0 /media/CentOS_6.9_Final iso9660 ro,nosuid,nodev,uhelper=udisks,uid=500,id=500,iocharset=utf8,mode=0400,dmode=0500 

mount常用命令选项

-t vsftype :指定要挂载的设备上的文件系统类型

-r: readonly ,只读挂载

-w: read and write,  读写挂载

-n:  不更新/etc/mtab mount 不可见

-a :自动挂载所有支持自动挂载的设备( 定义在了/etc/fstab文件中,且挂载选项中有auto 功能)

-L ‘LABEL’:  以卷标指定挂载设备

-U ‘UUID’:  UUID 指定要挂载的设备

-B, –bind:  绑定目录到另一个目录上

查看内核追踪到的已挂载的所有设备:cat /proc/mounts

[root@station29 ~]# cat /proc/mounts
rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,relatime,size=938316k,nr_inodes=234579,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,seclabel,relatime 0 0
/dev/sda6 / ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0
none /selinux selinuxfs rw,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,relatime,size=938316k,nr_inodes=234579,mode=755 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/sda1 /boot ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0
/dev/sda2 /data ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0
/dev/sda3 /home ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
/etc/auto.misc /misc autofs rw,relatime,fd=7,pgrp=2019,timeout=300,minproto=5,maxproto=5,indirect 0 0-hosts /net autofs rw,relatime,fd=13,pgrp=2019,timeout=300,minproto=5,maxproto=5,indirect 0 0

loop设备

文件往目录中挂载,都会用到loop设备

[root@station29 ~]# mount
/dev/sda6 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/sda1 on /boot type ext4 (rw)
/dev/sda2 on /data type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sda1 on /sda6 type ext4 (rw)
/dev/sr0 on /media/CentOS_6.9_Final type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
/root/partfile on /mnt/file type ext4 (rw,loop=/dev/loop0)
/root/partfile2 on /mnt/file2 type vfat (rw,loop=/dev/loop1)
 
[root@station29 ~]# ls /dev/loop*  (loop默认共有8个)
/dev/loop0  /dev/loop2  /dev/loop4  /dev/loop6
/dev/loop1  /dev/loop3  /dev/loop5  /dev/loop7
 
[root@station29 ~]# vim /boot/grub/grub.conf   
(修改loop数量,该文件计算机重启时才会读取)
 root (hd0,0)
        kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet crashkernel=auto max_loop=100 (设置loop数量为100个)
 
[root@station29 ~]# reboot  (修改后重启)
Broadcast message from zhouao@station29.magelinux.com
(/dev/pts/0) at 7:20 ...
The system is going down for reboot NOW!
 
[root@station29 ~]# ls /dev/loop*
/dev/loop0   /dev/loop22  /dev/loop36  /dev/loop5   /dev/loop63  /dev/loop99
/dev/loop18  /dev/loop31  /dev/loop45  /dev/loop59  /dev/loop72  /dev/loop86
/dev/loop19  /dev/loop32  /dev/loop46  /dev/loop6   /dev/loop73  /dev/loop87
/dev/loop2   /dev/loop33  /dev/loop47  /dev/loop60  /dev/loop74  /dev/loop88
......
 
(创建设备文件用mknod)
如果不重启增加loop数量
[root@station29 ~]# mknod /dev/loop100 b 7 100
[root@station29 ~]# ll /dev/loop100
brw-r--r--. 1 root root 7, 100 Apr 25 07:27 /dev/loop100
 
[root@station29 ~]# losetup -a          (可看设备与文件的对应关系)
将文件和loop设备关联              (CentOS6中使用CentOS7中直接使用losetup)
[root@station29 ~]# losetup /dev/loop7 partfile2
[root@station29 ~]# losetup -a
/dev/loop1: [0806]:8393192 (/root/partfile2)
/dev/loop7: [0806]:8393192 (/root/partfile2)
 
[root@station29 ~]# mount /dev/loop7 /mnt/file
[root@station29 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda6      173059896 4064456 160197796   3% /
tmpfs             953124      72    953052   1% /dev/shm
/dev/sda1         194241   35220    148781  20% /boot
/dev/sda2       20511356   45032  19417748   1% /data
/dev/sda3       10190136   40508   9625340   1% /home
/dev/loop7        204580       0    204580   0% /mnt/file2
 
-o options :( 挂载文件系统的选项) ,多个选项使用逗号分隔
async :异步模式
sync :同步模式, 内存更改时,同时写磁盘
atime/noatime :包含目录和文件
diratime/nodiratime :目录的访问时间戳
auto/noauto :是否支持自动挂载, 是否支持-a 选项
exec/noexec :是否支持将文件系统上运行应用程序
dev/nodev :是否支持在此文件系统上使用设备文件
suid/nosuid :不否支持suid 和sgid 权限
remount :重新挂载
ro :只读
rw: : 读写
user/nouser :是否允许普通用户挂载此设备,默认管理员才能挂载
acl :启用此文件系统上的acl 功能
Defaults :相当于rw, nosuid, dev, exec, auto, nouser, async
[root@station29 ~]# mount
/dev/sda6 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/sda1 on /boot type ext4 (rw)
/dev/sda2 on /data type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/loop7 on /mnt/file2 type vfat (rw)
 
(重新挂载:remount    用户在线时使用)
[root@station29 ~]# mount -o remount,ro /mnt/file2
[root@station29 ~]# mount
/dev/sda6 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/sda1 on /boot type ext4 (rw)
/dev/sda2 on /data type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/loop7 on /mnt/file2 type vfat (ro)
 
[root@station29 ~]# mount -o remount,rw,nosuid,noexec,nodev /mnt/file2
[root@station29 ~]# mount
/dev/sda6 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/sda1 on /boot type ext4 (rw)
/dev/sda2 on /data type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/loop7 on /mnt/file2 type vfat (rw,noexec,nosuid,nodev)
不支持文件系统运行程序,不支持suid和sgid权限,不支持此文件系统上的设备文件

卸载命令

查看挂载情况:

findmnt MOUNT_POINT
[root@station29 ~]# findmnt /dev/sda1
TARGET SOURCE    FSTYPE OPTIONS
/boot  /dev/sda1 ext4   rw,relatime,seclabel,barrier=1,data=ordered
[root@station29 ~]# findmnt /mnt/sda1
[root@station29 ~]# echo $? 配合echo $?可查询是否是挂载点
1
[root@station29 ~]# findmnt /dev/sda1 &> /dev/null || mount /dev/sdb2 /dev/sda1
查询是否是挂载点,如果不是就挂载
[root@station29 ~]# findmnt /mnt/sda1 &> /dev/null && umount /mnt/sda1 && mount/dev/sda1 /mnt/sda1
如果是挂载点,那么卸掉挂载后重新挂载
查看正在访问指定文件系统的进程:
lsof MOUNT_POINT
[root@station29 ~]# lsof /sbin/init
COMMAND PID USER  FD   TYPE DEVICE SIZE/OFF    NODE NAME
init      1 root txt    REG    8,6   150352 1310780 /sbin/init
fuser -v MOUNT_POINT
[root@station29 ~]# lsof /mnt/
COMMAND  PID   USER   FD   TYPE   DEVICE     SIZE/OFF     NODE NAME
bash    3246     rookie  cwd    DIR    8,6     4096 7602177    /mnt
 
[root@station29 ~]# fuser -v /mnt
                     USER        PID ACCESS COMMAND
/mnt:                rookie        3246 ..c.. bash

 

终止所有在正访问指定的文件系统的进程:

fuser -km MOUNT_POINT

卸载:

umount DEVICE

umount MOUNT_POINT

 

挂载点和/etc/fstab

配置文件系统体系

mount fsck 和其它程序使用

系统重启时保留文件系统体系

可以在设备栏使用文件系统卷标

使用mount -a  命令挂载/etc/fstab中的所有文件系统

 

文件挂载配置文件

/etc/fstab 每行定义一个要挂载的文件系统;

      要挂载的设备或伪文件系统

      挂载点

      文件系统类型

      挂载选项

      转储频率

      自检次序

要挂载的设备或伪文件系统:

设备文件、LABEL(LABEL=””) UUID(UUID=””) 、伪文件系统名称(proc,sysfs)

挂载选项:  defaults

转储频率:  0 :不做备份

1 :每天转储

自检次序:  0 :不自检

1 :首先自检;一般只有rootfs 才用1

转储频率自检次序都设置为0时,可避免损坏后系统无法启动的问题

[root@station29 ~]# vim /etc/fstab
UUID=1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6 /            ext4    defaults        1 1
UUID=34e5ffbe-c2b3-4745-89bc-1811245ae758 /boot       ext4    defaults        1 2
......
sysfs                   /sys                    sysfs   defaults         0 0
proc                   /proc                   proc    defaults         0 0
UUID=4fd1710f-ff1a-4eba-94f8-c57ecc05d6c3 /mnt/sdb1        ext4    defaults     0 0
[root@station29 ~]# mount -a

例:目录挂载目录

[root@station29 ~]# vim /etc/fstab
UUID=1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6 /            ext4    defaults        1 1
UUID=34e5ffbe-c2b3-4745-89bc-1811245ae758 /boot       ext4    defaults        1 2
......
sysfs                   /sys                    sysfs   defaults         0 0
proc                   /proc                   proc    defaults         0 0
UUID=4fd1710f-ff1a-4eba-94f8-c57ecc05d6c3 /mnt/sdb1        ext4    defaults     0 0
[root@station29 ~]# mount -a

例:文件挂载

root@station29 ~]# vim /etc/fstab
UUID=1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6 /            ext4    defaults        1 1
UUID=34e5ffbe-c2b3-4745-89bc-1811245ae758 /boot       ext4    defaults        1 2
proc                    /proc                   proc    defaults            0 0
UUID=4fd1710f-ff1a-4eba-94f8-c57ecc05d6c3 /mnt/sdb1    ext4    defaults       0 0
/boot   /mnt/boot          none  bind 0 0
/root/partfile  /mnt/file   ext4    loop               0 0  
[root@station29 ~]# mount -a

原创文章,作者:Linux.rookie,如若转载,请注明出处:http://www.178linux.com/74492

(0)
Linux.rookieLinux.rookie
上一篇 2017-04-30
下一篇 2017-04-30

相关推荐

  • Keepalives+lvs实现高可用httpd的双主模型

    基础环境:Centos 7.3 最小化安装四台 关闭防火墙及selinux 简单原理: keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouter Redundancy Protocol,即虚拟路由冗余协议。 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个mas…

    2017-05-15
  • 文本编辑工具Sed

                    Stream EDitor, 行编辑器         sed是一种流编辑器,它一次处理一行内容。处理时,一次性的先把文件读入内存中,并且开辟一块内存空间,该内存空间称为“模式空间”(pa…

    Linux干货 2016-08-10
  • 马哥教育网络班21期+第11周课程练习

    1、请描述一次完整的加密通讯过程,结合图示最佳。 Bob先利用单向加密算法提取当前数据的指纹(特征码),再用自己的私钥加密数据指纹并附加于数据尾部,然后利用对称加密将整个文件加密,之后用对方的公钥加密对称加密密钥附加于尾部。 Alice收到数据后,先用自己的私钥解密,得到对称加密密钥,之后用对称加密密钥解密,然后用Bob的公钥解密得到数据指纹,并且验证了Bo…

    Linux干货 2016-09-26
  • 文件管理命令及变量基础

    文件管理工具:cp,    mv,     rm       cp命令:copy 源文件;目标文件 单源复制: cp [OPTION]….[-T]  SOURCE  DEST 多源复制:cp [OPTION] ….SOURCE…DIR…

    Linux干货 2016-12-21
  • 计划任务&脚本进阶练习

    1、每天的2点和12点整,将/etc备份至/testdir/backup目录中,保存的文件名称格式为“etcbak-yyyy-mm-dd-HH.tar.xz” mkdir /testdir/backup vim /root/bin/etcbak.sh tar cvf /testdir/backup/etcbak-`date “+%F-%H”`.tar.xz …

    Linux干货 2017-03-26
  • Linux 的发展史

    前言 l  免费源码开放 l  安全性高,漏洞修补快 l  多任务、多使用者 l  多平台支持 l  设备要求低,不耗资源 ……      看到这一系列的优点,在IT人的脑海里只会浮出一个名字Linux. 如果还不够直观的话,有这么一个数据, 显示前500系统中的485…

    Linux干货 2016-10-14