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

Ubuntu 20.04 LUKS LVM环境下initramfs-tools配置失败及开机解密风险修复求助

Ubuntu 20.04 LUKS LVM环境下initramfs-tools配置失败及开机解密风险修复求助

别慌,你的担心完全有道理——没有cryptsetup-initramfs的话,开机时initramfs里缺少解密LUKS分区的工具,很大概率会卡在启动环节进不了系统。咱们一步步来修复,先把开机解密的保障补上,再解决initramfs生成失败的问题:

1. 先恢复开机解密必需的组件

首先立刻把被连带卸载的cryptsetup相关包装回去,这是确保开机能解密的核心:

sudo apt install cryptsetup cryptsetup-initramfs

cryptsetup-initramfs的作用就是把解密LUKS分区需要的工具打包进initramfs里,没有它开机系统根本认不出加密分区。

2. 验证加密分区的开机配置

检查/etc/crypttab文件,这个文件定义了开机时需要自动解密的分区,确保你的LUKS分区(包括swap和根分区)的配置条目是正确的:

sudo cat /etc/crypttab

正常情况下你会看到类似这样的条目(对应你的/dev/mapper/system-swap或者根分区):

system-swap /dev/sdXn /dev/urandom swap,cipher=aes-xts-plain64,size=256
system-root /dev/sdXm none luks,discard

如果条目缺失或者路径错误,需要根据你的实际分区情况修正。

3. 解决initramfs生成失败的问题

之前出现Error 24 : Write error : cannot write compressed block,大概率是两个原因:要么是/boot分区空间不足,要么是lz4压缩工具出了问题。

情况一:检查/boot空间

先看看/boot是不是满了:

df -h /boot

如果空间使用率接近100%,需要清理旧内核释放空间:

# 自动清理无用的旧内核
sudo apt autoremove --purge

或者手动删除/boot里的旧内核文件(注意别删当前正在使用的内核,用uname -r可以查看当前内核版本,比如5.15.0-10088-tuxedo,别删这个版本的文件)。

情况二:换一种压缩方式

如果空间没问题,那试试换gzip压缩代替lz4,修改initramfs的配置文件:

sudo nano /etc/initramfs-tools/initramfs.conf

找到COMPRESS=lz4这一行,改成COMPRESS=gzip,保存退出后重新生成initramfs:

# 针对当前内核重新生成
sudo update-initramfs -u -k $(uname -r)
# 或者针对所有内核生成
sudo update-initramfs -u -k all

4. 验证修复结果

最后确认一下生成的initramfs里包含cryptsetup工具:

lsinitramfs /boot/initrd.img-$(uname -r) | grep cryptsetup

如果能看到cryptsetup、cryptsetup-bin相关的文件,说明解密工具已经被正确打包进去了,重启系统应该就能正常解密进入系统了。

以后尽量别随便卸载initramfs-tools,尤其是加密系统,它是生成启动必需的initramfs的核心工具,卸载很容易导致启动故障。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 08:34:31