Linux磁盘分区扩容与缩减

提前说明:只有采用逻辑卷管理器lvm支持的的分区类型8e才支持动态调整分区大小

如何查看分区是何类型,命令 fdisk -l  ,其中分区类型Id显示8e,即文件系统是linux lvm。或者直接执行命令pvscan,查看当前系统是否有物理卷,没有就得重新分区

理论知识:

lvm技术结构

三层结构:物理卷、卷组、逻辑卷

物理卷处在最底层,插入一块硬盘,分几个区,每个区采用lvm文件类型和格式化后,每个分区就是物理卷

卷组可以包含多个物理卷,可以添加和删除物理卷

逻辑卷由卷组空闲空间生成,可以分配多个逻辑卷,在不需要时可以回收。对每个逻辑卷可以动态扩容和缩减

xfs与ext文件系统类型

xfs:XFS一种高性能的日志文件系统,几乎具备所有EXT4支持的功能。但不支持文件系统收缩

ext:支持度最广、但格式化慢,有ext2、ext3、ext4

基础命令

图示例子

 

xfs与ext文件系统不同,对其进行扩容与缩减部分命令不同。

说明:linux文件系统格式转换需要清除数据,同windows一样

xfs扩容与缩减

说明:
1、任何分区只可以扩展,不可以缩减
2、想要缩减,需要备份重建
2.1减少home等可卸载的文件系统
正常登陆系统,备份home,删除home,创建home,还原home
2.2减少var等不可卸载的文件系统
需要进入救援模式
先正常登陆系统,备份var;再进入救援模式,删除var,创建var;再正常登陆系统,还原var
还原之前,无法使用ssh工具登陆,需要在本机服务器上执行还原
2.3减少root
无法实现,删除根分区无法恢复
查看文件系统格式
cat /etc/fstab


说明:因xfs文件系统,只能扩展无法收缩,要收缩需要采用备份重建方式。
如果要收缩的文件系统很大且很重要,请谨慎使用该方法。
一、减少home等可卸载的文件系统,移到root或者其他
1、备份home目录 xfsdump -f /root/home.img /home
如果xfsdump无法使用,安装xfsdump,yum -y install xfsdump
或者使用cp -R /home /root
2、卸载home目录 umount /home
如果提示 umount: /home: device is busy,则使用fuser命令查看process ID,
如fuser -cu /home 或者fuser -mv /home

使用fuser -ck /home 命令kill所有进程或者使用kill -9 进程id1,进程id2.... 命令杀死进程
如果fuser无法使用,安装yum -y install psmisc
3、删除home逻辑卷(确认数据已备份)
df -hT

lvremove /dev/mapper/centos_lfm-home
4、扩展root逻辑卷
lvresize -L +10G /dev/mapper/centos_lfm-root
5、拓展文件系统根目录
xfs_growfs /dev/mapper/centos_lfm-root 或者xfs_growfs /
6、重新创建home逻辑卷并格式化
lvcrete -L 1G -n home centos_lfm
格式化home mkfs.xfs /dev/mapper/centos_lfm-home ,如果无法格式化,加参数-f
7、挂载home

挂载前需要修改/etc/fstab,因本次逻辑卷和挂载点名称都不变,所有无需修改/etc//fstab

挂载home mount /home
查看df -hT
注:如果文件系统类型等改变,需要修改配置文件/etc/fstab
8、还原并查看原文件
xfsrestore -f /root/home.img /home
ll /home
注:使用系统自带的xfs_metadump无法备份,待测
二、减少var等不可卸载的文件系统,移到root或者其他
0、var目录无法卸载,root用户一直在占用,想要减少var逻辑卷,需要进救援模式

1、备份var目录
xfsdump /root/var.img /var
2、进入救援模式
插入系统光盘,在系统启动时按下ESC键,进入启动项菜单,选择从光盘启动。或者进单用户模式直接开干

 

 

3、删除var逻辑卷
查看

删除var lvremove /dev/centos_lfm/var
4、扩展root逻辑卷
lvresize -L +1G /dev/centos_lfm/root
5、创建var逻辑卷
lvcreate -L 1G -n var centos_lfm
6、退出救援模式,重启进入启动项管理,修改启动项顺序
重启reboot
修改启动项,退出保存

7、扩展根目录文件系统
xfs_growfs /dev/mapper/centos_lfm-root 或者 xfs_growfs /
8、格式化var逻辑卷
mkfs.xfs -f /dev/mapper/centos_lfm-var
9、挂载var,因系统启动,自动挂载,此步省略
挂载前需要修改/etc/fstab,因本次逻辑卷和挂载点名称都不变,所有无需修改/etc//fstab
9、还原var并查看原文件,
xfsrestore -f /root/var.img /var
三、减少root
无法实现,删除根分区无法恢复

ext扩容与缩减

说明
1、不是根分区都可是在线扩容和缩小
2、根分区是可以在线扩容,但不可以在线缩小
3、根分区缩小需要进入救援模式

ext系列文件系统 可扩展可收缩

1、缩小home等可卸载文件系统,移到root
2、缩小var等不可卸载文件系统,移到root
2、缩小root,移到home


一、缩小home等可卸载逻辑卷,移到root
1、查看磁盘情况,卸载home目录,
df -Th
umount /home
如果无法卸载,使用fuser命令查看占用目录的进程并结束进程,
查看/home进程占用 fuser -mv /home,
结束所有占用/home的进程 fuser -ck /home

2、调整分区大小
resize2fs -p /dev/mapper/centos_lfm2-home 1G
如果提示先执行下面这条命令,则去执行
e2fsck -f /dev/mapper/centos_lfm2-home
3、挂载/home,查看磁盘情况
mount /home
df -h
4、设置空闲空间
使用lvreduce命令用于减少lvm逻辑卷占用空间的大小。可能会删除逻辑卷上已有的数据,所以在操作前必须进行确
认。
lvreduce -L -1G /dev/mapper/centos_lfm2-home
lvreduce -L -1G表示当前文件系统减少1G,
lvreduce -L 1G表示设置当前文件系统为1G
注:设置后的文件系统大小不能小于已存放在此目录下文件的大小,否则会丢失数据
可以使用vgdiskplay查看剩余的空闲空间

5、把空闲空间添加到根目录下
lvextend -L +0.98G /dev/mapper/centos_lfm2-root
resize2fs -p /dev/mapper/centos_lfm2-root
df -Th
注意:vgdisplay显示空闲空间大小为1G,实际可使用小于1G
二、缩小var等不可卸载逻辑卷,移到root
1、var目录进程一直占用,杀不死,修改var目录大小需要进入救援模式
2、不要让系统根挂载到/mnt/sysimage上,选择跳过"skip"
3、查看逻辑卷
lvscan

4、在修改逻辑卷大小前,需要激活此卷
lvchange -ay /dev/centos_lfm2/var
5、缩小文件系统
在执行resize2fs /dev/centos_lfm2/var前需要还行
强行修复 e2fsck -f /dev/centos_lfm2/var
6、缩小lvm,产生空闲空间
lvreduce -L 1G /dev/centos_lfm2/var
7、查看空闲空间并将其添加到/root
vgdisplay
lvchange -ay /dev/centos_lfm2/root
lvextend -L +0.98G /dev/centos_lfm2/root
resize2fs -p /dev/mapper/centos_lfm2-root
df -Th
注意:vgdisplay显示空闲空间大小为1G,实际可使用小于1G
二、缩小root,移到home
1、修改root目录大小需要进入救援模式
2、不要让系统根挂载到/mnt/sysimage上,选择跳过"skip"
3、查看逻辑卷
lvscan
4、在修改逻辑卷大小前,需要激活此卷
lvchange -ay /dev/centos_lfm2/root
5、缩小文件系统
resize2fs /dev/centos_lfm2/root 10G
在执行此命令前可能还需要还执行
强行修复 e2fsck -f /dev/centos_lfm2/root
6、缩小lvm,产生空闲空间
lvreduce -L 1G /dev/centos_lfm2/root
7、查看空闲空间并将其添加到/root
vgdisplay
lvchange -ay /dev/centos_lfm2/home
lvextend -L +0.98G /dev/centos_lfm2/home
resize2fs -p /dev/mapper/centos_lfm2-home
df -Th
注意:vgdisplay显示空闲空间大小为1G,实际可使用小于1G

posted @ 2020-06-24 10:14  gpysir  阅读(13965)  评论(1编辑  收藏  举报