云运维-初级1段-Linux磁盘管理

Linux磁盘管理

 

1.查看磁盘或者目录的容量

 

1.1 命令 : df

“df” 查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认是按k为单位显示的,如图

在这里插入图片描述

 

df” 常用选项有 “-i” “-h” “-k” “-m”等, 使用“-i” 查看inodes使用状况,如图

在这里插入图片描述
 

“-h” 使用合适的单位显示,例如 ‘G’,如图

在这里插入图片描述

 

“-k”, “-m” 分别以K, M 为单位显示,如图

在这里插入图片描述
 

1.2 命令 : du

“du” 用来查看某个目录或文件所占空间大小.
语法 : du [-abckmsh] [文件或者目录名] 常用的参数有:
“-a” 全部文件与目录大小都列出来。如果不加任何选项和参数只列出目录(包含子目录)大小,如图

在这里插入图片描述
 

如果du不指定单位的话,默认显示单位为K.
“-b” 列出的值以bytes为单位输出。
“-k” 以KB为单位输出,和默认不加任何选项的输出值是一样的。
“-m” 以MB为单位输出。
“-h” 系统自动调节单位,例如文件太小可能就几K,那么就以K为单位显示,如果大到几G,则就以G为单位显示。具体操作如图:

在这里插入图片描述
 

“-c” 最后加总,具体效果如图

在这里插入图片描述
 

“-s” 只列出总和,具体效果如图

在这里插入图片描述

 

2.磁盘分区格式化

 

2.1命令 : fdisk

fdisk 是Linux下硬盘的分区工具,是一个非常实用的命令,但是fdisk只能划分小于2T的分区。
语法 : fdisk [-l ] [设备名称] 选项只有一个。

在这里插入图片描述
 

通过fdisk -l 后面指定硬盘名称可以得知硬盘的具体信息,如图

在这里插入图片描述

 

“fdisk” 如果不加 “-l” 则进入另一个模式,在该模式下,可以对磁盘进行分区操作,如图

在这里插入图片描述
 

下面笔者会把刚才增加的磁盘/dev/sdb进行分区操作。先使用 ‘p’ 命令看一下/dev/sdb的分区状况,具体信息已经在图中可以得知,可以看到目前/dev/sdb没有任何分区,下面笔者给它建立第一个分区,执行效果如图

在这里插入图片描述
 

使用 ‘n’ 命令新建分区,它会提示是要 ‘e’ (扩展分区) 还是 ‘p’ (主分区) [1] 笔者的选择是 ‘p’, 于是输入 ‘p’ 然后回车,输入“1”回车,回车,+1G,回车,执行效果如图

在这里插入图片描述
 

继续上面的操作,一直创建主分区到4, 然后再一次创建分区的时候则会提示你输入e,这是因为,在Linux中最多只能创建4个主分区,那如果你想多创建几个分区如何做?很容易,在创建完第三个分区后,创建第四个分区时选择扩展分区。扩展分区,在最后一列显示为 “Extended”, 接下来继续创建分区,执行效果如图

在这里插入图片描述
 

下面再进行创建分区时,是基于扩展分区的容量来进行分区,执行效果如图

在这里插入图片描述
 

在刚才的分区界面直接 Ctrl + C 退出来,这样刚刚的分区全部都取消了,我们重新来做分区,如果把第一个分区分为扩展分区,并且把全部空间都分给扩展分区的话,再继续分区的话,会提示的分区类型为主分区还是逻辑分区(logical), 用 ‘l’ 表示逻辑分区,逻辑分区的id是从5开始的,因为前四个id为主分区或者扩展分区。既然笔者把所有磁盘空间都分为了扩展分区,如果你在这里选择 ‘p’ 则会报错,这是因为没有足够空间分给主分区了,那我们就分逻辑分区,下面我们直接通过命令来创建分区sdb6,sdb7,分别大小为2G容量,执行效果如图:

在这里插入图片描述
 
在这里插入图片描述
 

分区完后,需要输入 ‘w’ 命令来保存我们的配置,执行效果如图:

在这里插入图片描述
 

再使用 fdisk -l /dev/sdb 查看分区情况,执行效果如图:

在这里插入图片描述

 

3. 格式化磁盘分区

 

3.1 命令 : mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4

当用man查询这四个命令的帮助文档时,你会发现我们看到了同一个帮助文档,这说明四个命令是一样的。mke2fs常用的选项有:
‘-b’ 分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块。
‘-i’ 设定inode的大小
‘-N’ 设定inode数量,有时使用默认的inode数不够用,所以要自定设定inode数量。
‘-c’ 在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢
‘-L’ 预设该分区的标签label
‘-j’ 建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了
‘-t’ 用来指定什么类型的文件系统,可以是ext2, ext3 也可以是 ext4.

在这里插入图片描述
 

ext文件系统默认块大小为4096也就是4k. 在格式化的时候,可以指定块大小为1024, 2048, 4096(它们是成倍增加的),虽然格式化的时候可以指定块大小超过4096,但是一旦超过4096则不能正常挂载,如何指定块大小?指定块大小为8192会提示,块值设置太大了,我们直接输入 ‘y’ 强制格式化,你还可以尝试指定更大的数字。
关于格式化的这一部分,笔者建议你除非有需求,否则不需要指定块大小,也就是说,你只需要记住这两个选项: ‘-t’ 和 ‘-L’ 即可。

 

3.2 命令 : e2label

 

用来查看或修改分区的标签,执行效果如图:

在这里插入图片描述

 

4.挂载/卸载磁盘

 

在挂载该分区前,挂载点(目录)下必须是个空目录。其实目录不为空并不影响所挂载分区的使用,但是一旦挂载上了,那么该目录下以前的东西就不能看到了。只有卸载掉该分区后才能看到。
 

4.1命令 : mount

下面我们先建立一个空目录,然后在目录里建一个空白文档,执行效果如图:

在这里插入图片描述
 

然后把刚才格式化的 /dev/sdb5 挂载到 /newdir 上,执行效果如图:

在这里插入图片描述

 

把 /dev/sdb5 挂载到 /newdir 后,原来在 /newdir 下的 newfile.txt 被覆盖了,通过 df -h 可以看到刚刚挂载的分区,我们也可以使用LABEL的方式挂载分区,执行效果如图:

在这里插入图片描述
 

mount 命令常用的选项有:’-a’, ‘-t’, ‘-o’. 在讲 ‘-a’ 选项前,我们有必要先了解一下这个文件 /etc/fstab,执行效果如图:

在这里插入图片描述
 

这个文件是系统启动时,需要挂载的各个分区。
第一列就是分区的标识,可以写分区的LABEL,也可以写分区的UUID,当然也可以写分区名(/dev/sda1);
第二列是挂载点;
第三列是分区的格式;
第四列则是mount的一些挂载参数,一般情况下,直接写defaults即可;
第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;
第六列是开机时是否自检磁盘。1,2都表示检测,0表示不检测,在Redhat/CentOS中,这个1,2还有个说法,
/ 分区必须设为1,而且整个fstab中只允许出现一个1,这里有一个优先级的说法。1比2优先级高,所以先检测1,
然后再检测2,如果有多个分区需要开机检测那么都设置成2吧,1检测完了后会同时去检测2。

下面该说说第四列中常用到的参数了。“async/sync” : async表示和磁盘和内存不同步,系统每隔一段时间把
内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;“auto/noauto” : 开机自动挂载/不自动挂载;
“default” : 按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser,
 async“ro” : 按只读权限挂载 ;“rw” : 按可读可写权限挂载 ;“exec/noexec” : 允许/不允许可执行文件执行,
 但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新装
 系统了;“user/nouser” : 允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser ;
 “suid/nosuid” : 允许/不允许分区有suid属性,一般设置nosuid ;“usrquota” : 启动使用者磁盘配额模式,
 “grquota” : 启动群组磁盘配额模式;

 

学完这个/etc/fstab后,我们就可以自己修改这个文件,增加一行来挂载新增分区。如图:

在这里插入图片描述
 

然后卸载掉刚才我们已经挂载的/dev/sdb5,使用 df -h 查看已经成功卸载 /dev/sdb5 下面执行命令 mount -a来进行自动挂载,执行效果如图:

在这里插入图片描述
 

4.2 命令 : blkid

通过上边的学习,你挂载磁盘是通过/dev/hdb1 这样的分区名字来挂载的,如果先前加入到了/etc/fstab 中,结果系统启动后则会挂载错分区。那么怎么样避免这样的情况发生?这就用到了UUID,可以通过 blkid 命令获取各分区的UUID,执行效果如图:

在这里插入图片描述
 

获得UUID后,如何使用它呢,执行效果如图:

在这里插入图片描述
 

也可以把UUID这行写到 /etc/fstab 中

4.3 命令 : umount

可以跟挂载点,也可以跟分区名(/dev/hdb1), 但是不可以跟LABEL和UUID.
umount 命令有一个非常有用的选项那就是 ‘-l’, 有时候你会遇到不能卸载的情况,这是因为当前目录为要卸载的分区上,解决办法有两种,一是到其他目录,二是使用 ‘-l’ 选项,执行效果如图:

在这里插入图片描述
 

4.4 建立一个swap文件增加虚拟内存

从装系统时就接触过这个swap了,它类似与windows的虚拟内存,分区的时候一般大小为内存的2倍,如果你的内存超过8G,那么你分16G似乎是没有必要了。分16G足够日常交换了。然而,还会有虚拟内存不够用的情况发生。如果真遇到了,莫非还要重新给磁盘分区?当然不能,那我们就增加一个虚拟的磁盘出来。基本的思路就是:建立swapfile -> 格式化为swap格式 -> 启用该虚拟磁盘,执行效果如图:

 
在这里插入图片描述

 

“dd” 这个命令笔者经常用到,所以请你也要掌握它的使用方法,其实也不难,用 “if” 指定源,基本上除了 “/dev/zero” 外基本上不会写别的,而/dev/zero 是UNIX系统特有的一个文件,它可以提供源源不断的 “0”, 关于它的其他信息请你在网上查一下资料。 “of” 指定目标文件, “bs” 定义块的大小, “count” 定义块的数量,这两个参数的多少决定了目标文件的大小,目标文件大小 = bs x count. 笔者用dd建了一个大小为100M的文件,然后格式化成swap格式,执行效果如图:

在这里插入图片描述
 

格式化完后,就可以挂载上使用了,执行效果如图:

ZG4ubmV0L3dlaXhpbl80NTQ0Nzc3MA==,size_16,color_FFFFFF,t_70#pic_center)

前后对比swap分区多了100M空间
 

4.5 LVM讲解

 

4.5.1什么是LVM?

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

 

4.5.2为什么要使用LVM?

在日常工作或者学习中,随着电脑的不断被使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,数据无价,这时候我们就可以使用LVM,LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,和硬件相关的存储设置被其隐藏,你能不用停止应用或卸载文件系统来调整卷大小或数据迁移.这样能减少操作成本,LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

 

4.5.3 LVM工作机制?

LVM就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。
 

4.5.4逻辑卷管理概念?

(1) 物理卷(PV, Physical Volume)物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝.默认为1,保存在设备的开始处.为2时,在设备结束处保存第二份备份.
(2) 卷组(VG, Volume Group)LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
(3) 逻辑卷(LV, Logical Volume)LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。
 

具体操作:

1.检查系统中是否安装了LVM管理工具,执行效果如图
在这里插入图片描述
2. 如果未安装,则使用yum 方式安装:yum install -y lvm*
3. 手动添加1个硬盘:sdb 10G

3.1 先开始创建物理卷PV: 
 基本PV命令:
 pvcreate 将物理分区新建为pv  
 pvs/pvscan 查看系统里有pv的磁盘  
 pvdisplay 显示系统上面的pv状态  
 pvremove 删除pv

 

准备使用: 1个磁盘: /dev/sdb 来完成LVM, 使用pvs查看新建的PV,执行效果如图:

在这里插入图片描述

3.2 创建卷组vg
vgcreate [-s xM] vgName /dev/sd ……  
新建vg,-s后面接pe的大小(可选),单位是M,G,可以放多块pv
vgextend 扩展vg,就是增加pvvgs/vgscan 查看系统里有vg的磁盘
vgdisplay 显示系统上面的vg状态
vgremove 删除vg
vgreduce 在vg里删除pv

 

创建vgEric 并查看,执行效果如图:

在这里插入图片描述

 

3.3  创建逻辑卷lv
有关lv的命令:
lvcreate -l pe num /-L size -n lvname vgName  新建lv,-l指定pe的个数,-L指定容量,M,G
lvextend 增加容量
lvs/lvscan 查看系统里有lv的磁盘
lvdisplay 显示系统上面的lv状态
lvremove 删除lv
lvreduce 在lv里减少容量

 

创建lvEric,并查看,执行效果如图:

在这里插入图片描述

 

格式化新建的LV,执行效果如图:

在这里插入图片描述
 

挂载使用,执行效果如图:

在这里插入图片描述
 

4.6. LVM的在线扩展

在这里插入图片描述
 
查看实际的磁盘容量,发现并没改变,需要对文件系统进行扩容,执行效果如图:

在这里插入图片描述
 

4.7 删除LVM

如果要彻底的来移除LVM的话,需要把创建的步骤反过来操作。
1:卸载 文件系统
2:删除lv
3:删除vg
4:删除pv
执行效果如图:

 

在这里插入图片描述


更多linux磁盘管理技巧和问题可参考博客:Linux磁盘管理解析 及 课后习题解答

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值