linux磁盘扩容大全

芝士年糕
• 阅读 42

当我们租了服务器之后,肯定会需要到磁盘扩容的。 一、背景 linux使用中经常遇到磁盘空间不足,需要对磁盘进行扩容。根据自己的经验进行归纳整理,多种场景,帮助需要者和备查 本文执行的命令,均在centos7 环境下运行的,其他环境思路和相似,命令基本一致。 分区情况说明: sda是单独的一块磁盘总大小50G,sda1、sda2是两个分区,sda2下面有三个逻辑分区centos-root 、centos-home、centos-swap (df命令时可以看到的挂载点); centos-root 对应的挂载点是 根目录 centos-home对应的挂载点是 /home 卷组名称为centos (通过pvdisplay查看)

[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 扩容磁盘不显示扩容后的磁盘或者磁盘大小两种情况: 情况一:修改原来磁盘大小 情况二:新增磁盘 场景一:将centos-home分区移动到根分区centos-root 由于分区时,centos-home分区空间非常大,centos-root分区非常小,需要删除centos-home分区,扩容到centos-root分区 操作思路(括号中是用到的命令): 先备份/home下文件 卸载(umount) /home (注意:卸载不掉时,请将所有使用/home的进程关闭 参考http://t.csdn.cn/cbViW) 从逻辑卷中删除(lvremove) home 分区 扩展:将腾出的空间扩展(lvextend)到 centos-root分区下 使扩展生效(xfs_growfs) 注释掉fstab中的启动挂载项 恢复备份数据到/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下 磁盘空间不足,新增加了一块硬盘的场景。此处举例新增的一块磁盘名称为/dev/sdb 操作思路(括号中是用到的命令): 查看磁盘情况(lsblk、fdisk -l、pvdisplay) 创建物理卷(pvcreate) 将磁盘扩展到卷组(vgextend) 扩展逻辑分区(lvextend) 使扩展生效(xfs_growfs) 查看(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.使扩展生效(xfs_growfs)根据扩容的分区进行选择使用
 xfs_growfs /dev/mapper/centos-home
xfs_growfs /dev/mapper/centos-root

 6.查看(df -H)
df -H
场景三:在原始磁盘上增加空间(常在虚拟化环境中)
    虚拟化或者超融合环境中、或者VMware虚拟机中;磁盘空间不足,增加了已有磁盘的大小的场景,把增加的空间扩容到根目录或者centos-home下。

操作思路(括号中是用到的命令): 方法一:fdisk进行分区,操作步骤与场景二基本一样,多了一步分区 查看磁盘情况(lsblk、fdisk -l、pvdisplay) 创建分区(fdisk 磁盘名称) 创建物理卷(pvcreate) 将磁盘扩展到卷组(vgextend) 扩展逻辑分区(lvextend) 使扩展生效(xfs_growfs) 查看(df -H) 方法二:用parted命令调整大小 查看磁盘情况(parted /dev/sda print free) 分配剩余的可用空间(parted /dev/sda resizepart 2 100%) 刷新物理卷(pvresize /dev/sda2) 扩展逻辑分区(lvextend) 使扩展生效(xfs_growfs) 查看(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

点赞
收藏
评论区
推荐文章
Stella981 Stella981
1年前
Linux下调整根目录的空间大小教程
    我在将远程yum库同步到本地的过程中突然发现/目录下的磁盘空间太小了,根本能放不下那么多的rpm包,而/home目录下的居然有100多G无用的空间,于是,我查找了资料,并成功对linux进行了分区,现把分区方法写下来,供大家分享。    我使用如下的命令查看本地磁盘空间分布:df h    我的linux系统原来的分区空间如下:
Wesley13 Wesley13
1年前
Ubuntu的Linux逻辑卷管理
LVM(逻辑卷)管理系统可以将多个物理磁盘组装为一个大的逻辑磁盘进行使用,尤其是管理大文件时非常方便。LVM可以减少多个磁盘的部分空间闲置的情况,集中使用提高磁盘利用率。LVM的卷可以动态伸缩,方便使用。LVM由PV(物理卷)、VG(卷组)、LV(逻辑卷)组成,其中PV对应到物理磁盘的一个物理分区,LV相当于一个逻辑分区,VG建立起逻辑卷和物理卷之间的对
Stella981 Stella981
1年前
Linux系统盘扩容
\Linux系统盘扩容\了解磁盘分区情况\\blkid\查看分区情况\\fdiskl\分区表\系统挂载分区\\/etc/fstab\启动挂载分区情况\双系统下分区释放空间\在windows系统下使用分区工具,减小分区的空间
Wesley13 Wesley13
1年前
Ubuntu14.04引导菜单修复
一、USB或者引导光盘进自己的系统二、使用root权限三、看有哪些磁盘分区可以使用fdiskl四、挂载根分区我这里假设系统在sda2,并且需要设置默认它启动mkdir/mnt/tempmount/dev/sda2/mnt五、挂载boot分区mount/dev/sda2
Stella981 Stella981
1年前
Linux stat函数和stat命令
stat函数和stat命令linux文件里的【inodeindexnode】解释:要理解inode必须了解磁盘和【目录项】,inode实际是连接【目录项】和磁盘的中间物质。图里的大圈代表硬件的磁盘,里面的小圈代表某个文件存储在磁盘上了。【inodeindexnode】的node(承载node信息的结
Stella981 Stella981
1年前
Hadoop2.x 常用命令
基本命令格式为:hdfsdfscmd<args1\.\ls path列出path目录下的内容,包括文件名,权限,所有者,大小和修改时间。2\.\lsR path与ls相似,但递归地显示子目录下的内容。3\.\dupath显示path下所有文件磁盘使用情况下,用字节大小表示
Stella981 Stella981
1年前
CentOS7 配置交换分区SWAP
安装系统时,我们往往会在磁盘分区时,为交换分区单独分出一块儿位置,但当系统安装完成后,我们通过固定的文件位置在配置交换分区。在配置交换分区前,请确定你放置交换分区的磁盘有足够的空间。本篇文章将交换分区文件放在/var下,/var在/挂载点下,所以我们检查/挂载磁盘的空间:dingdayu@gitlabre
3A网络 3A网络
2个月前
理解 virt、res、shr 之间的关系(linux 系统篇)
理解virt、res、shr之间的关系(linux系统篇)前言想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过t
3A网络 3A网络
3个月前
查看Windows磁盘分区块大小的若干种办法
查看Windows磁盘分区块大小的若干种办法背景:在3A云服务器上扩容磁盘,随着业务增加不断扩容磁盘,后来发现扩容超过16T就报错,报的错莫名其妙。我在想,我是单机,不是群集啊,咋回事?我切换到英文界面看到原话,原来微软中文版是把clusters当"群集"翻译了,实际上clusters还有"簇"的意思,在磁盘方面,clustersize其实就是units
3A网络 3A网络
2个月前
开发一个不需要重写成 Hive QL 的大数据 SQL 引擎
开发一个不需要重写成HiveQL的大数据SQL引擎学习大数据技术的核心原理,掌握一些高效的思考和思维方式,构建自己的技术知识体系。明白了原理,有时甚至不需要学习,顺着原理就可以推导出各种实现细节。各种知识表象看杂乱无章,若只是学习
芝士年糕 芝士年糕
2个月前
Ubuntu空间不足,如何扩容
1、硬盘操作步骤最近发现Ubuntu空间不足,怎么去扩容呢?第一步:点击【硬盘】第二步:点击【扩展】 第三步:修改【最大磁盘容量大小】选择一个自己认为比较合适的大小。此时只是在Ubuntu系统上有分区,还没有扩容到内存中去。2、Ubun