Linux文件系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件系统相关的知识,希望对你有一定的参考价值。

文件系统

 

1、文件系统概述

?文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即

在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结

构称为文件管理系统,简称文件系统

?从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文

件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立

文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压

缩,加密等

?支持的文件系统/lib/modules/`uname –r`/kernel/fs

[[email protected] ~]#ls /lib/modules/3.10.0-862.el7.x86_64/kernel/fs

binfmt_misc.ko.xz  cifs    ext4     gfs2   mbcache.ko.xz  nls        udf

btrfs              cramfs  fat      isofs  nfs            overlayfs  xfs

cachefiles         dlm     fscache  jbd2   nfs_common     pstore

ceph               exofs   fuse     lockd  nfsd           squashfs

2、文件系统类型

?Linux文件系统:ext2(Extended file system), ext3, ext4, xfsSGI, btrfsOracle, reiserfs, jfsAIX, swap

[[email protected] ~]#df -T          #查看分区文件系统类型

Filesystem     Type     1K-blocks    Used Available Use% Mounted on

/dev/sda2      xfs       20961280 3761660  17199620  18% /

devtmpfs       devtmpfs    722676       0    722676   0% /dev

tmpfs          tmpfs       738604       0    738604   0% /dev/shm

tmpfs          tmpfs       738604   10448    728156   2% /run

tmpfs          tmpfs       738604       0    738604   0% /sys/fs/cgroup

/dev/sda5      xfs       10475520   97648  10377872   1% /app

/dev/sda1      xfs         303780  140632    163148  47% /boot

tmpfs          tmpfs       147724      12    147712   1% /run/user/42

tmpfs          tmpfs       147724       0    147724   0% /run/user/0

?光盘:iso9660

?WindowsFAT32, exFAT,NTFS

?Unix: FFSfast, UFSunix, JFS2

?网络文件系统:NFS, CIFS

?集群文件系统:GFS2, OCFS2oracle

?分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre

?RAW:未经处理或者未经格式化产生的文件系统

3、文件系统分类

?根据其是否支持"journal"功能:

              日志型文件系统: ext3, ext4, xfs, ...

              非日志型文件系统: ext2, vfat

?文件系统的组成部分:

              内核中的模块:ext4, xfs, vfat

              用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

?Linux的虚拟文件系统VFS

?查前支持的文件系统:cat /proc/filesystems

[[email protected] ~]#cat /proc/filesystems

nodev   sysfs

nodev   rootfs

nodev   ramfs

nodev   bdev

nodev   proc

nodev   cgroup

nodev   cpuset

nodev   tmpfs

nodev   devtmpfs

nodev   debugfs

nodev   securityfs

nodev   sockfs

nodev   dax

nodev   pipefs

nodev   anon_inodefs

nodev   configfs

nodev   devpts

nodev   hugetlbfs

nodev   autofs

nodev   pstore

nodev   mqueue

nodev   selinuxfs

        xfs

nodev   rpc_pipefs

        iso9660

nodev   binfmt_mis

4VFS

技术分享图片

5、创建文件系统

       mkfs命令:

?          (1) mkfs.FS_TYPE /dev/DEVICE

                                   ext4

                                   xfs

                                   btrfs

                                   vfat

例子:

[[email protected] ~]#mkfs.vfat /dev/sdb2                     #创建文件系统

mkfs.vfat 3.0.9 (31 Jan 2010)

[[email protected] ~]#blkid          #查看块设备属性信息

/dev/sda1: UUID="fcf2e544-0db0-4f27-9bdd-380bddaaee4d" TYPE="ext4"

/dev/sda2: UUID="d7c928d9-40b6-420e-99de-74877dbdccf5" TYPE="ext4"

/dev/sda3: UUID="d9193730-2fc6-44d0-93cb-a8b7a120a5bf" TYPE="ext4"

/dev/sda5: UUID="858ff62c-536c-4e5a-b7aa-bc949fcf20d2" TYPE="swap"

/dev/sdb1: UUID="68853309-76d3-428e-bc73-383f83639e2d" TYPE="ext4"

/dev/sdb2: UUID="8ADA-1202" TYPE="vfat"

[[email protected] ~]#mkfs.xfs /dev/sdb1

?   (2) mkfs -t FS_TYPE /dev/DEVICE

                            -L 'LABEL': 设定卷标

[[email protected] ~]#mkfs -t ext4 /dev/sdb1          #创建文件系统

[[email protected] ~]#blkid /dev/sdb1       #查看块设备文件系统信息

/dev/sdb1: UUID="68853309-76d3-428e-bc73-383f83639e2d" TYPE="ext4"

[[email protected] ~]#df -T          #仅查看挂载好的文件系统

Filesystem     Type  1K-blocks    Used Available Use% Mounted on

/dev/sda2      ext4   20511356 4372072  15090708  23% /

tmpfs          tmpfs    502056      72    501984   1% /dev/shm

/dev/sda3      ext4   10190136   23012   9642836   1% /app

/dev/sda1      ext4     289293   35675    238258  14% /boot

[[email protected] ~]#mkfs.ext4 /dev/sdb2 -L /dev/sdb2             #创建卷标

[[email protected] ~]#blkid -L /dev/sdb2          #查看卷标

/dev/sdb2

5.1、创建ext文件系统

?   mke2fsext系列文件系统专用管理工具

              -t {ext2|ext3|ext4}     指定文件系统类型

              -b {1024|2048|4096}        指定块大小

              -L 'LABEL'  创建卷标

              -j: 相当于 -t ext3

       mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

              -i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小

              -N #指定分区中创建多少个inode

              -I 一个inode记录占用的磁盘空间大小,128---4096

              -m #: 默认5%,为管理人员预留空间占总空间的百分比

              -O FEATURE[,...]:启用指定特性

              -O ^FEATURE:关闭指定特性

例子:

[[email protected] ~]#tune2fs -O has_journal /dev/sdb1            #增加日志功能

tune2fs 1.41.12 (17-May-2010)

Creating journal inode: done

This filesystem will be automatically checked every 29 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[[email protected] ~]#tune2fs -l /dev/sdb1|grep "features"          #查看日志功能

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

[[email protected] ~]#tune2fs -O ^has_journal /dev/sdb1            #取消日志功能

tune2fs 1.41.12 (17-May-2010)

[[email protected] ~]#tune2fs -l /dev/sdb1|grep "features"

Filesystem features:      ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

#日志功能已取消

 

5.2、文件系统标签

?指向设备的另一种方法

?与设备无关

?1blkid:块设备属性信息查看

              blkid [OPTION]... [DEVICE]

                     -U UUID: 根据指定的UUID来查找对应的设备

                     -L LABEL根据指定的LABEL来查找对应的设备

例子:

[[email protected] ~]#blkid          #查看块设备属性信息

/dev/sda1: UUID="fcf2e544-0db0-4f27-9bdd-380bddaaee4d" TYPE="ext4"

/dev/sda2: UUID="d7c928d9-40b6-420e-99de-74877dbdccf5" TYPE="ext4"

/dev/sda3: UUID="d9193730-2fc6-44d0-93cb-a8b7a120a5bf" TYPE="ext4"

/dev/sda5: UUID="858ff62c-536c-4e5a-b7aa-bc949fcf20d2" TYPE="swap"

/dev/sdb1: UUID="68853309-76d3-428e-bc73-383f83639e2d" TYPE="ext4"

/dev/sdb2: UUID="4b4bc6cd-e3b5-4d31-8911-21b59a18b2ec" TYPE="ext4" LABEL="/dev/sdb2"

[[email protected] ~]#blkid -U fcf2e544-0db0-4f27-9bdd-380bddaaee4d              #通过UUID查看设备

/dev/sda1

[[email protected] ~]#blkid -L /dev/sdb2          #通过卷标查看设备

/dev/sdb2

[[email protected] ~]#blkid /dev/sdb1              #查看指定设备属性信息

/dev/sdb1: UUID="68853309-76d3-428e-bc73-383f83639e2d" TYPE="ext4"

?          2e2label:管理ext系列文件系统的LABEL

                     e2label DEVICE [LABEL]

例子:

[[email protected] ~]#e2label /dev/sdb2 /app/sdb2               #修改卷标

[[email protected] ~]#e2label /dev/sdb2           #查看卷标

/app/sdb2

?   3findfs :查找分区

              findfs [options] LABEL=<label>

              findfs [options] UUID=<uuid>

例子:

[[email protected] ~]#findfs LABEL=/app/sdb2            #通过卷标查找设备

/dev/sdb2

[[email protected] ~]#findfs UUID="4b4bc6cd-e3b5-4d31-8911-21b59a18b2ec"         #通过UUID查找设备

/dev/sdb2

 

5.3 tune2fs

?1tune2fs:重新设定ext系列文件系统可调整参数的值

              -l查看指定文件系统超级块信息;super block

              -L 'LABEL'修改卷标

              -m #修预留给管理员的空间百分比

              -j: ext2升级为ext3

              -O: 文件系统属性启用或禁用, O ^has_journal

              -o: 调整文件系统的默认挂载选项,–o ^acl

              -U UUID: 修改UUID

例子:

[[email protected] ~]#tune2fs -l /dev/sdb1                     #查看ext系列文件系统信息

tune2fs 1.41.12 (17-May-2010)

Filesystem volume name:   <none>

Last mounted on:          <not available>

Filesystem UUID:          68853309-76d3-428e-bc73-383f83639e2d

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Filesystem flags:         signed_directory_hash

Default mount options:    (none)                     #centos6手动分配分区没有ACL功能,需要手动添加ACL功能;centos7手动创建的文件系统默认自带ACL功能

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              131648

Block count:              526120

Reserved block count:     26306

Free blocks:              500688

Free inodes:              131637

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      128

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         7744

Inode blocks per group:   484

Flex block group size:    16

Filesystem created:       Wed Jun  6 19:35:21 2018

Last mount time:          n/a

Last write time:          Wed Jun  6 19:35:21 2018

Mount count:              0

Maximum mount count:      29

Last checked:             Wed Jun  6 19:35:21 2018

Check interval:           15552000 (6 months)

Next check after:         Mon Dec  3 19:35:21 2018

Lifetime writes:          97 MB

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:               256

Required extra isize:     28

Desired extra isize:      28

Journal inode:            8

Default directory hash:   half_md4

Directory Hash Seed:      0f36b4d1-e28f-4232-8dfa-88a6f03f3f3c

Journal backup:           inode blocks

[[email protected] ~]#cd /app/sdb1            #进入挂载点

[[email protected] /app/sdb1]#touch f1            #创建文件

[[email protected] /app/sdb1]#ls

f1  lost+found

[[email protected] /app/sdb1]#setfacl -m u:wang:0 f1          #设置acl权限

setfacl: Option -m: Invalid argument near character 3            #提示:不支持

[[email protected] ~]#tune2fs -o acl /dev/sdb1       #手动增加ACL

tune2fs 1.41.12 (17-May-2010)

[[email protected] ~]#tune2fs -l /dev/sdb1|grep "mount options"              #查看默认挂载选项

Default mount options:    acl

提示:acl功能启用了,但不没有生效,需要重新挂载,才可以对挂载点设置acl权限

[[email protected] ~]#umount /dev/sdb1          #卸载挂载点

[[email protected] ~]#mount /dev/sdb1 /app/sdb1          #重新挂载

[[email protected] /app/sdb1]#setfacl -m u:wang:0 f1          #在目录下对某个文件设置acl权限

[[email protected] /app/sdb1]#getfacl f1          #查看某个文件acl权限

# file: f1

# owner: root

# group: root

user::rw-

user:wang:---

group::r--

mask::r--

other::r--

       禁用文件系统某属×××:“-o ^…

[[email protected] ~]#tune2fs -o ^acl /dev/sdb1             #取消设备上acl功能

tune2fs 1.41.12 (17-May-2010)

[[email protected] ~]#tune2fs -l /dev/sdb1|grep "mount options"              #查看设备acl功能

Default mount options:    (none)              #已取消acl功能

       手动修改UUID

[[email protected] ~]#blkid /dev/sdb2              #修改前UUID

/dev/sdb2: UUID="4b4bc6cd-e3b5-4d31-8911-21b59a18b2ec" TYPE="ext4" LABEL="/app/sdb2"

[[email protected] ~]#tune2fs -U `uuidgen` /dev/sdb2          #修改UUID(不建议手动修改)

tune2fs 1.41.12 (17-May-2010)

提示:uuidgen  #手动创建UUID

[[email protected] ~]#blkid /dev/sdb2              #修改后的UUID

/dev/sdb2: UUID="86c8cee6-9ddf-4f94-bc7d-9d5d6b36d914" TYPE="ext4" LABEL="/app/sdb2"

 

?2dumpe2fs

              块分组管理,32768

              -h查看超级块信息,不显示分组信息

[[email protected] ~]#dumpe2fs /dev/sdb1                     #查看元数据信息及块分组信息

[[email protected] ~]#dumpe2fs -h /dev/sdb2                #仅显示元数据信息

5.4、文件系统检测和修复

?常发生于死机或者非正常关机之后

?挂载为文件系统标记为“no clean”

?注意:一定不要在挂载状态下修复

?1fsck: File System Check

              fsck.FS_TYPE

              fsck -t FS_TYPE

              -p: 自动修复错误

              -r: 交互式修复错误

              FS_TYPE一定要与分区上已经文件类型相同

例子:

[[email protected] ~]#fsck /dev/sdb1 -y           #修复错误(fsck大概修复错误)

fsck from util-linux-ng 2.17.2

e2fsck 1.41.12 (17-May-2010)

fsck.ext2: Superblock invalid, trying backup blocks...

。。。

Pass 1: Checking inodes, blocks, and sizes

Root inode is not a directory.  Clear? yes

/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****

/dev/sdb1: 11/131648 files (0.0% non-contiguous), 9045/526120 blocks

[[email protected] ~]#tune2fs -l /dev/sdb1                     #查看指定文件系统信息

tune2fs 1.41.12 (17-May-2010)

Filesystem volume name:   <none>

Last mounted on:          <not available>

Filesystem UUID:          c5030ba7-4da8-43d7-abe3-52772d26ef37

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file

Filesystem flags:         signed_directory_hash

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

。。。

?2e2fsckext系列文件专用的检测修复工具

              -y:自动回答为yes

              -f强制修复

[[email protected] ~]#e2fsck -f /dev/sdb1        #强制检查(将分区每个地方强制检查一边)

e2fsck 1.41.12 (17-May-2010)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/sdb1: 11/131648 files (0.0% non-contiguous), 9045/526120 blocks

6、挂载mount

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

?卸载:为解除此关联关系的过程

?把设备关联挂载点:mount Point

              mount

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

              umount

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

?   一个挂载点同一时间只能挂载一个设备,只能生效最后挂载点

       一个设备可以同时挂载多个文件夹下

       挂载点目录一般为空

6.1、用mount命令挂载文件系统

?1挂载方法:

              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

       2dir:挂载点

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

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

 

例子:

       挂载

[[email protected] ~]#mkdir /app/sdb2             #创建挂载点空目录

[[email protected] ~]#mount /dev/sdb2 /app/sdb2          #将设备挂载到挂载占目录上

[[email protected] ~]#df        #查看挂载

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20511356 4372508  15090272  23% /

tmpfs             502056      72    501984   1% /dev/shm

/dev/sda3       10190136   23016   9642832   1% /app

/dev/sda1         289293   35675    238258  14% /boot

/dev/sdb2        2005880    3096   1897560   1% /app/sdb2

[[email protected] ~]#mount        #查看挂载情况

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb2 type ext4 (rw)

[[email protected] ~]#cat /etc/mtab                 #查看挂载情况

/dev/sda2 / 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/sda3 /app ext4 rw 0 0

/dev/sda1 /boot ext4 rw 0 0

none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

/dev/sdb2 /app/sdb2 ext4 rw 0 0

提示:

              1、此文件根据挂载信息自动更新文件内容

       卸载挂载

[[email protected] ~]#umount /app/sdb2

[[email protected] ~]#df

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20511356 4372512  15090268  23% /

tmpfs             502056      72    501984   1% /dev/shm

/dev/sda3       10190136   23016   9642832   1% /app

/dev/sda1         289293   35675    238258  14% /boot

       通过卷标挂载

[[email protected] ~]#mount LABEL=/app/sdb2 /app/sdb2

[[email protected] ~]#df

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20511356 4372512  15090268  23% /

tmpfs             502056      72    501984   1% /dev/shm

/dev/sda3       10190136   23016   9642832   1% /app

/dev/sda1         289293   35675    238258  14% /boot

/dev/sdb2        2005880    3096   1897560   1% /app/sdb2

       一个设备挂载两个挂载点(实现共享文件)

[[email protected] ~]#mkdir /app/sdb22           #创建目录

[[email protected] ~]#blkid          #查看设备属性信息

/dev/sda1: UUID="fcf2e544-0db0-4f27-9bdd-380bddaaee4d" TYPE="ext4"

/dev/sda2: UUID="d7c928d9-40b6-420e-99de-74877dbdccf5" TYPE="ext4"

/dev/sda3: UUID="d9193730-2fc6-44d0-93cb-a8b7a120a5bf" TYPE="ext4"

/dev/sda5: UUID="858ff62c-536c-4e5a-b7aa-bc949fcf20d2" TYPE="swap"

/dev/sdb2: UUID="86c8cee6-9ddf-4f94-bc7d-9d5d6b36d914" TYPE="ext4" LABEL="/app/sdb2"

/dev/sdb1: UUID="c5030ba7-4da8-43d7-abe3-52772d26ef37" SEC_TYPE="ext2" TYPE="ext3"

[[email protected] ~]#mount UUID="86c8cee6-9ddf-4f94-bc7d-9d5d6b36d914" /app/sdb22          

#通过UUID挂载

[[email protected] ~]#df        #查看设备挂载点

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20511356 4372512  15090268  23% /

tmpfs             502056      72    501984   1% /dev/shm

/dev/sda3       10190136   23020   9642828   1% /app

/dev/sda1         289293   35675    238258  14% /boot

/dev/sdb2        2005880    3096   1897560   1% /app/sdb2

/dev/sdb2        2005880    3096   1897560   1% /app/sdb22

#一个设备挂载两个目录

[[email protected] ~]#ls /app/sdb2

lost+found

[[email protected] ~]#ls /app/sdb22

lost+found

[[email protected] ~]#touch /app/sdb2/f1         #/app/sdb2创建文件

[[email protected] ~]#ls /app/sdb2             #查看新建文件

f1  lost+found

[[email protected] ~]#ls /app/sdb22    #查看/app/sdb22目录下文件,可以查看到sdb2目录下创建的文件

f1  lost+found

       演示:不同设备挂载到同一个挂载点上

[[email protected] ~]#mount /dev/sdb1 /app/sdb2          #sdb1设备也挂载到/app/sdb2目录上

[[email protected] ~]#ls /app/sdb2             #查看刚创建的文件是否可以看到

lost+found

[[email protected] ~]#df

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20511356 4372572  15090208  23% /

tmpfs             502056      72    501984   1% /dev/shm

/dev/sda3       10190136   23020   9642828   1% /app

/dev/sda1         289293   35675    238258  14% /boot

/dev/sdb2        2071384   68688   1897472   4% /app/sdb2

/dev/sdb2        2005880    3096   1897560   1% /app/sdb22

/dev/sdb1        2071384   68688   1897472   4% /app/sdb2

[[email protected] ~]#umount /app/sdb2          #卸载挂载

[[email protected] ~]#df

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20511356 4372588  15090192  23% /

tmpfs             502056      72    501984   1% /dev/shm

/dev/sda3       10190136   23020   9642828   1% /app

/dev/sda1         289293   35675    238258  14% /boot

/dev/sdb2        2005880    3096   1897560   1% /app/sdb2

/dev/sdb2        2005880    3096   1897560   1% /app/sdb22

提示:/dev/sdb1设备被取消挂载点

总结:

       1、不同设备挂载到同一个挂载点只能最后挂载的挂载点生效

       2、隐藏原有设备创建的文件

       3、取消挂载时只会取消最后生效的挂载点

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

[[email protected] ~]#mount /dev/sdb1 /app/sdb1          #挂载

[[email protected] ~]#touch /app/sdb1/f1

[[email protected] ~]#cd /app/sdb1            #进入目录中

[[email protected] /app/sdb1]#umount /app/sdb1           #卸载挂载

umount: /app/sdb1: device is busy.                     #提示设备忙,无法卸载挂载

        (In some cases useful info about processes that use

         the device is found by lsof(8) or fuser(1))

提示:此处问题解决方法请往后面查找。

6.2mount常用命令选项

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

?-r: readonly只读挂载

?-w: read and write, 读写挂载(默认可读写)

?-n: 不更新/etc/mtabmount不可见

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

?-L 'LABEL': 以卷标指定挂载设备

?-U 'UUID': UUID指定要挂载的设备

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

?查看内核追踪到的已挂载的所有设备

              cat /proc/mounts

例子:

       ?-r: readonly只读挂载

[[email protected] ~]#mount -r /dev/sdb1 /app/sdb1/           #只读挂载

[[email protected] ~]#ls /app/sdb1/

f1

[[email protected] ~]#rm -f /app/sdb1/f1                #不能删除

rm: cannot remove ‘/app/sdb1/f1’: Read-only file system

[[email protected] ~]#touch /app/sdb1/f2         #不能创建

touch: cannot touch ‘/app/sdb1/f2’: Read-only file system

       -n: 不更新/etc/mtabmount不可见(centos6生效)

[[email protected] ~]#mount -n /dev/sdb1 /app/sdb1            #不更新mount/etc/mtab挂载信息

[[email protected] ~]#df        #查看不到/dev/sdb1挂载点

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20511356 4372636  15090144  23% /

tmpfs             502056      72    501984   1% /dev/shm

/dev/sda3       10190136   23024   9642824   1% /app

/dev/sda1         289293   35675    238258  14% /boot

/dev/sdb2        2005880    3096   1897560   1% /app/sdb2

/dev/sdb2        2005880    3096   1897560   1% /app/sdb22

[[email protected] ~]#ls /app/sdb1/            #可以查看到挂载点目录下文件,证明挂载成功

f1  lost+found

[[email protected] ~]#mount           #查看不到/dev/sdb1挂载信息

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb2 type ext4 (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

[[email protected] ~]#cat /etc/mtab          #查看不到/dev/sdb1挂载信息

/dev/sda2 / 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/sda3 /app ext4 rw 0 0

/dev/sda1 /boot ext4 rw 0 0

none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0

/dev/sdb2 /app/sdb2 ext4 rw 0 0

/dev/sdb2 /app/sdb22 ext4 rw 0 0

[[email protected] ~]#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=487272k,nr_inodes=121818,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/sda2 / ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0

none /selinux selinuxfs rw,relatime 0 0

devtmpfs /dev devtmpfs rw,seclabel,relatime,size=487272k,nr_inodes=121818,mode=755 0 0

/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0

/dev/sda3 /app ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0

/dev/sda1 /boot 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=2035,timeout=300,minproto=5,maxproto=5,indirect 0 0

-hosts /net autofs rw,relatime,fd=13,pgrp=2035,timeout=300,minproto=5,maxproto=5,indirect 0 0

/dev/sdb2 /app/sdb2 ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0

/dev/sdb2 /app/sdb22 ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0

/dev/sdb1 /app/sdb1 ext3 rw,seclabel,relatime,errors=continue,barrier=1,data=ordered 0 0

[[email protected] ~]#mount -n /dev/sdb1 /app/sdb1            #使用-n挂载

[[email protected] ~]#df        #查看到/dev/sdb1挂载点(-ncentos7无效)

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20961280 3761916  17199364  18% /

devtmpfs          722676       0    722676   0% /dev

tmpfs             738604       0    738604   0% /dev/shm

tmpfs             738604   10464    728140   2% /run

tmpfs             738604       0    738604   0% /sys/fs/cgroup

/dev/sda5       10475520   97648  10377872   1% /app

/dev/sda1         303780  140632    163148  47% /boot

tmpfs             147724      12    147712   1% /run/user/42

/dev/sr0         9176232 9176232         0 100% /mnt/cdrom

tmpfs             147724       0    147724   0% /run/user/0

/dev/sdb1        2086912   32944   2053968   2% /app/sdb1

[[email protected] ~]#ll /etc/mtab

lrwxrwxrwx. 1 root root 17 May 15 12:37 /etc/mtab -> /proc/self/mounts

#centos7可以看到隐藏挂载点是因为/etc/mtab链接到/proc/self/mounts,直接查看/proc下的mount挂载点信息。

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

[[email protected] ~]#vim /etc/fstab

 

#

# /etc/fstab

# Created by anaconda on Tue May 15 20:06:26 2018

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=d7c928d9-40b6-420e-99de-74877dbdccf5 /                       ext4    defau

lts        1 1

UUID=d9193730-2fc6-44d0-93cb-a8b7a120a5bf /app                    ext4    defau

lts        1 2

UUID=fcf2e544-0db0-4f27-9bdd-380bddaaee4d /boot                   ext4    defau

lts        1 2

UUID=858ff62c-536c-4e5a-b7aa-bc949fcf20d2 swap                    swap    defau

lts        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

UUID=c5030ba7-4da8-43d7-abe3-52772d26ef37  /app/sdb1      ext4      defaults  0 0 #新增挂载

[[email protected] ~]#mount -a           #自动挂载/etc/fstab文件中,且挂载选项中有auto功能

[[email protected] ~]#df                                         

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20511356 4579420  14883360  24% /

tmpfs             502056      72    501984   1% /dev/shm

/dev/sda3       10190136   23024   9642824   1% /app

/dev/sda1         289293   35675    238258  14% /boot

/dev/sdb2        2005880    3096   1897560   1% /app/sdb22

/dev/sdb1        2071384   70968   1895192   4% /app/sdb1

/root/p1           95054    1551     88383   2% /mnt

提示:实现某个设备开机自动挂载到某个目录上,需要将挂载信息写到/etc/fstab配置文件中

 

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

[[email protected] ~]#mount --bind /app/sdb1/ /mnt/sdb1/                 #目录挂载目录

[[email protected] ~]#touch /app/sdb1/f1

[[email protected] ~]#ls /app/sdb1

f1

[[email protected] ~]#ls /mnt/sdb1/

f1

? -o options(挂载文件系统的选项),多个选项使用逗号分隔

              async异步模式(默认)

              sync同步模式,内存更改时,同时写磁盘

              atime(默认)/noatime包含目录和文件

              diratime(默认)/nodiratime目录的访问时间戳

              auto(默认)/noauto是否支持自动挂载,是否支持-a选项

              exec(默认)/noexec是否支持将文件系统上运行应用程序

              dev(默认)/nodev是否支持在此文件系统上使用设备文件

              suid/nosuid是否支持suidsgid权限

              remount重新挂载

              ro只读

              rw读写(默认)

              user/nouser(默认):是否允许普通用户挂载此设备,/etc/fstab使用

              acl启用此文件系统上的acl功能

              loop: 使用loop设备

?  defaults:相当于rw, suid, dev, exec, auto, nouser, async

例子:

       exec/noexec:是否支持将文件系统上运行应用程序

       默认exec选项

[[email protected] ~]#cd /app/sdb1

[[email protected] /app/sdb1]#cat >f1.sh                 #创建脚本

#!/bin/sh

echo test

[[email protected] ~]#/app/sdb1/f1.sh              #执行脚本

test

提示:挂载文件系统设备默认自带执行权限

[[email protected] ~]#mount -o remount,noexec /app/sdb1                #挂载时禁用执行权限

[[email protected] /app/sdb1]#mount

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/dev/sdb1 on /app/sdb1 type ext3 (rw,noexec)

[[email protected] ~]#/app/sdb1/f1.sh       #全路径执行脚本

-bash: /app/sdb1/f1.sh: Permission denied         #权限拒绝

[[email protected] ~]#bash /app/sdb1/f1.sh             #使用bash可以执行

test

       dev/nodev:是否支持在此文件系统上使用设备文件

       例子:默认dev选项

[[email protected] /app/sdb1]#mknod zero c 1 5                   #在此分区上创建设备文件

[[email protected] /app/sdb1]#ll

total 8

-rw-r--r--. 1 root root    0 Jun  7 11:55 f1

-rw-r--r--. 1 root root   20 Jun  7 15:09 f1.sh

drwx------. 2 root root 4096 Jun  6 21:40 lost+found

crw-r--r--. 1 root root 1, 5 Jun  7 15:23 zero

[[email protected] /app/sdb1]#dd if=/app/sdb1/zero of=/root/f1 bs=1M count=1         #使用此设备写内容

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.00164247 s, 638 MB/s

[[email protected] /app/sdb1]#ll /root/f1

-rw-rw-r--+ 1 magedu zabbix 1048576 Jun  7 15:23 /root/f1

[[email protected] /app/sdb1]#hexdump -C /root/f1              #查看f1内容

00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

*

00100000

[[email protected] ~]#mount -o remount,nodev /app/sdb1                  #禁用此分区使用设备文件

[[email protected] ~]#dd if=/app/sdb1/zero of=/root/f1 bs=1M count=1         #使用分区上设备文件给其他文件写内容

dd: opening `/app/sdb1/zero': Permission denied             #提示权限拒绝

[[email protected] ~]#mount

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/dev/sdb1 on /app/sdb1 type ext3 (rw,nodev)

       suid/nosuid:是否支持suidsgid权限

[[email protected] ~]#cp /usr/bin/vim /app/sdb1            #复制vim命令到/app/sdb1目录下

[[email protected] ~]#ll /app/sdb1/vim

-rwxr-xr-x. 1 root root 2324712 Jun  7 16:06 /app/sdb1/vim

[[email protected] ~]#su - wang          #切换到普通用户

[[email protected] ~]$/app/sdb1/vim /etc/shadow        #修改密码文件,提示没有权限修改

[[email protected] ~]$exit

logout

[[email protected] ~]#chmod u+s /app/sdb1/vim           #增加特殊权限位

[[email protected] ~]#ll /app/sdb1/vim            #查看vim命令特殊权限位

-rwsr-xr-x. 1 root root 2324712 Jun  7 16:06 /app/sdb1/vim

[[email protected] ~]#su - wang

[[email protected] ~]$/app/sdb1/vim /etc/shadow               #可以修改文件

root:$6$5vgqd02eX5Th/kOF$UbDUrrq0UluZMmtA7WjAfDiHdrf8HmueUBMZ7iDTOnI8dM1ZD8bPI6

EDy7CLX.xcg6uiOKAI5gO4qV6XAm9HL/:17666:0:99999:7:::

bin:*:17246:0:99999:7:::

daemon:*:17246:0:99999:7:::

。。。

[[email protected] ~]$ll /app/sdb1/vim                 #查看特殊权限位有执行权限

-rwsr-xr-x. 1 root root 2324712 Jun  7 16:06 /app/sdb1/vim

[[email protected] ~]#mount -o remount,nosuid /app/sdb1                 #禁用suid特殊权限位执行权限

[[email protected] ~]#su - wang

[[email protected] ~]$/app/sdb1/vim /etc/shadow        #编辑文件

"/etc/shadow" [Permission Denied]             #拒绝修改

       loop: 使用loop设备,将文件挂载到目录上

[[email protected] ~]#dd if=/dev/zero of=/root/p1 bs=1M count=100             #创建文件

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 1.84154 s, 56.9 MB/s

[ro[email protected] ~]#ll p1 -h              查看创建文件属性信息

-rw-r--r--. 1 root root 100M Jun  7 16:35 p1

[[email protected] ~]#mkfs.ext4 p1           #将文件当作分区来用,进行格式

mke2fs 1.41.12 (17-May-2010)

p1 is not a block special device.                  #由于不是块设备,所以就会提示

Proceed anyway? (y,n) y         #输入y

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

25688 inodes, 102400 blocks

5120 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=67371008

13 block groups

8192 blocks per group, 8192 fragments per group

1976 inodes per group

Superblock backups stored on blocks:

        8193, 24577, 40961, 57345, 73729

 

Writing inode tables: done                           

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 21 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[[email protected] ~]#blkid                 #查看设备属性信息,但看不到p1属性信息

/dev/sda1: UUID="fcf2e544-0db0-4f27-9bdd-380bddaaee4d" TYPE="ext4"

/dev/sda2: UUID="d7c928d9-40b6-420e-99de-74877dbdccf5" TYPE="ext4"

/dev/sda3: UUID="d9193730-2fc6-44d0-93cb-a8b7a120a5bf" TYPE="ext4"

/dev/sda5: UUID="858ff62c-536c-4e5a-b7aa-bc949fcf20d2" TYPE="swap"

/dev/sdb2: UUID="86c8cee6-9ddf-4f94-bc7d-9d5d6b36d914" TYPE="ext4" LABEL="/app/sdb2"

/dev/sdb1: UUID="c5030ba7-4da8-43d7-abe3-52772d26ef37" SEC_TYPE="ext2" TYPE="ext3"

[[email protected] ~]#blkid p1                   #需要指定文件名查看设备属性信息

p1: UUID="0ca29d02-de01-4e6b-bbe3-c52968d5a26d" TYPE="ext4"

[[email protected] ~]#mount /root/p1 /mnt              #直接挂载

mount: /root/p1 is not a block device (maybe try `-o loop'?)         #提示p1不是块设备需要使用-o loop

[[email protected] ~]#mount -o loop /root/p1 /mnt               #使用loop挂载(centos7不需要加此选项)

[[email protected] ~]#mount

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/dev/sdb1 on /app/sdb1 type ext3 (rw,nosuid)

/root/p1 on /mnt type ext4 (rw,loop=/dev/loop0)

[[email protected] ~]#touch /mnt/f1          #创建文件到挂载点

[[email protected] ~]#ls /mnt/

f1  lost+found

[[email protected] ~]#ls /dev/loop*                  #centos6系统默认有8loop设备

/dev/loop0  /dev/loop2  /dev/loop4  /dev/loop6

/dev/loop1  /dev/loop3  /dev/loop5  /dev/loop7

提示:将文件挂载到目录上时会自动分配loop设备替代文件进行挂载,使用loop挂载会减少一个loop设备。

[[email protected] ~]#mknod /dev/loop8 b 7 8        #可以手动增加loop设备

[[email protected] ~]#ll /dev/loop*

brw-rw----. 1 root disk 7, 0 Jun  6 19:30 /dev/loop0

brw-rw----. 1 root disk 7, 1 Jun  6 19:30 /dev/loop1

brw-rw----. 1 root disk 7, 2 Jun  6 19:30 /dev/loop2

brw-rw----. 1 root disk 7, 3 Jun  6 19:30 /dev/loop3

brw-rw----. 1 root disk 7, 4 Jun  6 19:30 /dev/loop4

brw-rw----. 1 root disk 7, 5 Jun  6 19:30 /dev/loop5

brw-rw----. 1 root disk 7, 6 Jun  6 19:30 /dev/loop6

brw-rw----. 1 root disk 7, 7 Jun  6 19:30 /dev/loop7

brw-r--r--. 1 root root 7, 8 Jun  7 17:12 /dev/loop8        #增加loop设备

[[email protected] ~]#losetup /dev/loop8 p2           #手动关联loop设备到指定文件

              p1文件拷贝到centos7系统上挂载使用

[[email protected] ~]#mount /app/p1 /mnt        #将文件挂载到目录上不需要加-o loop

[[email protected] ~]#df

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       20961280 3763376  17197904  18% /

devtmpfs          722676       0    722676   0% /dev

tmpfs             738604       0    738604   0% /dev/shm

tmpfs             738604   10468    728136   2% /run

tmpfs             738604       0    738604   0% /sys/fs/cgroup

/dev/sda5       10475520  200048  10275472   2% /app

/dev/sda1         303780  140632    163148  47% /boot

tmpfs             147724      12    147712   1% /run/user/42

tmpfs             147724       0    147724   0% /run/user/0

/dev/sdb1        2086912     176   2086736   1% /app/sdb1

/dev/loop0         95054    1551     86335   2% /mnt

[[email protected] ~]#ls /mnt/             #查看/mnt下文件

f1  lost+found

[[email protected] ~]#losetup -a                #查看loop设备对应哪个文件

/dev/loop0: [2053]:73 (/app/p1)

[[email protected] ~]#ls /dev/loop*           #查看loop设备

/dev/loop0  /dev/loop-control

提示:centos7系统使用loop设备挂载时会自动创建loop设备

       acl:启用此文件系统上的acl功能

[[email protected] ~]#mount -o acl /dev/sdb1 /app/sdb1                    #启用文件系统上的acl功能

[[email protected] ~]#setfacl -m u:wang:rw f1        #设置acl权限

[[email protected] ~]#mount

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb2 type ext4 (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/dev/sdb1 on /app/sdb1 type ext3 (rw,acl)

       取消acl功能:-o noacl,remount

[[email protected] ~]#mount -o noacl,remount /dev/sdb1 /app/sdb1                #取消acl功能

[[email protected] ~]#mount       

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb2 type ext4 (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/dev/sdb1 on /app/sdb1 type ext3 (rw,noacl)

[[email protected] /app/sdb1]#setfacl -m u:wang:rw f1               #设置acl功能不支持

setfacl: f1: Operation not supported

            remount:重新挂载

[[email protected] ~]#mount -o remount,ro /app/sdb1          #使用remount重新挂载选项

[[email protected] ~]#mount

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb2 type ext4 (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/dev/sdb1 on /app/sdb1 type ext3 (ro,noacl)

6.3、卸载命令

?1)查看挂载情况

              findmnt MOUNT_POINT|device

?2)查看正在访问指定文件系统的进程

              lsof MOUNT_POINT

              fuser -v MOUNT_POINT

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

              fuser -km MOUNT_POINT

?4)卸载

              umount DEVICE

              umount MOUNT_POINT

例子:

[[email protected] ~]#fuser -v /app/sdb1          #查看正在访问文件系统的进程

                     USER        PID ACCESS COMMAND

/app/sdb1:           root       5554 ..c.. bash

[[email protected] ~]#fuser -km /app/sdb1              #强制杀掉正在访问文件系统进程(慎用)

/app/sdb1:            5554c

[[email protected] ~]#umount /app/sdb1          #卸载挂载

[[email protected] ~]#lsof /app/sdb1         #查看正在访问文件系统的进程

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

bash    6526 root  cwd    DIR   8,17     4096    2 /app/sdb1

[[email protected] ~]#findmnt /app/sdb1                 #查看挂载情况

TARGET    SOURCE    FSTYPE OPTIONS

/app/sdb1 /dev/sdb1 ext3   rw,relatime,seclabel,errors=continue,barrier=1,data=

[[email protected] ~]#findmnt /app/sdb2          #查看挂载情况若没有信息表示没有挂载

7、挂载点和/etc/fstab

?配置文件系统体系

?mountfsck和其它程序使用

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

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

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

例子:mount -aremount命令对/etc/fstab中所有文件系统用法

[[email protected] ~]#vim /etc/fstab                                                                          

 

#

# /etc/fstab

# Created by anaconda on Tue May 15 20:06:26 2018

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=d7c928d9-40b6-420e-99de-74877dbdccf5 /                       ext4    defau

lts        1 1

UUID=d9193730-2fc6-44d0-93cb-a8b7a120a5bf /app                    ext4    defau

lts        1 2

UUID=fcf2e544-0db0-4f27-9bdd-380bddaaee4d /boot                   ext4    defau

lts        1 2

UUID=858ff62c-536c-4e5a-b7aa-bc949fcf20d2 swap                    swap    defau

lts        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

UUID=c5030ba7-4da8-43d7-abe3-52772d26ef37  /app/sdb1      ext4   acl 0 0            #修改默认选项

[[email protected] ~]#mount -a           #只能新增的挂载设备使用mount -a有效,已存在进行修改则无效

[[email protected] ~]#mount

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/root/p1 on /mnt type ext4 (rw,loop=/dev/loop0)

/dev/sdb1 on /app/sdb1 type ext4 (rw)

[[email protected] ~]#umount /app/sdb1                 #取消挂载;若某个用户正在访问,是无法取消挂载,所以此方法不可行(本例中没有正在访问所以可以取消挂载)

[[email protected] ~]#mount -a                 #重新自动

[[email protected] ~]#mount

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/root/p1 on /mnt type ext4 (rw,loop=/dev/loop0)

/dev/sdb1 on /app/sdb1 type ext4 (rw,acl)

[[email protected] ~]#mount -o remount /app/sdb1        #使用remount重新挂载(此方法最有效)

[[email protected] ~]#mount

/dev/sda2 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/sda3 on /app type ext4 (rw)

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sdb2 on /app/sdb22 type ext4 (rw)

/root/p1 on /mnt type ext4 (rw,loop=/dev/loop0)

/dev/sdb1 on /app/sdb1 type ext4 (ro,noexec,nosuid)

7.1、文件挂载配置文件

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

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

              设备文件:

                     LABELLABEL=""

                     UUIDUUID=""

                     伪文件系统名称:proc, sysfs

? 2)挂载点

? 3)文件系统类型

? 4)挂载选项:defaults

? 5)转储频率:0:不做备份 1:每天转储 2:每隔一天转储

? 6)自检次序: 0:不自检

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

/etc/fstab配置文件哪些配置错误导致系统启动失败

            1)如果设备不存在或配置错误及自检次序非0会导致系统启动失败

            2)如果挂载点错误,会影响挂载,不影响系统启动


以上是关于Linux文件系统的主要内容,如果未能解决你的问题,请参考以下文章

Linux 文件系统管理

linux文件系统类型

linux系统中对文件系统的原理进行分析

Linux文件系统操作命令

linux kernel 文件系统编程接口

linux下啥文件系统支持超个4G的单个(重点)文件?