文件系统挂载

挂载:

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

卸载:

为解除此关联关系的过程

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

相关推荐

  • N25-第五周作业

    第五周作业 1、显示当前系统上root、fedora或user1用户的默认shell; grep "^\(root|fedora|user1\)" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); grep "…

    Linux干货 2017-02-14
  • 文本处理工具及grep

    在日常的linux运维工作当中,我们经常要在一些文本当中抽取过滤出我们所需要的信息,从而达到我们的需求,需要特定的文本处理工具来帮我们完成此类操作 本章节主要讲解的内容有: 文件查看:cat 分页查看文本:less、more 抽取文件特定行数:head、tail 抽取文本特定列:cut 合并文本:paste 文本统计:wc 文本排序并统计:sort、uniq…

    Linux干货 2016-08-08
  • OSI和TCP/IP

            我们生活中各方面都离不开网络,那网络究竟是什么东西呢?它是怎么做到让在不同地点的人无视空间距离完成通信的呢?首先我们来了解一下网络的基本概念。网络是由节点和连线构成,表示诸多对象及其相互联系。在数学上,网络是一种图,一般认为专指加权图。网络除了数学定义外,还有具体…

    2017-09-02
  • net25-第17周作业

    1、结合图形描述LVS的工作原理; lvs-nat模型,相当于多目标的dnat,通过将请求报文中的目标地址和目标端口修改为调度出的rs的rip和port来实现转发,整个请求如下: cip -> vip -> vs(nat转换) -> rip  请求 rip -> dip(默认网关) -> vs(nat转换) ->…

    Linux干货 2017-05-15
  • N25-第二周总结

    linux bassic The second week of blogging 一、linux中的文件,及文件操作管理命令 1. 文件概念 存储空间存储的一段流式数据,对数据可以做到按名存取。 linux中的文件具有的特点是:可通过操作系统或者程序对外提供信息,也能对内输入信息,可以被创建,删除。linux中,文件有特别重要的意义,他们为操作系统和设备提供…

    Linux干货 2016-12-11
  • ansible实战示例

    要求:     使用ansible部署以下任务:     (1) 在VS部署主/备模型的keepalived + nginx的负载均衡;     (2) 在RS主机上部署httpd + php + php-mysql;     (3) 在第五台主机上部署mariadb-serve…

    Linux干货 2016-11-11