背景:安装软件时显示磁盘空间不足,导致无法安装成功。
linux上的磁盘空间必须挂载再目录上,要不然没用。
充分利用磁盘空间原有容量。
linux一般只能扩展磁盘容量而不能减小。
解决方法:
查看磁盘分区情况
fdisk -l
第一种情况:(磁盘空间真的已经不足,需要额外添加)
注:总磁盘50G,磁盘分了三个区:sda1、sda2、sda3;
三个分区加起来刚好是50G,所以需要额外再添加磁盘空间。
注:此步骤需要先关机(有快照的需要删除快照);重启后发现分区总量小于总的磁盘空间,这刚好就是下面要说的第二种情况;
出现这种现象因为linux上的磁盘空间必须挂载再目录上,要不然没用。
第二种情况:磁盘空间并没有真正被用完
表现形式就是分区总量小于磁盘空间总量。
所以现在的问题就是如何利用哪些闲置的容量空间
解决方法——分区
fdisk /dev/sda # /dev/sda要结合实际情况做相应的修改;本例中就使用/dev/sda,虽然分区都是数字结尾。有些情况下未利用的磁盘空间它有独立的分区名称。
# 输入一次n,全部回车
# 再输入一次w
若此处报错
解决方法
partprobe
kpartx -l /dev/sda3
若后续步骤与后文不同,则说明该问题没用解决;也许只能恢复快照了。
再重新查看分区情况
设置新分区的格式
df -T -h # 查看已有分区的格式
mkfs.xfs /dev/sda3
格式化后的所有文件系统类型
blkid
阶段性成功!!!
第一种挂载方式——mount
需要将硬盘挂载在挂载点上(一个文件夹),但是mount并不会创建文件夹,所以在使用mount命令之前首先创建挂载点
cd /mnt
mkdir /storage
mount /dev/sda3 /mnt/storage/
验证是否挂载成功
mount
最后,一定,一定要记得设置自动挂载
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
首先通过blkid命令将分区的uuid查询出来并复制uuid(往/etc/fstab中追加挂载信息时建议使用uuid)
然后修改/etc/fstab文件
vim /etc/fstab
重启系统reboot,再查看磁盘信息
mount
第二种挂载方式——lvm
进入lvm
初始化分区
pvcreate /dev/sda3
查看虚拟卷组名称
vgdisplay -v
将初始化过的分区加入到虚拟卷组centos中
vgextend centos /dev/sda3
用vgdisdplay -v 查看最后一行Total PE /Free PE的大小
vgdisplay -v
扩容根路径/dev/mapper/centos-root的容量
lvextend -l+2559 /dev/mapper/centos-root
若根路径名称不知道,则可以使用exit命令先退出lvm;再使用df -l进行查看,最后再通过lvm命令进行
exit
df -l
lvm
quit退出lvm
使根目录扩容生效
xfs_growfs /dev/mapper/centos-root
注:
resize2fs 命令 针对的是ext2、ext3、ext4文件系统
xfs_growfs 命令 针对的是xfs文件系统
查看最终结果
df -h