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

【报错处理】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.xdnf.cn/news/17611.html

相关文章:

  • 记录一次react渲染优化
  • 实现文字在块元素中水平/垂直居中详解
  • 教程 | 用Parasoft SOAtest实现高效CI回归测试
  • AWS EKS 常用命令大全:从基础管理到高级运维
  • [激光原理与应用-257]:理论 - 几何光学 - 光束整形
  • Springboot注册过滤器的三种方式(Order 排序)
  • Spring Cloud系列—Config配置中心
  • 【Oracle APEX开发小技巧16】交互式网格操作内容根据是否启用进行隐藏/展示
  • VS4210芯片技术资料(IT6604+VS4210+MDIN380连接原理图)
  • 基于STC8单片机的RTC时钟实现:从原理到实践
  • 如何使股指期货套期保值效果更加精准?
  • Ansible部署应用
  • AR巡检:三大核心技术保障数据准确性
  • 聚合搜索中的设计模式
  • 【Unity】Unity中ContentSizeFitter有时无法及时自适应大小问题解决
  • Baumer高防护相机如何通过YoloV8深度学习模型实现木板表面缺陷的检测识别(C#代码UI界面版)
  • python --- 基础语法(1)
  • Web 开发 14
  • [SC]如何使用sc_semaphore实现对共享资源的访问控制
  • 【网络运维】Linux和自动化:Ansible
  • 基于RAII的智能指针原理和模拟实现智能指针
  • 企业培训笔记:宠物信息管理--实现宠物信息的添加
  • NLP—词向量转换评论学习项目分析
  • 【Java项目与数据库、Maven的关系详解】
  • Docker部署kafka实操+Java中访问
  • 42.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--网关集成认证(一)
  • 云计算概述
  • 【web站点安全开发】任务2:HTML5核心特性与元素详解
  • GitLab CI + Docker 自动构建前端项目并部署 — 完整流程文档
  • 跨界重构规则方法论