文件系统挂载

挂载:

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

卸载:

为解除此关联关系的过程

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

相关推荐

  • 有关磁盘管理与文件系统

    硬盘物理结构      扇区  磁头  磁道   柱面   磁道数      扇区*一个磁道上的扇区个数*磁头数=柱面      柱面*磁道数=硬盘大小      一个扇区512字节   &…

    2017-08-19
  • N25第四周博客作业

    第四周博客作业 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。      3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的i…

    Linux干货 2016-12-19
  • N28-第二周博客作业

    常用通配符
    *:表示任意长度的任意字符;

    ?:表示任意的单个字符;

    []:表示在指定范围内的单个字符:[a-z];

    [^]:脱字符,是取反的意思,即在指定范围以外的任意字符,如 [^0-9]表示除数字以外的一切字符。

    [:digit:] 表示所有的数字,相当于0-9

    [:lower:] 表示所有的小写字母

    [:upper:] 表示所有的大写字母

    [:alpha:] 表示所有的字母,

    [:alnum:] 相当于[0-9a-z]

    [:space:] 相当于空白字符

    [:punct:] 表示所有的标点符号

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

    3、请使用命令行展开功能来完成以下练习:

    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │?? └── grub
    ├── dev
    ├── etc
    │?? ├── rc.d
    │?? │?? └── init.d
    │?? └── sysconfig
    │?? └── network-scripts
    ├── lib
    │?? └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │?? └── local
    │?? ├── bin
    │?? └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    Linux干货 2017-12-11
  • sed使用方法

      sed编辑器被称作流编辑器(stream editor)。流编辑器在处理数据之前基于预先提供的一组规则来编辑数据流。 一、命令格式   sed options '"地址""编辑命令"' file   常用选项:     -n:静默模式,不显示模式…

    Linux干货 2015-12-28
  • Linux基础–命令帮助的获取及history历史命令

    第一部分    Linux系统如何获取命令帮助     1、命令类型以及简单帮助的获取         linux系统上,基本命令分为两类,一类是内建命令,一类是外部命令。所谓内建命令,是指由linux内核自带的系统命令…

    Linux干货 2016-07-28
  • Linux软件包管理

    一、rpm包管理工具 1、rpm包简介 rpm是redhat的软件包管理器。rpm包管理器全称rpm: Redhat Package Manager RPM  Package Manager。它的软件包后缀也为.rpm。除此外,debian,deb文件有dpkg包管理器。 rpm包的命名方式: 源代码:name-version.tar.{gz|bz…

    Linux干货 2016-08-21