在第一天装系统的时候,我们已经知道了mount,即挂载的概念。装机时自己配置分区的小伙伴都知道,CentOS7的文件系统为xfs,CentOS6则是ext4,更早的CentOS5则是ext3。老师告诉我们这叫文件系统。不同的文件系统有不同的存储特色。如linux里ext2无日志,xfs可支持最高200T之类的,window里fat32无法支持大于4G文件的传输云云……

稍等,好像有点跑题了。

总之,今天我们来说说基于CentOS平台的Linux文件管理。

先看下面这个题目。

创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

喂喂,用不着这个表情啦。我们今天的主题就是教你学会做这类题目啦!注意,是这类啦!这么说本作的标题大概可以改成——教你十分钟掌握Linux文件管理。嗯,不错呢这个注意。阿拉现在就去改。

改好了!那就让我们重回正题。

咳咳,创建2G的文件系统啊。那就来吧……

桥豆麻袋。先看好题目。题目要求文件系统大小为2G,这个不先设定好可不美哟。虽然图形化分区size和format是同时设定的,但其执行也是一条条来的哟。科科,后期可更改的文件系统属性里可没有文件大小这一属性哟。0.0总觉得说了一堆无关紧要的废话啊。喂,这点常识是个人都知道的吧。。

哦急死尅。

咳咳,开始了啊。

1.分区

linux里的分区工具有fdisk,parted,gdisk。论功能parted最全面。论性能大概数gdisk最优。但是用的最多的,还是老当益壮的fdisk。

关于分区工具,度娘和谷哥都能给出不错的答案。阿拉就不再废话了。(众人:喂,该多说的地方一字千金啦?阿拉:咳咳,这叫抛砖引玉。众人:

哦急死尅。阿拉开始分区了啊。记笔记了啊。

fdisk和gdisk默认为交互式分区。好吧,parted也可以交互式分区。(大概是分区着实麻烦了点。嘛,英语好的话交互式操作两遍就熟悉了。)

不过我们可以用下面的方式实现非交互式。(说是非交互式,其实也就是把交互式要做的列出来执行罢了

#fdisk对新硬盘分区(覆盖已有数据的话需要加o)
#gdisk功能类似fdisk。
[root@centos7 ~]# echo -e "n\np\n1\n\n+1G\nw\n" |fdisk /dev/sdb
#fdisk追加大小为1G的新分区(仅分区总数不超过4时)
[root@centos7 ~]# echo -e "n\n\n\n+1G\nw\n" |fdisk /dev/sdb
#parted新设分区结构(这个跟ext4和xfs不是一个体系啦),yes是重设时需要的
[root@centos7 ~]# parted /dev/sdb mklabel gpt/msdos [yes]
#parted新分一个1G的分区。这个要是继续分区的话数值要计算好的说
[root@centos7 ~]# parted /dev/sdb mkpart p 1 1000
#lsblk查询分区信息。不跟磁盘名则列出当前主机下所有磁盘
[root@centos7 ~]# lsblk /dev/sdb
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  150G  0 disk
├─sdb1   8:17   0  953M  0 part
└─sdb2   8:18   0    1G  0 part
#虽然非交互式演示起来方便,实操还是交互式更强大哦。
[root@centos7 ~]# fdisk /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): m #m显示帮助信息
Command actiond   delete a partitiong   create a new empty GPT partition tableG   create an IRIX (SGI) partition tablel   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tableq   quit without saving changess   create a new empty Sun disklabelw   write table to disk and exitCommand (m for help): p #显示当前分区信息Disk /dev/sdb: 161.1 GB, 161061273600 bytes, 314572800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt#         Start          End    Size  Type            Name1         2048      1953791    953M  Microsoft basic p2      1953792      4050943      1G  Linux filesyste Command (m for help): n  #新建分区
Partition number (3-128, default 3):   #使用默认
First sector (34-314572766, default 4050944):    #使用默认
Last sector, +sectors or +size{K,M,G,T,P} (4050944-314572766, default 314572766): +2G    #增加2G大小的分区
Created partition 3Command (m for help): p  #查看分区是否成功Disk /dev/sdb: 161.1 GB, 161061273600 bytes, 314572800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt#         Start          End    Size  Type            Name1         2048      1953791    953M  Microsoft basic p2      1953792      4050943      1G  Linux filesyste 3      4050944      8245247      2G  Linux filesyste Command (m for help): w  #保存当前分区表
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[root@centos7 ~]# lsblk /dev/sdb  #查看分区,新增2G分区成功
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  150G  0 disk
├─sdb1   8:17   0  953M  0 part
├─sdb2   8:18   0    1G  0 part
└─sdb3   8:19   0    2G  0 part
#需要注意的是,fdisk和gdisk新增系统引导磁盘内的分区时,该分区不会自动写入内存
#centos5和7里使用partprobe /dev/sdX,centos6则使用partx -a /dev/sda保存新增,partx -d --nr nmuber\|range /dev/sdX保存删除

2G分区保存成功,耶。好的,一鼓作气攻城略地,拿下这山头今晚吃鸡。

2.格式化文件系统

分区完了,不代表我们就能使用他了。咳咳,忽略为什么是他不是它的问题。

电脑也是这样子。买了主机不代表就能使用了,我们需要操作系统。而文件系统,则需要格式化。(就像是卷福需要华生)

格式化文件系统的方式虽说有mkfs与mkfs.的区分,实际调用的则是同一命令常用的是mkfs。

格式化前我们使用blkid查询文件系统信息,发现我们新增的分区比起其他文件系统少了点什么。

[root@centos7 ~]# blkid
/dev/sda1: UUID="e45a1265-9826-442b-9ce6-5f44440e8d0e" TYPE="xfs"
/dev/sda2: UUID="2fe39e58-8f02-49bf-b4b3-a59c56dd3907" TYPE="xfs"
/dev/sda3: UUID="a86604e8-9d34-4c3f-b3b3-fb3f3b72e356" TYPE="xfs"
/dev/sda5: UUID="f1eb3668-9539-4d4f-bae1-79f94029a101" TYPE="swap"
/dev/sda6: UUID="d629014c-23c3-43e0-b6b9-7c545b4f59f4" TYPE="ext4"
/dev/sdb1: UUID="68c661e2-7f3d-4ec9-b3f4-380f9490af38" TYPE="ext4" PARTLABEL="p" PARTUUID="5506b37b-5bfb-4ee2-9b18-386c9cc65e4f"
/dev/sr0: UUID="2016-12-05-13-52-39-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sdb2: PARTUUID="f68ec926-e324-4bf7-bbcc-927ec8aa43b2"
/dev/sdb3: PARTUUID="8c8d30d2-6209-4182-9e1d-0beabe8f0e60"#没有TYPE项

CentOS7之前的红帽主流文件系统是extX系列,所有也有对应的ext文件格式化专用工具mke2fs。总结如下:

格式化/dev/sdb3分区的文件系统为ext4:mkfs.ext4 /dev/sdb3=mkfs -t ext4 /dev/sdb3=mke2fs -t ext4 /dev/sdb3

格式化文件系统为ext3:mkfs -t ext3 /dev/sdb3=mkfs.ext3 /dev/sdb3=mke2fs -t ext3 /dev/sdb3=mke2fs -j /dev/sdb3

格式化文件系统为ext2:mkfs -t ext2 /dev/sdb3=mkfs.ext2 /dev/sdb3=mke2fs /dev/sdb3

格式化文件系统为xfs:mkfs -t xfs -f /dev/sdb3=mkfs.xfs /dev/sdb3(centos6里需安装对应软件包,centos5及之前系统不支持)

其余格式参见man mkfs。另外mke2fs一言难尽,索性就不说了。

在我们的题目里,我们接下来只要执行mkfs.ext4 /dev/sdb3就可以了。dei哞西卡西,我盟的mkfs还要更强大。比如mkfs.ext4 -L TEST /dev/sdb3,格式化的时候顺便指定个卷标啦。

众人:嗯?没了? 阿拉恭敬的弯腰行礼:没了。 众人:啊,是很强大……

3.修改文件系统信息

嘿,上面的那个记得完了再用blkid查询一下用没有成功啊……

众人:你丫赶紧的

在学习acl特殊权限位的设定是,我们会用到tune2fs -l /dev/sdX |grep acl来查询某文件系统是否开启了acl权限。(众人:那个跟这个有什么关系?? 阿拉傲娇脸:就是有关系,没有我扯他干嘛! 众人:哦那你继续。但我不认为没关系的你不扯。 阿拉:

tune2fs -l /dev/sdb3可以查询到很多文件系统相关的信息。但有时也会出现这样的情况。(阿拉去吃饭没关ssh,ssh自动断电了)

[root@centos7 ~]# tune2fs -l /dev/sdb3
tune2fs 1.42.9 (28-Dec-2013)
tune2fs: Bad magic number in super-block while trying to open /dev/sdb3
Couldn't find valid filesystem superblock.

这个要详细说就扯太远了。(众人:算了,你随意吧,你开心就好,你爱扯多远扯多远吧。)

好的,阿拉这里就感谢各位理解了。

众人:咳咳,该干啥干啥,别发奇怪的表情。

得勒。上面有提到super-block,即超级块。嗯,超级块嘛,嗯,详情见http://book.2cto.com/201312/38223.html,如果还不懂,再看看这个http://www.cnblogs.com/bangerlee/archive/2012/03/31/2426069.html,如果再看不懂,那就自己查资料去。

众人:说好的要脸呢?

阿拉:啊,你刚说啥?我听不到。

super-block,里面有文件系统的详细信息。因为断电、死机等非正常关机情况,会使超级块受到破坏。超级块坏掉后就不能挂载,不能挂载当然就不能访问,不能访问自然就用不了,磁盘或分区没法用,数据拷不出开。

运维,自然就是为解决这类问题而生的。

因为超级块在文件系统中是有备份的。总之我们是可以进行修复的。

虽然挂载是我们之后要说的,这里还是要提一下。修复应该在非挂载状态下进行。CentOS6与CentOS7里不卸载是不允许修复的,但在CentOS5里却没有这个提示。然而我们不卸载的状态下修复的话,整个文件系统就坏掉了。随便说一下,RHCE的考试里有这道题哦。

然后是修复。

fsck: File System Check

fsck.FS_TYPE

fsck -t FS_TYPE

-p: 自动修复错误

-r: 交互式修复错误

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

e2fsck:ext系列文件专用的检测修复工具

-y:自动回答为yes

-f:强制修复

哦,对了。没修复之前用blkid查看的话/dev/sdb3下是这个样子滴。

/dev/sdb3: PARTUUID="8c8d30d2-6209-4182-9e1d-0beabe8f0e60"

但你要是直接格式化的话,里面的数据可就听天由命了。空磁盘当然无所畏惧。如果你不确定里面有没有数据的话,当然是先修复了看一下靠谱。

这里我们的/dev/sdb3是ext4的文件系统。所以我们这样来。

[root@centos7 ~]# fsck /dev/sdb3
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
/dev/sdb3 was not cleanly unmounted, check forced.
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/sdb3: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb3: 11/131072 files (0.0% non-contiguous), 26156/524288 blocks
[root@centos7 ~]# blkid
/dev/sda1: UUID="e45a1265-9826-442b-9ce6-5f44440e8d0e" TYPE="xfs"
/dev/sda2: UUID="2fe39e58-8f02-49bf-b4b3-a59c56dd3907" TYPE="xfs"
/dev/sda3: UUID="a86604e8-9d34-4c3f-b3b3-fb3f3b72e356" TYPE="xfs"
/dev/sda5: UUID="f1eb3668-9539-4d4f-bae1-79f94029a101" TYPE="swap"
/dev/sda6: UUID="d629014c-23c3-43e0-b6b9-7c545b4f59f4" TYPE="ext4"
/dev/sdb1: UUID="68c661e2-7f3d-4ec9-b3f4-380f9490af38" TYPE="ext4" PARTLABEL="p" PARTUUID="5506b37b-5bfb-4ee2-9b18-386c9cc65e4f"
/dev/sr0: UUID="2016-12-05-13-52-39-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sdb2: UUID="9bd0fea2-0ef0-415d-9a54-d7c4d9deccf4" TYPE="ext4" PARTUUID="f68ec926-e324-4bf7-bbcc-927ec8aa43b2"
/dev/sdb3: UUID="cdf26127-fee3-4d5a-9066-f077fd36b6d8" TYPE="ext4" PARTUUID="8c8d30d2-6209-4182-9e1d-0beabe8f0e60"

这样就修复好了。这个尴尬的是,我们的/dev/sdb3就是新建的分区,新格式化的空磁盘。一点数据都没有修复起来也没价值可言。

得,找个其他磁盘试试吧。

因为断电,阿拉的这块磁盘也不行了。

[root@centos7 ~]# tune2fs -l /dev/sda3
tune2fs 1.42.9 (28-Dec-2013)
tune2fs: Bad magic number in super-block while trying to open /dev/sda3
Couldn't find valid filesystem superblock.

因为重新连接后就一直挂载中,所以这磁盘还能正常使用。毕竟虚拟机没断电,所以ssh联通后这磁盘还是正常挂起来了。但是阿拉任性啊,阿拉非要看到他的超级块信息。或者说如果虚拟机也断电了,有块磁盘就是挂载不上了呢?

这里当然要先卸载。另外注意,这块磁盘是xfs格式的。

[root@centos7 ~]# umount /dev/sda3

0.0刚去xfs_repair /dev/sda3了一下,然后tune2fs -l /dev/sda3结果还是一样一样的。

一个小时后反应过来,噢,tune2fs是ext文件系统专用啊。

查看xfs超级块信息左转xfs_admin -f  {device}。

被自己气乐了。

默默的把/dev/sda3挂上。

得。继续看题。

创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项

块大小即block。以及1%可用空间。

mke2fs在格式化文件系统时的功能有很多。但除了block的大小外,其他信息都可以后期修改。

结果还是要用到mke2fs啊,居然把mke2fs寥寥数语带过的阿拉真是。。给大家造成了麻烦真是抱歉。

那就列个表给各位大爷。

ext系列文件系统专用管理工具
mke2fs(仅格式化时指定,不指定则按默认值) tune2fs(格式化后可随时更改)

-t {ext2|ext3|ext4}:设置文件系统格式

-b {1024|2048|4096}:设置block大小

-l:查看指定文件系统超级块信息super block
-L 'LABEL':指定卷标 -L 'LABEL':修改卷标 
-m #: 默认5%,为管理人员预留空间占总空间的百分比 -m #:修预留给管理员的空间百分比
-j: 相当于 -t ext3 -j: 将ext2升级为ext3

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

可指定特性为下面示例中Filesystem features行所列出的选项

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

–O ^has_journal

-O ^FEATURE:关闭指定特性

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

–o ^acl -U UUID: 修改UUID号

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

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

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

除此之外还有:

dumpe2fs: 块分组管理

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

blkid:块设备属性信息查看

blkid [OPTION]... [DEVICE]

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

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

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

e2label DEVICE [LABEL]

findfs :查找分区

findfs [options] LABEL=

findfs [options] UUID=

我们的题目就可以这样做:

[root@centos7 ~]# mke2fs -b 2048 -m 1 -L TEST -t ext4 /dev/sdb3  #连同文件系统格式化同步执行
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=TEST
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 1048576 blocks
10485 blocks (1.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=269484032
64 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@centos7 ~]# tune2fs -l /dev/sdb3 #查看超级块信息
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   TEST    #LABEL
Last mounted on:          <not available>
Filesystem UUID:          bbc06076-3025-4589-857e-a8e64a5fc9f2
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              131072
Block count:              1048576
Reserved block count:     10485
Free blocks:              994651
Free inodes:              131061
First block:              0
Block size:               2048   #指定成功
Fragment size:            2048
Group descriptor size:    64
Reserved GDT blocks:      512
Blocks per group:         16384
Fragments per group:      16384
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Sat Aug 19 19:55:36 2017
Last mount time:          n/a
Last write time:          Sat Aug 19 19:55:37 2017
Mount count:              0
Maximum mount count:      -1    #为-m所制定的值
Last checked:             Sat Aug 19 19:55:36 2017
Check interval:           0 (<none>)
Lifetime writes:          65 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:      7876e37e-5dca-4797-9566-0cc4d7ee6ea9
Journal backup:           inode blocks

耶。大部分的工作都完成了耶。tune2fs的功能类似,你们辣么聪明,一定一看就知道了。(各位大爷:我呸,还用你说

4.挂载与自动挂载

好的好的。是阿拉多嘴。

恕阿拉还要balabala一阵。

接下来的mount我们都见过他。光盘镜像挂载的时候还经常用来着呢。mount /dev/sr0 /media,这样就把镜像挂载到/media下了。

有个问题不知各位大侠发现了没。每次挂载完再开机df一下,就成了这样。

[root@centos7 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       48803552 5018104  43785448  11% /
devtmpfs         1001404       0   1001404   0% /dev
tmpfs            1016076      84   1015992   1% /dev/shm
tmpfs            1016076    9184   1006892   1% /run
tmpfs            1016076       0   1016076   0% /sys/fs/cgroup
/dev/sda1         972452  156004    816448  17% /boot
tmpfs             203216      16    203200   1% /run/user/42
tmpfs             203216       0    203216   0% /run/user/0
/dev/sda3       48803552 1896576  46906976   4% /app

别的暂且不论,我的镜像怎么又不见了。我的这一行呢??

/dev/sr0         8086368 8086368         0 100% /media

ls查一下现有的磁盘,发现是这样。

[root@centos7 ~]# ls /dev/sd*
/dev/sda   /dev/sda3  /dev/sda6  /dev/sdb1  /dev/sdc   /dev/sdc3
/dev/sda1  /dev/sda4  /dev/sda7  /dev/sdb2  /dev/sdc1  /dev/sdc4
/dev/sda2  /dev/sda5  /dev/sdb   /dev/sdb3  /dev/sdc2  /dev/sdc5

lsblk查看磁盘分区,blkid查看文件系统。

[root@centos7 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk
├─sda1   8:1    0  953M  0 part /boot
├─sda2   8:2    0 46.6G  0 part /
├─sda3   8:3    0 46.6G  0 part /app
├─sda4   8:4    0  512B  0 part
├─sda5   8:5    0  3.7G  0 part [SWAP]
├─sda6   8:6    0    1G  0 part
└─sda7   8:7    0 10.3G  0 part
sdb      8:16   0  150G  0 disk
├─sdb1   8:17   0  953M  0 part
├─sdb2   8:18   0    1G  0 part
└─sdb3   8:19   0    2G  0 part
sdc      8:32   0  100G  0 disk
├─sdc1   8:33   0    1G  0 part
├─sdc2   8:34   0    5G  0 part
├─sdc3   8:35   0    1K  0 part
├─sdc4   8:36   0    4G  0 part
└─sdc5   8:37   0   90G  0 part
sr0     11:0    1  7.7G  0 rom  /media
[root@centos7 ~]# blkid
/dev/sda1: UUID="e45a1265-9826-442b-9ce6-5f44440e8d0e" TYPE="xfs"
/dev/sda2: UUID="2fe39e58-8f02-49bf-b4b3-a59c56dd3907" TYPE="xfs"
/dev/sda3: UUID="a86604e8-9d34-4c3f-b3b3-fb3f3b72e356" TYPE="xfs"
/dev/sda5: UUID="f1eb3668-9539-4d4f-bae1-79f94029a101" TYPE="swap"
/dev/sda6: UUID="d629014c-23c3-43e0-b6b9-7c545b4f59f4" TYPE="ext4"
/dev/sdb1: UUID="68c661e2-7f3d-4ec9-b3f4-380f9490af38" TYPE="ext4" PARTLABEL="p" PARTUUID="5506b37b-5bfb-4ee2-9b18-386c9cc65e4f"
/dev/sr0: UUID="2016-12-05-13-52-39-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sdb2: UUID="9bd0fea2-0ef0-415d-9a54-d7c4d9deccf4" TYPE="ext4" PARTUUID="f68ec926-e324-4bf7-bbcc-927ec8aa43b2"
/dev/sdb3: LABEL="TEST" UUID="bbc06076-3025-4589-857e-a8e64a5fc9f2" TYPE="ext4" PARTUUID="8c8d30d2-6209-4182-9e1d-0beabe8f0e60"

几个命令的结果砸下来,是不是一脸懵逼呢?

你们肯定要说明明一个mount的事,给整这么个复杂。

当然,你们要心里跟明镜似的,阿拉就不用絮叨这么多了。就是因为不清楚所以才学习的呀。

计算机就是,你不懂他的时候仰慕他的神秘,你懂他了惊叹他的巧妙,你和他在一起了才知道他的能力。

电生磁磁生电线圈正负极电磁共振交流电并联串联逻辑与非或,这一切进展太快,留下名字的人太多,数学物理逻辑撑起了计算机的世界。

呃,怎么就扯到计算机科学了。咳咳,阿拉并没有装13,阿拉只是情不自禁兴头所致。再不说正题今晚博客就写不完了。

monut的挂载不能说是临时挂载,因为每次关机系统都会把内存内的信息写入磁盘,然后把磁盘全部卸载以保存数据。装系统的时候分区的信息被写入到一个文件里,写在这个文件里的磁盘会在每次电脑开机的时候自动挂载。这个文件是/etc/fstab。

[root@centos7 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jul 11 20:07:17 2017
#
# 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=2fe39e58-8f02-49bf-b4b3-a59c56dd3907 /                       xfs     defaults        0 0
UUID=a86604e8-9d34-4c3f-b3b3-fb3f3b72e356 /app                    xfs     defaults        0 0
UUID=e45a1265-9826-442b-9ce6-5f44440e8d0e /boot                   xfs     defaults        0 0
UUID=f1eb3668-9539-4d4f-bae1-79f94029a101 swap                    swap    defaults        0 0

咋一看和blkid列出的内容有些相似。然而/etc/fstab里却只有装系统时的分区信息。

我们要想一个磁盘也能开机挂载,只要把其信息写入此文件即可。残念,这个文件,只能我们手动写入。并没有useradd那种能写入到/etc/passwd里的命令呢。

通过blkid命令我们可以得到/dev/sdb3的UUID。

啊,你不会要问我什么是UUID吧。

哎呀,真是拿你们没办法啊。

UUID,是类似于×××号的东西啦。×××号由出生地出生日期等决定,光×××号就能知道整个人的几乎全部信息。UUID由时间日期时钟序列等决定,是磁盘的唯一编号。当磁盘更改label,也就是改名字的时候,UUID还能够识别磁盘。嘛,虽然UUID也可以重设。这大概类似于某些人有两个×××号一样。别不服气了,就是有这种啊。在家入户口,后来又到外地了再入户口之类的。

UUID就没这么好运了,你可以随意指定。UUID简直就像私人女仆一样随便主人调教呢。。。

建一个/test目录,追加/dev/sdb3的相关信息到/etc/fstab,mount -a挂载/etc/fstab里没有挂载的磁盘。df查看,/dev/sdb3果然挂载上了。不服的重启测试去。

[root@centos7 ~]# mkdir /test
#centos里文件系统默认开启acl,centos6里新挂载分区需手动指定acl权限
[root@centos7 ~]# echo 'UUID=bbc06076-3025-4589-857e-a8e64a5fc9f2 /test                   ext4    defaults,acl        0 0' >> /etc/fstab
[root@centos7 ~]# mount -a
[root@centos7 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       48803552 5018132  43785420  11% /
devtmpfs         1001404       0   1001404   0% /dev
tmpfs            1016076      84   1015992   1% /dev/shm
tmpfs            1016076    9184   1006892   1% /run
tmpfs            1016076       0   1016076   0% /sys/fs/cgroup
/dev/sda1         972452  156004    816448  17% /boot
tmpfs             203216      16    203200   1% /run/user/42
tmpfs             203216       0    203216   0% /run/user/0
/dev/sda3       48803552 1896576  46906976   4% /app
/dev/sr0         8086368 8086368         0 100% /media
/dev/sdb3        1998538    9236   1960140   1% /test

mount命令说起来还挺复杂的。偷偷把我们辣个超帅萌的老师的总结贴在下面。那个-o,和tune2fs、mke2fs用法差不多了。

mount 设备名 挂载点

-t 指定文件系统类型

-r 只读挂载

--remount,ro|rw  也会新/etc/fstab中的选项,如果与指定的冲突,则remount后指定的优先。

-n 隐藏挂载信息不显示,但在/proc/mounts可以查到

-a 读取/etc/fstab,挂载其中没有挂载的设备

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

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

-B --bind 目录挂目录

-o 选项

sync,async 同步,异步(defaults)

atime(defaults),noatime  是否在读访问时更新atime

diratime(defaults),nodiratime

auto(defaults)/noauto 写在/etc/fstab当中的分区,是否在mount -a时被挂载

exec(defatuls)/noexec 在该分区所挂载的目录中的脚本是否可以执行。

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

suid(defaults)/nosuid:不否支持suid和sgid权限

remount:重新挂载

ro:只读

rw:读写(defaults)

user/nouser(defaults):是否允许普通用户挂载此设备,默认管理员才能挂载

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

defaults 默认,见以上中的(defaults)

就是资源被占用,无法卸载的情况了。当然可以广播通知占用磁盘的家伙赶紧下来。但那有时可不轻松。好的,能帮到你的相关卸载命令如下:

查看挂载情况:

findmnt MOUNT_POINT|device

查看正在访问指定文件系统的进程:

lsof MOUNT_POINT

fuser -v MOUNT_POINT

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

fuser -km MOUNT_POINT

卸载:

umount DEVICE

umount MOUNT_POINT

那么这个问题就完成了。怎么样,有信心把这个写成脚本吗?

转载于:https://blog.51cto.com/amelie/1957699

教你十分钟掌握linux文件系统管理相关推荐

  1. linux 挂载硬盘_Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令...

    大家好,我是可乐,一个专注原创,乐于分享的程序猿.本系列教程持续更新,可以微信搜索「 IT可乐 」第一时间阅读.回复<电子书>有我为大家特别筛选的海量免费书籍资料 通过前面两篇博客,我们介 ...

  2. 教你十分钟在Linux系统上快速装机并安装Ansible

    PS:本教程建立在VMware软件上的使用上,Linux版本为centos7或者centos8都可以. 一.看发行版本 cat  /etc/redhat-release 二.修改主机名 hostnam ...

  3. 兄弟连Linux在线课堂:第9讲 Linux文件系统管理

    兄弟连Linux在线课堂:第9讲 Linux文件系统管理 大家好,我是李明,Linux爱好者,不知不觉中这套Linux学习的在线课及视频教程已经更新至第9讲,非常感概自己居然在繁忙中能每周一讲坚持下来 ...

  4. 实训项目2Linux基本命令,实训项目2 Linux文件系统管理

    实训项目2 Linux文件系统管理 发布时间:2011-06-24 15:51:10来源:红联作者:397778823 一. 实训目的: 1. 掌握磁盘分区的方法: 2. 掌握文件系统的建立.挂装.解 ...

  5. Linux文件系统管理命令(第二版)

    Linux文件系统管理命令 常用命令 1.df命令 查看分区使用情况 常用选项 -h 比较人性化 -m 以兆字节显示分区使用情况 显示信息: Mounted on:挂载点 Filesystem:对应的 ...

  6. linux文件存储管理,深入探讨Linux文件系统管理小结

    [IT168 技术]经过长时间学习Linux文件系统管理,于是和大家分享一下,由于Linux 的 成本低与开放源代码文件系统 ,除了已在开发者群体中广泛流行,它亦是现时网站供应商最常使用的平台.下面就 ...

  7. RHEL目录和文件操作:Linux文件系统管理

    实验名称:RHEL目录和文件操作:Linux文件系统管理 某企业的 Linux 服务器中新增了一块硬盘/dev/sdb,请使用 fdisk 命令新建/dev/sdb1 主分区和/dev/sdb2 扩展 ...

  8. 【LINUX文件系统管理(1) 实验报告】

    红字为所用语句,截图里也有 LINUX文件系统管理(1) 实验报告 可用 cd / 进入CentOS 根目录,再用 ls ls -a 或 ls -l 查看 也可直接用 ls -l / 进行查看 (1) ...

  9. linux文件系统管理知识导图,Linux磁盘和文件系统管理基础知识自测

    自测简介:本试题为EMC自测专栏第22期,主要考查Linux磁盘和文件系统管理基础知识. 1. Linux系统中,所有设备文件存放在哪一个目录下? A. /etc B. /bin C. /dev D. ...

最新文章

  1. 如何使用TensorRT对训练好的PyTorch模型进行加速?
  2. Docker Machine 简介
  3. 树莓派 系统的 启动与安装
  4. 再观手游市场新风口-二次元游戏
  5. OpenAI“单手解魔方”被公开质疑,Gary Marcus称七大问题涉嫌误导
  6. C语言fwrite函数了解
  7. 有用的网页链接的整合(不定时更新)
  8. 程序员vim的最终解决方案
  9. 喜提 300w 硬核资产!
  10. 10%的IOS设备已经更新到版本5.1.1
  11. 快手无水印下载(python小爬虫)
  12. 华为设备无线环境中的Portal认证
  13. 最大矩形面积问题——单调栈法
  14. 2021-07-16 转载 - UmiJS应用框架
  15. 空间注意力 通道注意力_注意力发生了什么变化?
  16. 75-CentOS-Docker构建nginx镜像
  17. 机器视觉、模式识别库
  18. 查互联网ip(公网ip)
  19. java中fractions,[CF743C]Vladik and fractions
  20. 跟我学Kafka:Kafka消费组运维详解

热门文章

  1. 什么事图片懒加载?如何实现图片懒加载?
  2. trello 开源_Trello的5种开源替代品
  3. FluentCRM 2.6.0:更多功能、集成改进等等!
  4. 我方了!游戏建模竟然要学这么多东西!
  5. [机器学习]如何用机器学习来判定红楼梦后40回是否曹雪芹所写
  6. LAN口和WAN口的区别是什么?
  7. 当前开发者未绑定此appid,请到小程序管理
  8. 写2300字关于灌注桩施工质量管控的文章
  9. 关于Cisco Packet Tracer远程管理交换机、路由器
  10. 微信小程序:Component “页面路径“ does not have a method “ 方法名“ to handle event “tap“.