缩减或扩展 Linux 根分区大小(CentOS/Rocky/openEuler/Debian/Ubuntu)

目标:不添加额外的物理盘,从现有根存储挪一些空间,做个独立空间存放数据。

由于系统启动后不能 umount 卸载正在运行的系统 / 根分区,所以不能直接采用 lvreduceresize2fs 方式做扩缩操作,需要新的办法。

下面以 Hyper-V 虚拟机 openEuler 22.03 系统为例。
方法也同时适用于 Fedora 、 CentOS、 Rocky Linux 、 Debian 和 Ubuntu 。

先查看块存储设备情况:

lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                  8:0    0   20G  0 disk 
├─sda1               8:1    0  600M  0 part /boot/efi
├─sda2               8:2    0    1G  0 part /boot
└─sda3               8:3    0 18.4G  0 part 
  ├─openeuler-root 253:0    0 16.4G  0 lvm  /
  └─openeuler-swap 253:1    0    2G  0 lvm  [SWAP]

可以看到一个 20G 的物理盘 sda,分成 3 个分区:

  • EFI 分区 sda1
  • 引导分区 sda2
  • 系统分区 sda3

其中系统分区使用 LVM 管理。

查看 LVM 物理卷:

pvs # 或 pvdisplay
  PV         VG        Fmt  Attr PSize  PFree
  /dev/sda3  openeuler lvm2 a--  18.41g    0 

查看 LVM 卷组:

vgs # 或 vgdisplay
  VG        #PV #LV #SN Attr   VSize  VFree
  openeuler   1   2   0 wz--n- 18.41g    0 

查看 LVM 逻辑卷:

lvs # 或 lvdisplay
  LV   VG        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root openeuler -wi-ao---- 16.41g                                                    
  swap openeuler -wi-ao----  2.00g                                                    

看到 LVM 管理了 1 个物理卷 /dev/sda3 ,1 个卷组 openeuler ,以及 2 个逻辑卷。

结合起来看,这两个逻辑卷:

  • 一个用作系统根分区, root
  • 一个用作系统交换分区, swap

根分区占用了除交换分区外的所有 LVM 卷组空间,采用 EXT4 文件系统。

继续查看根分区 id:

blkid /dev/mapper/openeuler-root
/dev/mapper/openeuler-root: UUID="c054a1f9-55ed-49c2-8ff4-33da9a53c1a5" BLOCK_SIZE="4096" TYPE="ext4"

查看文件系统使用情况:

df -h
文件系统                    容量  已用  可用 已用% 挂载点
devtmpfs                    4.0M     0  4.0M    0% /dev
tmpfs                       697M     0  697M    0% /dev/shm
tmpfs                       279M  4.0M  275M    2% /run
tmpfs                       4.0M     0  4.0M    0% /sys/fs/cgroup
/dev/mapper/openeuler-root   16G  2.5G   13G   17% /
tmpfs                       697M     0  697M    0% /tmp
/dev/sda2                   974M  132M  775M   15% /boot
/dev/sda1                   599M  6.2M  593M    2% /boot/efi

收集到足够信息后,关闭虚拟机,修改虚拟机设置。

添加或在现有的 “SCSI 控制器器” → “DVD 驱动器” 中加载 openEuler 安装盘镜像。

在这里插入图片描述

调整固件启动顺序,让 “DVD 驱动器” 作为第一启动项。

在这里插入图片描述

启动虚拟机,选择第三项 “Troubleshooting —>” 以及 “Rescue a openEuler system”。

在这里插入图片描述
在这里插入图片描述

选择 “3) Skip to shell” 获得 Shell 环境

在这里插入图片描述
此时是通过虚拟光驱引导了一个救援系统,而虚拟机磁盘上的系统是未引导的,所以可以对磁盘上的系统的根分区做缩减或扩展操作。

检查 LVM 状态:

pvscan
vgscan
lvscan

激活卷组

vgchange -ay /dev/openeuler

在这里插入图片描述

检查根分区文件系统

e2fsck -f /dev/openeuler/root

缩小根文件系统到 10G

resize2fs /dev/openeuler/root 10G

检查根文件系统

fsck /dev/openeuler/root

在这里插入图片描述

取消激活卷组,然后缩减卷组内的逻辑卷大小

vgchange -an /dev/openeuler
lvreduce -L 10G /dev/openeuler/root

在这里插入图片描述

这样就完成了根分区缩减。

关机,重新设置虚拟机启动顺序,选择从 EFI “文件” 启动。

正常重启系统后,查看根分区情况:

df -h
文件系统                    容量  已用  可用 已用% 挂载点
devtmpfs                    4.0M     0  4.0M    0% /dev
tmpfs                       697M     0  697M    0% /dev/shm
tmpfs                       279M  4.0M  275M    2% /run
tmpfs                       4.0M     0  4.0M    0% /sys/fs/cgroup
/dev/mapper/openeuler-root  9.7G  2.5G  6.7G   28% /
tmpfs                       697M     0  697M    0% /tmp
/dev/sda2                   974M  132M  775M   15% /boot
/dev/sda1                   599M  6.2M  593M    2% /boot/efi

以 openeuler 卷组的所有剩余空间创建逻辑卷 data

lvcreate  -l 100%FREE -n data openeuler
  Logical volume "data" created.

查看创建结果

lvs
  LV   VG        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data openeuler -wi-a-----  6.41g                                                    
  root openeuler -wi-ao---- 10.00g                                                    
  swap openeuler -wi-ao----  2.00g                                                    
lsblk -f
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                  8:0    0   20G  0 disk 
├─sda1               8:1    0  600M  0 part /boot/efi
├─sda2               8:2    0    1G  0 part /boot
└─sda3               8:3    0 18.4G  0 part 
  ├─openeuler-root 253:0    0   10G  0 lvm  /
  ├─openeuler-swap 253:1    0    2G  0 lvm  [SWAP]
  └─openeuler-data 253:2    0  6.4G  0 lvm  

为逻辑卷 “data” 创建 EXT4 文件系统。

mkfs.ext4 /dev/openeuler/data
# 如果是 xfs 文件系统
#mkfs.xfs /dev/openeuler/data
mke2fs 1.46.4 (18-Aug-2021)
丢弃设备块: 完成                            
创建含有 1680384 个块(每块 4k)和 420160 个inode的文件系统
文件系统UUID:0fbfd597-95d5-414a-bf6e-9a6e0e3d5d4a
超级块的备份存储于下列块: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成

临时挂载到文件系统路径 “/data”

mkdir /data
mount /dev/openeuler/data /data
df -h
文件系统                    容量  已用  可用 已用% 挂载点
devtmpfs                    4.0M     0  4.0M    0% /dev
tmpfs                       697M     0  697M    0% /dev/shm
tmpfs                       279M  4.0M  275M    2% /run
tmpfs                       4.0M     0  4.0M    0% /sys/fs/cgroup
/dev/mapper/openeuler-root  9.7G  2.7G  6.6G   29% /
tmpfs                       697M     0  697M    0% /tmp
/dev/sda2                   974M  132M  775M   15% /boot
/dev/sda1                   599M  6.2M  593M    2% /boot/efi
/dev/mapper/openeuler-data  6.3G   24K  5.9G    1% /data

配置开机挂载,编辑 /etc/fstab 文件

vi /etc/fstab 

在文件末尾添加一行

/dev/mapper/openeuler-data /data                   ext4    defaults        0 1

重启系统,验证是否自动挂载到文件系统

reboot now

完成。

(收藏加关注,省心有帮助)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值