文件系统挂载

挂载:

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

卸载:

为解除此关联关系的过程

把设备关联挂载点: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

相关推荐

  • TCP/IP

    TCP/IP协议族     互联网协议族(英语:Internet Protocol Suite,缩写IPS)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。因为该协议家…

    Linux干货 2017-06-26
  • N25-第八周作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;      在线的主机使用绿色显示;      不在线的主使用红色显示; 2、如何给网络接口配置多个地址,有哪些方式?     ifconfig eth#:# &n…

    Linux干货 2017-02-01
  • 数据结构-线性表

    1. 线性表:n个数据元素的有序集合。 线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。  线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点…

    Linux干货 2015-04-07
  • Linux磁盘和文件系统管理

      Linux磁盘和文件系统管理.pdf Part.I 磁盘管理 1.cfdisk   #图形化的很简单. 不知道你们用什么 反正我喜欢这个 ^_^ cfdisk – display or manipulate disk partition table 必要参数的具体说明如下: -a用箭头表示选取,而不是以反白表示 …

    Linux干货 2016-04-05
  • 磁盘、文件系统管理

    linux磁盘、文件系统管理 硬盘:机械硬盘、固态硬盘     计算硬盘速度:IoPs:(Io  per  second ) 每秒20次 机械硬盘:     track:磁道     平均寻道时间  &nbsp…

    Linux干货 2016-08-25
  • 探索这个“男人”

    一、前言 正所谓了解一个命令就得了解他的用法,正好是要了解一个人就得了解他的兴趣爱好,处事态度以及为人是怎么样的。 二、man是什么 man – an interface to the on-line reference manuals Man是manual(手册)的缩写,使用权限是所有用户,man命令提供为linux系统在线提供了很好的帮助手册…

    Linux干货 2016-05-03