必须先用sudo efibootmgr -v识别残留项,再挂载EFI分区、删除对应目录,最后用sudo efibootmgr -b XXXX -B从NVRAM中彻底清除;操作顺序不可颠倒,否则仅删文件不删固件记录,菜单仍显示无效条目。

统信UOS系统在多次重装、升级或双系统切换后,UEFI固件中可能残留已删除系统的启动项,导致开机时出现无效条目、启动顺序错乱甚至卡在启动菜单无法进入系统,必须直接操作EFI分区并调用efibootmgr工具从主板NVRAM中物理清除。
确认当前UEFI启动项列表
打开终端(Ctrl + Alt + T),执行命令查看所有注册到主板固件的启动项:
sudo efibootmgr -v
输出中每行以BootXXXX开头(如Boot0001、Boot000A),后面紧跟描述文字和对应路径;重点识别含“uos”“deepin”“linux”“grub”或旧版本号(如6.1.0-amd64)且目标文件已不存在的条目——这些就是待清理的残留项。
【注意:此命令不修改任何内容,仅读取,可放心执行】
定位并挂载EFI系统分区
先确认EFI分区设备名:
sudo fdisk -l | grep "EFI System"
典型输出为 `/dev/nvme0n1p1` 或 `/dev/sda1`;若未显示,请执行 `sudo blkid | grep vfat` 并筛选含 `EFI` 或 `boot` 标签的vfat分区。
创建挂载点并挂载:
sudo mkdir -p /mnt/efi && sudo mount /dev/nvme0n1p1 /mnt/efi
挂载后检查是否成功:
ls /mnt/efi/EFI/
应能看到 `uos`、`ubuntu`、`Microsoft` 等子目录;若只看到空目录或报错“not a directory”,说明挂载失败或分区识别错误,需返回上一步重新确认设备名。
删除EFI分区中对应残留目录
进入EFI启动目录:
cd /mnt/efi/EFI
列出全部厂商目录:
ls
找到与残留启动项名称匹配的目录(例如启动项显示 `HD(1,GPT,...)/File(\EFI\uos-old\grubx64.efi)`,则对应目录为 `uos-old`);【务必核对名称完全一致,切勿误删uos或Microsoft目录】
执行删除:
sudo rm -rf uos-old
该操作会永久移除该启动项所需的全部引导文件,但不会影响UEFI固件中的启动条目记录——这步只是为下一步清除做准备,防止efibootmgr因文件存在而拒绝删除。
从主板NVRAM中彻底清除启动条目
第一步:获取待删条目的编号
回到 `efibootmgr -v` 输出,找到目标条目行,记下其 `BootXXXX` 编号(如 `Boot0003`)。
第二步:执行物理清除
sudo efibootmgr -b 0003 -B
将 `0003` 替换为你实际要删的编号(十六进制,无需加0x前缀);该命令直接向UEFI固件发送删除指令,不可逆。
第三步:验证是否消失
再次运行 `sudo efibootmgr`,确认输出中已无该编号条目;若仍有,说明编号输错或权限不足,需重试。
刷新并验证启动顺序
执行命令同步更新启动顺序:
sudo efibootmgr -o 0001,0002,0004
将 `0001,0002,0004` 替换为你希望保留的有效启动项编号(用逗号分隔,无空格),确保当前UOS主启动项(通常是Boot0001)排在第一位。
重启系统,开机时不再出现已删条目,且默认直接进入UOS桌面。











