Ubuntu版本升级失败后,如何修复或重新安装带磁盘加密的系统?
Ubuntu版本升级失败后,如何修复或重新安装带磁盘加密的系统?
太懂你这种升级中途搞崩系统的糟心感了,尤其是加密分区的情况,别慌,咱们一步步来尝试修复或者保留数据重装。
先尝试修复现有系统
你可以用Ubuntu安装U盘/光盘进入「试用模式(Try Ubuntu)」,然后按下面的步骤操作:
- 打开终端,先确认你的加密分区:执行
lsblk或者fdisk -l,找到带crypt标识的分区(一般是/dev/sda2这类,具体看你的磁盘布局) - 解锁加密分区:输入
sudo cryptsetup luksOpen /dev/[你的加密分区名] cryptroot,然后输入你的加密密码 - 挂载根分区:
sudo mount /dev/mapper/cryptroot /mnt - 挂载系统必需的虚拟文件系统:
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys - 切换到你的系统环境:
sudo chroot /mnt - 先修复损坏的包依赖:
apt update && apt --fix-broken install,再重新配置所有未完成的包:dpkg --configure -a - 针对你遇到的BTF模块验证错误,大概率是升级时内核模块没装完整,试试重新安装当前内核:
apt install --reinstall linux-image-$(uname -r),如果不行就装最新的通用内核:apt install linux-generic - 最后更新引导:
update-grub,然后输入exit退出chroot,重启系统看看能不能正常启动
如果修复无效,尝试保留数据重新安装
如果上面的方法救不回来,也不用直接全盘格式化,咱们可以保留加密分区的数据来重装:
- 同样用安装介质进入安装界面,选择「Something else」(其他选项)进入分区编辑器
- 找到你的加密分区,选中它点击「Change」:
- 不要勾选「格式化」!这是关键!
- 挂载点设置为
/,文件系统类型保持原来的(一般是ext4)
- 如果你是UEFI启动,找到EFI分区(通常是几百MB的fat32分区,比如
/dev/sda1),同样不要格式化,挂载点设置为/boot/efi - 如果之前单独分了
/home分区,也要选中它,设置挂载点为/home,不格式化 - 确认所有设置无误后,开始安装,过程中会提示你输入加密分区的密码,输入正确密码即可
- 安装完成后如果引导有问题,还是进入试用模式,解锁加密分区、挂载根和EFI分区,然后执行:
grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --bootloader-id=ubuntu --recheck update-grub
一些注意事项
- 操作前一定要确保重要数据的备份(你已经有备份就最好了),避免误操作丢数据
- 识别分区的时候一定要仔细,别选错了分区导致不可逆的损失
- BTF错误本质是内核和模块的调试信息不匹配,重新安装内核基本能解决这个问题
备注:内容来源于stack exchange,提问作者Eric Jin
相关产品推荐
相关产品推荐

