资讯详情

【解决】linux磁盘扩容大全:新增磁盘、原磁盘扩容、home分区root分区扩容

一、背景

linux在使用过程中,磁盘空间往往不足,需要扩大磁盘容量。根据自己的经验总结整理各种场景,帮助需要者备查

本文执行的命令均在centos7 其果在环境中运行,其他环境和相似性基本相同。

分区描述:

sda单个磁盘总尺寸为50G,是两个,sda下面有三个逻辑分区centos-root 、centos-home、centos-swap (df命令时可以看到的挂载点);

相应的挂载点是

相应的挂载点是

通过查看

[root@vm-210 templates]# lsblk  NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sda               8:0    0   50G  0 disk  ├─sda1            8:1    0    1G  0 part /boot └─sda2            8:2    0   49G  0 part    ├─centos-root 253:0    0   40G  0 lvm  /   ├─centos-home 253:1    0    7G  0 lvm  /home   └─centos-swap 253:2    0    2G  0 lvm  [SWAP] 
[root@vm-210 templates]# pvdisplay    --- Physical volume ---   PV Name               /dev/sda2   #卷组名称     VG Name               centos   PV Size               <49.00 GiB / not usable 3.00 MiB   Allocatable           yes    PE Size               4.00 MiB   Total PE              12543   Free PE               1   Allocated PE          12542   PV UUID               1Fpioh-HkxD-f4Pd-78An-on4A-vGS1-B9UXr4 

二、场景

以下问题参考文章:http://t.csdn.cn/cbViW

扩容磁盘不显示扩容磁盘或磁盘大小: 情况1:修改原磁盘尺寸:修改原磁盘尺寸 情况二:新磁盘

场景一:将centos-home分区移动到根分区centos-root

因为分区,centos-home分区空间很大,centos-root分区很小,需要删除centos-home分区,扩容到centos-root分区

括号中使用的命令):

  1. 先备份/home下文件
  2. 卸载(umount) /home (注:卸载时请使用所有/home的进程关闭 参考http://t.csdn.cn/cbViW)
  3. 删除逻辑卷(lvremove) home 分区
  4. 扩展:扩展空间(lvextend)到 centos-root分区下
  5. 使扩展生效(xfs_growfs
  6. 注释掉fstab启动挂载项
  7. 恢复备份数据到/home 下

详细代码如下:

#!/bin/bash #【功能】 将centos-home将分区的空间移动到根部centos-root分区下  #1.先备份 /home下文件: 将/home备份下面的所有内容/backup下,自动创建以下命令/backup目录 mkdir /backup && mv /home/*  /backup  # 2.卸载 centos-home  umount /home     ##  如果提示失败,请使用以下命令终止/home 分区下的过程 再进行卸载    ##  fuser 安装方法  yum install -y psmisc    ##  fuser -m -v -i -k /home    ##  判断哪个过程占用了目录,请kill掉那个过程也可以  # 3.从逻辑卷中删除(lvremove) centos-home 分区 echo y|lvremove /dev/mapper/centos-home   # 4.扩展:扩展空间(lvextend)到 centos-root分区下 lvextend -l 100%FREE /dev/mapper/centos-root   # 5.使扩展生效(xfs_growfs) xfs_growfs /dev/mapper/centos-root   # 6.注释掉fstab启动挂载项 sed -i 's;/dev/mapper/centos-home;#/dev/mapper/centos-home;g' /etc/fstab   # 7.恢复 原来home下的数据 并删除/backup mv /backup/* /home  && rm -rf /backup  # 8.查看 df -H

想法是一样的。如果是其他分区,请修改分区目录

场景二:将新磁盘扩展到根目录或home下

磁盘空间不足,增加了一个新的硬盘场景。这里的一个新磁盘名称是

括号中是用到的命令):

  1. 检查磁盘状况(lsblk、fdisk -l、pvdisplay)
  2. 创建物理卷(pvcreate
  3. 将磁盘扩展到卷组(vgextend
  4. 扩大逻辑分区(lvextend
  5. 使扩展生效(xfs_growfs
  6. 查看(df -H
# 1.检查磁盘状况(lsblk、fdisk -l、pvdisplay) lsblk  # 2.创建物理卷(pvcreate) pvcreate /dev/sdb  # 3.将磁盘扩展到卷组(vgextend) vgextend centos /dev/sdb  # 4.扩展逻辑分区(lvextend) #   根据自己的情况选择扩容到centos-root #                      还是centos-home逻辑分区,请修改注释 # 将所有磁盘空间扩展到指定分区的100%,也可根据需要调整比例 #      也支持指定大小,如10G等等-l需要修改为-L) lvextend -l 100%FREE /dev/mapper/centos-root #lvextend -l 100%FREE /dev/mapper/centos-home  # 5.使扩展生效(xfsgrowfs)根据扩容的分区进行选择使用
# xfs_growfs /dev/mapper/centos-home
xfs_growfs /dev/mapper/centos-root

# 6.查看(df -H)
df -H

    场景三:在原始磁盘上增加空间(常在虚拟化环境中)

        虚拟化或者超融合环境中、或者VMware虚拟机中;磁盘空间不足,增加了已有磁盘的大小的场景,把增加的空间扩容到根目录或者centos-home下。

括号中是用到的命令):

:fdisk进行分区,操作步骤与场景二基本一样,多了一步分区

  1. 查看磁盘情况(lsblk、fdisk -l、pvdisplay)
  2. 创建分区(fdisk 磁盘名称)
  3. 创建物理卷(pvcreate
  4. 将磁盘扩展到卷组(vgextend
  5. 扩展逻辑分区(lvextend
  6. 使扩展生效(xfs_growfs
  7. 查看(df -H

:用parted命令调整大小

  1. 查看磁盘情况(parted /dev/sda  print free)
  2. 分配剩余的可用空间(parted /dev/sda resizepart 2 100%
  3. 刷新物理卷(pvresize /dev/sda2
  4. 扩展逻辑分区(lvextend
  5. 使扩展生效(xfs_growfs
  6. 查看(df -H

 方法一:fdisk进行分区,操作步骤与场景二基本一样,多了一步分区

# 1.创建分区(fdisk)
fdisk  /dev/sda
#在进入命令环境中,按n键  一路按回车,最后一步按w键保存,最后按q键退出

# 2.创建物理卷(pvcreate) sda3根据第一步中创建的分区名称进行替换
pvcreate /dev/sda3

# 3.将磁盘扩展到卷组(vgextend)  sda3根据第一步中创建的分区名称进行替换
vgextend centos /dev/sda3

# 4.扩展逻辑分区(lvextend)
#   根据自己的情况选择扩容到centos-root
#                      还是centos-home逻辑分区,请修改注释
# 100%是将所有的磁盘空间扩容到指定分区,也可以根据需要进行调整比例
#      也支持指定大小比如10G等等(指定固定值时参数-l需要修改为-L)
lvextend -l+100%FREE /dev/mapper/centos-root
#lvextend -l+100%FREE /dev/mapper/centos-home

# 5.使扩展生效(xfs_growfs)根据扩容的分区进行选择使用
# xfs_growfs /dev/mapper/centos-home
xfs_growfs /dev/mapper/centos-root

# 6.查看(df -H)
df -H

   方法二:用parted命令调整大小

举例:系统只有一个磁盘,2个分区:需要将新扩容的磁盘空间扩容到分区2上,下图中number 为2的,实际上对应的是/dev/sda2

[root@vm-210 templates]# parted /dev/sda  print free
Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
        32.3kB  1049kB  1016kB           Free Space
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  53.7GB  52.6GB  primary               lvm
方法二:用parted命令进行操作

#1. 查看磁盘情况:打印可用空间
parted /dev/sda  print free

#2.分配剩余的可用空间
#将剩余的可用空间分配到 /dev/sda2,根据实际修改磁盘
# resizepart 中的2 只的是第二个分区即:/dev/sda2 
#             100% 将所有的空闲空间分配给/dev/sda2,也可以用单位和百分比
parted /dev/sda resizepart 2 100%

# 3.刷新物理卷
#分区的空间修改了,也要刷新一下pv物理卷的大小,这样pv才能识别变动的空间
pvresize /dev/sda2

# 4.查看物理卷是否变化
#查看pv中free 项中是否显示了可用的空间
pvdisplay

# 5.扩展逻辑分区
#开始增加到逻辑卷中
lvextend -l+100%FREE /dev/mapper/centos-root

# 6.使扩展生效(xfs_growfs)
xfs_growfs /dev/mapper/centos-root

# 7.查看(df -H)
df -H

三、总结

        自己在工作中遇到磁盘扩容的问题进行了汇总。按照我的命令可以一步一步执行,如果还想进行了解更深,需要了解什么是物理卷(pv)、逻辑卷、逻辑分组、逻辑分区等等。        

标签: uxr抗硫化厚膜芯片电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台