Linux 磁盘扩容 root 分区操作小记
前言
Linux 磁盘扩容是在管理和维护 Linux 系统中常见的任务之一。本文旨在记录扩容 Linux 根分区的操作步骤以及相应注意事项。所述操作基于 AlmaLinux 9.2,但理论上适用于其他基于 REHL 生态的发行版。
AlmaLinux 是一个由 CentOS 分支出来的发行版,它继承了 CentOS 在企业级 Linux 操作系统领域的优秀传统。与 CentOS 相似,AlmaLinux 提供了稳定、可靠的性能和广泛的软件兼容性。在本文中,我们将探索如何在 AlmaLinux 上进行磁盘扩容操作。
此外,RockLinux 也是与 AlmaLinux 有关系的发行版。RockLinux 可被视为 AlmaLinux 的近亲兄弟,它们共享相似的源代码和目标。而 AnolisOS 是国内社区充分支持的发行版之一,它兼容 CentOS,并且在国内社区中拥有广泛的用户群体。
因此,AlmaLinux、RockLinux 和 AnolisOS 可以被视为 CentOS 停止维护后的替代选择。
操作步骤以及说明
1.查看磁盘占用情况
使用 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
2.解挂 home 文件夹
上面的 df 命令已经展示了/home 目录是硬件目录下的 almalinux-home。
/dev/mapper/almalinux-home 398G 2.9G 395G 1% /home
解挂删除 home 目录前请先备份目录参考操作记录的 cp 命令
- 使用 umount /home/命令解挂 /home 目录
- 使用 lvremove /dev/mapper/almalinux-home 删除
[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.
3.扩展逻辑卷和扩大文件系统
使用 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
4.查看硬盘剩余大小
- VG:卷组
- PV:物理卷
- LV:逻辑卷
- VSize:总大小
- VFree:剩余大小
[root@znas /]# vgs
VG #PV #LV #SN Attr VSize VFree
almalinux 1 2 0 wz--n- 475.35g 197.54g
5.重建 home 目录
- 使用 lvcreate 命令创建 home 逻辑卷
- 使用 mkfs.xfs 命令格式化 almalinux-home 文件系统
- 使用 mount /dev/mapper/almalinux-home /home 将文件系统重新挂载到/home
[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
6.误区
有些习惯只用 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.
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于