Linux磁盘扩容是在管理和维护Linux系统中常见的任务之一。本文旨在记录扩容Linux根分区的操作步骤以及相应注意事项。所述操作基于AlmaLinux 9.2,但理论上适用于其他基于REHL生态的发行版。
AlmaLinux是一个由CentOS分支出来的发行版,它继承了CentOS在企业级Linux操作系统领域的优秀传统。与CentOS相似,AlmaLinux提供了稳定、可靠的性能和广泛的软件兼容性。在本文中,我们将探索如何在AlmaLinux上进行磁盘扩容操作。
此外,RockLinux也是与AlmaLinux有关系的发行版。RockLinux可被视为AlmaLinux的近亲兄弟,它们共享相似的源代码和目标。而AnolisOS是国内社区充分支持的发行版之一,它兼容CentOS,并且在国内社区中拥有广泛的用户群体。
因此,AlmaLinux、RockLinux和AnolisOS可以被视为CentOS停止维护后的替代选择。
使用df -lh命令查看磁盘占用情况。
[root@znas /]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 18M 1.5G 2% /run
/dev/mapper/almalinux-root 70G 5.4G 65G 8% /
/dev/mapper/almalinux-home 398G 2.9G 395G 1% /home
/dev/sda2 1014M 291M 724M 29% /boot
/dev/sda1 599M 7.1M 592M 2% /boot/efi
tmpfs 762M 52K 761M 1% /run/user/42
tmpfs 762M 36K 762M 1% /run/user/0
上面的df命令已经展示了/home目录是硬件目录下的almalinux-home。
/dev/mapper/almalinux-home 398G 2.9G 395G 1% /home
解挂删除home目录前请先备份目录参考操作记录的cp命令
[root@znas /]# umount /home/
[root@znas /]# lvremove /dev/mapper/almalinux-home
Do you really want to remove active logical volume almalinux/home? [y/n]: y
Logical volume "home" successfully removed.
使用lvextend -L +200G /dev/mapper/almalinux-root命令意思在almalinux-root逻辑卷空间原有的70G基础上在增加200G,即almalinux-root最终大小为270G这里扩展的是磁盘大小。
然后使用xfs_growfs命令的作用就是对ext4文件系统进行扩容。
[root@znas /]# lvextend -L +200G /dev/mapper/almalinux-root
Size of logical volume almalinux/root changed from 70.00 GiB (17920 extents) to 270.00 GiB (69120 extents).
Logical volume almalinux/root successfully resized.
[root@znas /]# xfs_growfs /dev/mapper/almalinux-root
meta-data=/dev/mapper/almalinux-root isize=512 agcount=4, agsize=4587520 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=18350080, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=8960, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 18350080 to 70778880
[root@znas /]# vgs
VG #PV #LV #SN Attr VSize VFree
almalinux 1 2 0 wz--n- 475.35g 197.54g
[root@znas /]# lvcreate -n home -L 197.5G almalinux
Logical volume "home" created.
[root@znas mapper]# mkfs.xfs /dev/mapper/almalinux-home
meta-data=/dev/mapper/almalinux-home isize=512 agcount=4, agsize=12943360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=51773440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=25280, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
[root@znas mapper]# mount /dev/mapper/almalinux-home /home
有些习惯只用root账号的操作者,会把所有磁盘空间都分配给root,第五步就不重建home分区了。这样的后果就是系统重启后起不来。一直卡在检测home分区这一步半天起不来。我就是中了这个误区,发现起不来连接显示器后才发现这个问题强制进入了系统但是因为异常问题导致root分区变成了只读模式,需要mount -o remount,rw /
解除只读模式。但是磁盘空间已经全部分配给root分区了。没有多余的空间建立home分区。本身我对Linux就停留在了简单的命令,这次的分区都是翻书百度了好久,于是乎没想到的解决方案就直接充装大法好。
[root@znas /]# cd home/
[root@znas home]# ls
zhang
[root@znas home]# cp zhang/ /data/zhang
cp: 未指定 -r;略过目录'zhang/'
[root@znas home]# cp -r zhang/ /data/zhang
[root@znas home]# cd /data/
[root@znas data]# ls
dockerimg zhang
[root@znas data]# cd zhang/
[root@znas zhang]# ls
公共 模板 视频 图片 文档 下载 音乐 桌面
[root@znas zhang]# cd ../
[root@znas data]# cd../
-bash: cd../: 没有那个文件或目录
[root@znas data]# cd ../
[root@znas /]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 18M 1.5G 2% /run
/dev/mapper/almalinux-root 70G 5.4G 65G 8% /
/dev/mapper/almalinux-home 398G 2.9G 395G 1% /home
/dev/sda2 1014M 291M 724M 29% /boot
/dev/sda1 599M 7.1M 592M 2% /boot/efi
tmpfs 762M 52K 761M 1% /run/user/42
tmpfs 762M 36K 762M 1% /run/user/0
[root@znas /]# umount /home/
[root@znas /]# lvremove /dev/mapper/almalinux-home
Do you really want to remove active logical volume almalinux/home? [y/n]: y
Logical volume "home" successfully removed.
[root@znas /]# lvextend -L +200G /dev/mapper/almalinux-root
Size of logical volume almalinux/root changed from 70.00 GiB (17920 extents) to 270.00 GiB (69120 extents).
Logical volume almalinux/root successfully resized.
[root@znas /]# resize2fs /dev/mapper/almalinux-root
resize2fs 1.46.5 (30-Dec-2021)
resize2fs: 超级块中的幻数有错 尝试打开 /dev/mapper/almalinux-root 时
找不到有效的文件系统超级块。
[root@znas /]# xfs /dev/mapper/almalinux-root
bash: xfs: command not found...
[root@znas /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 18M 1.5G 2% /run
/dev/mapper/almalinux-root 70G 5.4G 65G 8% /
/dev/sda2 1014M 291M 724M 29% /boot
/dev/sda1 599M 7.1M 592M 2% /boot/efi
tmpfs 762M 52K 761M 1% /run/user/42
tmpfs 762M 36K 762M 1% /run/user/0
[root@znas /]# xfs_growfs /dev/mapper/almalinux-root
meta-data=/dev/mapper/almalinux-root isize=512 agcount=4, agsize=4587520 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=18350080, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=8960, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 18350080 to 70778880
[root@znas /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 18M 1.5G 2% /run
/dev/mapper/almalinux-root 270G 6.8G 264G 3% /
/dev/sda2 1014M 291M 724M 29% /boot
/dev/sda1 599M 7.1M 592M 2% /boot/efi
tmpfs 762M 36K 762M 1% /run/user/0
[root@znas /]# vgs
VG #PV #LV #SN Attr VSize VFree
almalinux 1 2 0 wz--n- 475.35g 197.54g
[root@znas /]# lvcreate -n home -L almalinux
Size requires number argument.
Invalid argument for --size: almalinux
Error during parsing of command line.
[root@znas /]# lvcreate -n home -L 197.5G almalinux
Logical volume "home" created.
[root@znas /]# cd /dev/mapper/
[root@znas mapper]# ls
almalinux-home almalinux-root almalinux-swap control
[root@znas mapper]# mkfs.xfs /dev/mapper/almalinux-home
meta-data=/dev/mapper/almalinux-home isize=512 agcount=4, agsize=12943360 blk s
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=51773440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=25280, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
[root@znas mapper]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 18M 1.5G 2% /run
/dev/mapper/almalinux-root 270G 6.8G 264G 3% /
/dev/sda2 1014M 291M 724M 29% /boot
/dev/sda1 599M 7.1M 592M 2% /boot/efi
tmpfs 762M 36K 762M 1% /run/user/0
[root@znas mapper]# mount /dev/mapper/almalinux-home /home
[root@znas mapper]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 18M 1.5G 2% /run
/dev/mapper/almalinux-root 270G 6.8G 264G 3% /
/dev/sda2 1014M 291M 724M 29% /boot
/dev/sda1 599M 7.1M 592M 2% /boot/efi
tmpfs 762M 36K 762M 1% /run/user/0
/dev/mapper/almalinux-home 198G 1.5G 196G 1% /home
[root@znas mapper]# cd /data/
[root@znas data]# ls
dockerimg zhang
[root@znas data]# mv zhang/ /home/
[root@znas data]# ls
dockerimg
[root@znas data]# cd /home/
[root@znas home]# ls
zhang
[root@znas home]#
[1]鸟哥.鸟哥的Linux私房菜[M].人民邮电出版社,2010.