笔者近日为自己的笔记本电脑升级到了 32G 内存,就想着删掉 swap 分区,为自己捉襟见肘的 SSD 释放一些空间。参考着 Arch Wiki,整体而言比较顺利,但也有一点小小的插曲。

首先,运行 # lvs 查看分区情况。我的系统里,Volume Group 是 fedora_zhenbo。 删除 swap 分区不需要运行 # umount /<mountpoint> 。相反,运行 swapoff -a 即可。 接下来,删除 LV # lvremove <volume_group>/<logical_volume>,并修改 etc/fstab

可是,重启后,系统并没有正确启动,而是进入了 dracut 环境,提示 fedora_zhenbo/swap 未找到。重新检查了一遍,发现 Kernel parameters 里有一行 rd.lvm.lv=fedora_zhenbo/swap。将其删去后,可以顺利启动。尝试运行 grub2-mkconfig,生成的 grub.cfg 里依旧有 swap。把 /etc/grub.d/ 翻了一遍,也没有任何头绪。

幸运的是,网友 Oren Bell 在 2017 年遇到了一样的问题。LVM 分区被硬编码到了 /etc/default/grub。编辑该文件的 GRUB_CMDLINE_LINUX= 一栏,删掉 rd.lvm.lv=fedora_zhenbo/swap 后重新 grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg 即可。

最后,参考 Arch Wiki,把释放出来的空间添加到 home

# lvresize -l +100%FREE --resizefs fedora_zhenbo/home