文件系统挂载

挂载:

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

卸载:

为解除此关联关系的过程

把设备关联挂载点: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 18:03
下一篇 2017-04-30 22:47

相关推荐

  • Linux 基础知识(六.三)

    按找下列要求,写一个脚本 (1)创建目录/tmp/testdir-当前日期时间 (2)在此目录创建100个空文件:file1-file100 (3)显示/etc/passwd文件中位于偶数行的用户的用户名 (4)创建10个用户:user10-user19,密码同用户名 (5)在/tmp创建10个空文件file10-file19 脚本如下: #!/bin/ba…

    Linux干货 2016-11-14
  • 深入解析:分布式系统的事务处理经典问题及模型(转载分享)

    摘要:分布式系统需要在数据完整、一致性和性能间做平衡。本文系统介绍了处理分布式数据一致性的技术模型,如:Master-Slave,Master-Master,2PC/3PC,经典的将军问题,Paxos,以及Dynamo的NRW和VectorClock的模型。 编者按:数据服务的高可用是所有企业都想拥有的,但是要想让数据有高可用性,就需要冗余数据写多份。写多份…

    Linux干货 2015-04-04
  • 磁盘文件挂载与卸载

    挂载(mount)何为挂载?挂载指将文件系统与根文件系统的某个现存的目录建立起来的关联关系,这样我们就可以将目录作为访问磁盘文件的入口,进行存取交互。挂载点:挂载点指的是被挂载的对象,通常挂载点是一个目录,不过有时候也有文件作为挂载点格式:mount 设备 挂载点 ;此挂载方法味临时挂载,只在当前的shell中有效,退出则清除挂载关联设备文件在/dev/sd…

    Linux干货 2017-04-24
  • 管道:管道符;cat和more命令 重定向:文件标识符:I/O重定向符号及其用法;exec命令;代码块重定向 命令行处理:命令行处理流程;eval命令 管道: 管道是Linux编程中最常用的技术之一,Shell编程中竖杠符号:“|” command1 | command2 | command3 | … |commandn command1到commandn表…

    Linux干货 2016-08-05
  • 文本处理三剑客之grep

    grep命令基本用法 1、grep正则表达式(对文本行进行搜索过滤) 格式:grep [option] PATTERN [FILE…] option: -i:忽略大小写 -v:取反,显示未被匹配到的pattern -n:显示匹配的行号 -c:统计匹配的行数 -o: 只显示匹配到的pattern -q: 静默,不予显示 -A#:after,匹配到的行再向后…

    Linux干货 2017-07-19
  • Centos7 PHP-FPM源码安装

    PHP-FPM源码安装 安装必要组件 yum install -y openssl-devel traceroute libtool unzip gcc gcc-c++ autoconf net-snmp-devel vim wget sysstat lrzsz  man tree mysql-devel ntpdate rsync libxml2…

    系统运维 2016-09-06