You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubuntu加密交换文件引发update-initramfs报错及启动问题求助

Kubuntu加密交换文件引发update-initramfs报错及启动问题求助

嘿,我之前处理过类似的Kubuntu加密交换文件问题,看你的报错和配置,核心问题出在/etc/crypttab的配置逻辑上——启动阶段的initramfs还没挂载加密的根分区,自然找不到根分区里的/swapfile,而且用/dev/loop0作为密钥文件属于循环依赖,还存在权限安全问题。咱们一步步来解决:

步骤1:临时关闭当前加密交换分区

先把正在运行的交换设备停掉,方便后续修改配置:

sudo swapoff /dev/mapper/cryptswap1
sudo cryptsetup close cryptswap1
sudo losetup -d /dev/loop0

步骤2:生成安全的独立交换密钥文件

我们创建一个权限严格控制的密钥文件,替代原来错误的/dev/loop0:

sudo mkdir -m 700 /etc/cryptswap-keys
sudo dd if=/dev/urandom of=/etc/cryptswap-keys/swap.key bs=1024 count=256
sudo chmod 600 /etc/cryptswap-keys/swap.key

步骤3:修正/etc/crypttab配置

编辑/etc/crypttab,替换掉原来的内容,改成以下配置:

cryptswap1 /swapfile /etc/cryptswap-keys/swap.key swap,offset=1024,cipher=aes-xts-plain64,size=256,noinitramfs

这里的关键改动:

  • 密钥文件换成我们刚生成的安全密钥
  • 添加noinitramfs选项:告诉initramfs不要在启动阶段处理这个加密交换设备,等根分区挂载完成后再激活它,从根源解决“找不到/swapfile”的问题

步骤4:确认/etc/fstab的swap配置

确保/etc/fstab里的swap条目指向解密后的设备,内容如下:

/dev/mapper/cryptswap1 none swap sw 0 0

步骤5:重新初始化加密交换并更新initramfs

完成配置后,重新设置加密交换文件并更新initramfs:

sudo cryptsetup open --type plain --key-file /etc/cryptswap-keys/swap.key /swapfile cryptswap1
sudo mkswap /dev/mapper/cryptswap1
sudo swapon /dev/mapper/cryptswap1
sudo update-initramfs -u -k all

步骤6:验证修复效果

重启系统,检查是否还会出现Cryptsetup waiting for encrypted source device /swapfile的启动错误,同时再次运行sudo update-initramfs -u -k all确认没有报错。

备注:内容来源于stack exchange,提问作者Vincentvd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:43:17