背景:安装软件时显示磁盘空间不足,导致无法安装成功。

      linux上的磁盘空间必须挂载再目录上,要不然没用。

   充分利用磁盘空间原有容量。

     linux一般只能扩展磁盘容量而不能减小。

 

解决方法:

      查看磁盘分区情况

fdisk -l

  第一种情况:(磁盘空间真的已经不足,需要额外添加)

磁盘挂载后在不到docker了 磁盘空间挂载_文件系统

  

  注:总磁盘50G,磁盘分了三个区:sda1、sda2、sda3;

    三个分区加起来刚好是50G,所以需要额外再添加磁盘空间。

 

磁盘挂载后在不到docker了 磁盘空间挂载_linux_02

   注:此步骤需要先关机(有快照的需要删除快照);重启后发现分区总量小于总的磁盘空间,这刚好就是下面要说的第二种情况;

    出现这种现象因为linux上的磁盘空间必须挂载再目录上,要不然没用。

 

  第二种情况:磁盘空间并没有真正被用完

    表现形式就是分区总量小于磁盘空间总量。

  

磁盘挂载后在不到docker了 磁盘空间挂载_磁盘挂载后在不到docker了_03

 

  所以现在的问题就是如何利用哪些闲置的容量空间

解决方法——分区

fdisk /dev/sda  # /dev/sda要结合实际情况做相应的修改;本例中就使用/dev/sda,虽然分区都是数字结尾。有些情况下未利用的磁盘空间它有独立的分区名称。
# 输入一次n,全部回车
# 再输入一次w

磁盘挂载后在不到docker了 磁盘空间挂载_磁盘挂载后在不到docker了_04

 

磁盘挂载后在不到docker了 磁盘空间挂载_linux_05

   

  若此处报错

磁盘挂载后在不到docker了 磁盘空间挂载_centos_06

 

   解决方法

partprobe
kpartx -l /dev/sda3

  若后续步骤与后文不同,则说明该问题没用解决;也许只能恢复快照了。

 

 

  再重新查看分区情况

磁盘挂载后在不到docker了 磁盘空间挂载_centos_07

 

 

   

  设置新分区的格式

df  -T -h    # 查看已有分区的格式

 

磁盘挂载后在不到docker了 磁盘空间挂载_磁盘挂载后在不到docker了_08

 

mkfs.xfs /dev/sda3

  

  格式化后的所有文件系统类型

blkid

磁盘挂载后在不到docker了 磁盘空间挂载_centos_09

 

  阶段性成功!!!

 

第一种挂载方式——mount

需要将硬盘挂载在挂载点上(一个文件夹),但是mount并不会创建文件夹,所以在使用mount命令之前首先创建挂载点

cd /mnt
mkdir /storage
mount /dev/sda3 /mnt/storage/

 

   验证是否挂载成功

mount

磁盘挂载后在不到docker了 磁盘空间挂载_centos_10

 

 

 

  最后,一定,一定要记得设置自动挂载

    磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。

  

  首先通过blkid命令将分区的uuid查询出来并复制uuid(往/etc/fstab中追加挂载信息时建议使用uuid)

磁盘挂载后在不到docker了 磁盘空间挂载_centos_11

  然后修改/etc/fstab文件

vim /etc/fstab

 

磁盘挂载后在不到docker了 磁盘空间挂载_centos_12

  重启系统reboot,再查看磁盘信息

mount

磁盘挂载后在不到docker了 磁盘空间挂载_文件系统_13

 

 

 

 第二种挂载方式——lvm

  进入lvm

磁盘挂载后在不到docker了 磁盘空间挂载_linux_14

 

   

  初始化分区

pvcreate /dev/sda3

磁盘挂载后在不到docker了 磁盘空间挂载_linux_15

 

   

  查看虚拟卷组名称

vgdisplay -v

磁盘挂载后在不到docker了 磁盘空间挂载_文件系统_16

  

  将初始化过的分区加入到虚拟卷组centos中

vgextend centos /dev/sda3

磁盘挂载后在不到docker了 磁盘空间挂载_linux_17

 

   

  用vgdisdplay -v 查看最后一行Total PE /Free PE的大小

vgdisplay -v

磁盘挂载后在不到docker了 磁盘空间挂载_磁盘挂载后在不到docker了_18

 

   

  扩容根路径/dev/mapper/centos-root的容量

lvextend -l+2559 /dev/mapper/centos-root

  

  若根路径名称不知道,则可以使用exit命令先退出lvm;再使用df -l进行查看,最后再通过lvm命令进行

exit
df -l
lvm

   

磁盘挂载后在不到docker了 磁盘空间挂载_centos_19

 

 

   quit退出lvm

磁盘挂载后在不到docker了 磁盘空间挂载_linux_20

 

 

  使根目录扩容生效

xfs_growfs /dev/mapper/centos-root

注:

  resize2fs 命令 针对的是ext2、ext3、ext4文件系统

  xfs_growfs 命令 针对的是xfs文件系统

磁盘挂载后在不到docker了 磁盘空间挂载_linux_21

 

   

  查看最终结果

df -h

磁盘挂载后在不到docker了 磁盘空间挂载_文件系统_22