语境
最初我有以下分区结构
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
不存在的内容,所以也是如此)