当前位置: 首页 > news >正文

【报错处理】mount: /boot/efi: unknown filesystem type ‘LVM2_member‘.

从反复出现的错误来看,核心矛盾依然是 系统在配置 grub-efi-amd64-signed 时,错误地将某个 LVM 分区识别为
/boot/efi 所需的 ESP 分区(即使你手动挂载了正确的 vfat
分区)。这种情况通常是由于系统中存在残留的错误配置、分区表信息混乱,或 grub 脚本的硬编码逻辑与实际分区不符导致的。

彻底排查与解决步骤

  1. 再次确认所有分区的真实信息(关键)
    先通过 lsblk 和 blkid 完整列出所有分区,明确区分 LVM 分区 和 ESP 分区(vfat),避免混淆:
# 列出所有分区的名称、类型、挂载点(重点看 FSTYPE 和 MOUNTPOINT)
lsblk -o NAME,FSTYPE,MOUNTPOINT,UUID,PARTTYPE# 列出所有分区的 UUID 和类型(确认 ESP 的 UUID 是 vfat 类型)
sudo blkid

关键输出解读:

  • ESP 分区(正确):FSTYPE=“vfat”,PARTTYPE 应为 c12a7328-f81f-11d2-ba4b-00a0c93ec93b(EFI 系统分区的标准类型),通常挂载在 /boot/efi。
  • LVM 分区(错误):FSTYPE=“LVM2_member”,PARTTYPE 通常为 e6d6d379-f507-44c2-a23c-238f2a3df928(LVM 分区类型),绝不应该挂载在 /boot/efi。

记录下 ESP 分区的路径(如 /dev/vdb1)和 UUID(如 1FD3-1641),后续步骤会用到。

  1. 检查 grub 配置脚本的逻辑(定位错误源头)
    grub-efi-amd64-signed 的 post-install 脚本(负责配置的脚本)可能在自动检测 ESP 分区时出错,导致误选 LVM 分区。查看脚本内容:
# 打开 post-install 脚本
sudo vim /var/lib/dpkg/info/grub-efi-amd64-signed.postinst

在脚本中搜索与 mount 或 /boot/efi 相关的代码(通常是自动查找 ESP 分区的逻辑)。例如,脚本可能通过 blkid 或 parted 查找 ESP,但错误地匹配了 LVM 分区的 UUID 或路径。

临时修复:若找到脚本中自动挂载 /boot/efi 的命令(如 mount /boot/efi 或指定分区的命令),可手动将其修改为你确认的 ESP 分区(如 /dev/vdb1),保存后退出。

  1. 强制清除所有与 grub 相关的错误配置和缓存
# 卸载可能的错误挂载(若仍提示 busy,用 -l 强制)
sudo umount /boot/efi || sudo umount -l /boot/efi# 彻底删除 grub 相关的缓存和状态文件
sudo rm -rf /var/lib/grub/* /var/lib/dpkg/info/grub-efi-amd64-signed.* /var/lib/dpkg/info/shim-signed.*# 重新创建 /boot/efi 目录(确保干净)
sudo rm -rf /boot/efi && sudo mkdir -p /boot/efi# 重新挂载正确的 ESP 分区(用你记录的 ESP 路径)
sudo mount /dev/vdb1 /boot/efi  # 替换为你的 ESP 分区
  1. 强制重新配置并安装包(忽略历史错误)
# 先修复 dpkg 数据库的一致性
sudo dpkg --configure -a --force-depends --force-confnew# 强制重新安装两个包,覆盖所有配置
sudo apt install --reinstall -o Dpkg::Options::="--force-all" grub-efi-amd64-signed shim-signed
  1. 手动重建 EFI 引导项(绕开脚本自动检测)
    如果脚本仍出错,直接手动执行 grub-install 命令,跳过脚本的自动检测逻辑:
# 手动将 grub 安装到 ESP 分区(指定正确的 ESP 路径)
sudo grub-install \--target=x86_64-efi \--efi-directory=/boot/efi \--bootloader-id=ubuntu \--recheck \--no-nvram \  # 若提示 NVRAM 写入失败,添加此参数(部分虚拟机不支持)--debug  # 可选,输出调试信息,方便排查

执行成功后,再更新 grub 配置:

 update-grub
  1. 最终验证
# 检查包状态(目标为 "ii")
dpkg -l grub-efi-amd64-signed shim-signed# 检查 EFI 分区中是否生成了 grub 文件
ls /boot/efi/EFI/ubuntu/  # 应包含 grubx64.efi 等文件
http://www.dtcms.com/a/327815.html

相关文章:

  • ARM基础概念 异常处理01 day52
  • 前端项目一键换肤
  • Web 服务详解:HTTP 与 HTTPS 配置
  • SuperMap GIS基础产品FAQ集锦(20250804)
  • Java 中 Set 接口详解:知识点与注意事项
  • LangChain SQLChatMessageHistory:SQL数据库存储聊天历史详解
  • Day05 店铺营业状态设置 Redis
  • MQTTX使用wss的连接报错
  • Java -- List接口方法--遍历--ArrayList的注意事项
  • 贪心----4.划分字母区间
  • 方格网法土方计算不规则堆体
  • [ 前端JavaScript的事件流机制 ] - 捕获、冒泡及委托
  • 少数民族文字OCR识别技术实现及应用场景剖析
  • JMeter并发测试与多进程测试
  • __base__属性
  • ETCD的简介和使用
  • 42.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--网关集成认证(一)
  • 1513-map 的三种声明定义方式 使用方式
  • BN层:深度学习中的“数据稳定器”,如何解决训练难题?
  • 基于C#的二手服装交易网站的设计与实现/基于asp.net的二手交易系统的设计与实现/基于.net的闲置物品交易系统的设计与实现
  • 嵌入式Linux学习 -- 软件编程3
  • UNet改进(32):结合CNN局部建模与Transformer全局感知
  • Docker 101:面向初学者的综合教程
  • 【C#】从 Queue 到 ConcurrentQueue:一次对象池改造的实战心得
  • 激活函数篇(2):SwiGLU | GLU | Swish | ReLU | Sigmoid
  • 如何查看当前Redis的密码、如何修改密码、如何快速启动以及重启Redis (Windows)
  • 鹧鸪云:光伏施工流程管理的智能“导航仪”
  • 云平台监控-云原生环境Prometheus企业级监控实战
  • 【Redis与缓存预热:如何通过预加载减少数据库压力】
  • RoboNeo美图AI助手