![删除了 LVM 交换分区,现在由于错误导致启动需要很长时间](https://linux22.com/image/1185260/%E5%88%A0%E9%99%A4%E4%BA%86%20LVM%20%E4%BA%A4%E6%8D%A2%E5%88%86%E5%8C%BA%EF%BC%8C%E7%8E%B0%E5%9C%A8%E7%94%B1%E4%BA%8E%E9%94%99%E8%AF%AF%E5%AF%BC%E8%87%B4%E5%90%AF%E5%8A%A8%E9%9C%80%E8%A6%81%E5%BE%88%E9%95%BF%E6%97%B6%E9%97%B4.png)
语境
最初我有以下分区结构
nvme0n1
├─nvme0n1p1 /boot/efi
└─nvme0n1p2
├─ubuntu--vg-root /
└─ubuntu--vg-swap_1 swap
然后我决定删除交换分区,改用交换文件。我创建了一个文件,调用mkswap /swapfile
它,swapoff -a
然后swapon /swapfile
。然后我编辑/etc/fstab
并更改了以下行
/dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0
到
/swapfile none swap sw 0 0
重新启动工作正常,因此我打开gparted
并删除了交换分区以扩展根目录(我改为使用lvexpand
),因此我的分区现在看起来(至于命令lsblk
)
nvme0n1
├─nvme0n1p1 /boot/efi
└─nvme0n1p2
└─ubuntu--vg-root /
问题
我肯定是搞错了,因为现在重启至少需要 25 秒(而不是 4 秒),而且看起来它正在暂停启动以寻找交换分区,因为在正常启动之前,以下消息至少出现了 5 次
failed to find logical volume ubuntu-vg/swap_1
我尝试过的方法(根据我在网上找到的信息)
- 运行
update-grub
(未grub.cfg
提及swap_1
) - 跑步
update-initramfs -u
- 文件
/etc/initramfs-tools/conf.d/resume
不存在,因此无需进行任何更改 lsblk
仅lvdisplay
显示根分区
恐怕 LVM 配置中一定还有交换分区的概念,因为我没有使用它的命令来删除它,但我找不到任何地方将其列为swap_1
分区(除了 中的某些文件/etc/lvm/archive
,但我想它们对我没用)。我甚至对任何文件中的内容进行了全盘搜索swap_1
,但只有包含在文本中的错误日志
答案1
事实证明,update-initramfs -u
这还不够,因为它没有更新当前内核 initramfs(而是使用了我没有使用的其他内核之一),并继续使用旧分区的旧内核。解决方案是指定当前加载的内核
sudo update-initramfs -k $(uname -r) -u
(有疑问我还添加了RESUME=/swapfile
以前/etc/initramfs-tools/conf.d/resume
不存在的内容,所以也是如此)