AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 420677
Accepted
s-m-e
s-m-e
Asked: 2018-01-31 05:52:17 +0800 CST2018-01-31 05:52:17 +0800 CST 2018-01-31 05:52:17 +0800 CST

薄荷 UEFI 分区突然不再被 UEFI 识别 - 启动 Windows 7 一次后

  • 772

我正在处理一台PC,一些现成的惠普办公箱,几年前。我已经用不同的风格或 Linux 使用它一段时间了,主要用于计算无头的东西。在某些时候,我必须安装 Windows 7 x86_64,所以我从机器上移除了所有以前的硬盘驱动器,找到另一个 SSD,插入它,将其擦除并在其上安装 Windows 7(所有默认值)。据我所知,它是在 UEFI 引导模式下安装的(即 SSD 有一个带有设置引导标志的小 FAT32 分区)。

时间过去了,我需要再次在这台机器上运行 Linux,我拔掉 SSD 并将 Linux Mint(即 Ubuntu)安装到 2 周前的最新版本到 USB 闪存驱动器上。Mint 安装程序向我抛出错误消息,告诉我这台 PC 上有另一个操作系统以旧版 BIOS 模式运行,并且在 UEFI 模式下安装 Mint 是个坏主意。请记住,SSD 已拔出。好的...我无法说服 Mint 安装程序不要因为此错误消息而崩溃,所以我使用 GParted 手动对我的 USB 闪存驱动器进行分区。设置了 BOOT 标志的 512 MByte FAT32 加上一个 ext4 系统分区、GPT 分区表。我再次运行 Mint 安装程序并将其指向这些分区。它向我发出另一个警告,但不会崩溃。Mint 安装(在 UEFI 模式下)并运行。内核和 Grub 更新工作。

时间又过去了,我又需要 Windows。我的 SSD 还在,所以我把它插上。USB 闪存驱动器也有,我认为没关系……我启动 PC,Windows 工作正常,我将其关闭。好吧,现在我想启动 Mint。UEFI 没有找到它。时期。我拔掉了SSD。我尝试了所有可用的 USB 端口。我打开了安全启动(只是为了好玩)然后再次关闭。我切换到 BIOS 仅启动模式并返回 UEFI / legacy 组合。我切换到仅 UEFI 模式。它只是不会识别薄荷。浏览 UEFI 的启动菜单并没有将 USB 闪存驱动器列为 UEFI 启动选项,而仅将其列为 Legacy BIOS 选项(我记得当我安装 Mint 时它被列为 UEFI 选项)。

据我所知,Mint UEFI 引导分区未受影响(更改日期与上次 Grub 更新的日期匹配)。设置了 BOOT 标志。据我所知,它确实没有任何问题。我唯一的“错误”是在将包含 Mint 的 USB 闪存驱动器插入 PC 时启动 Windows。

我可以做些什么来调试和/或解决这个问题?我可能忽略了什么?


编辑(1):这就是gdisk告诉我:

# gdisk -l /dev/sdc
GPT fdisk (gdisk) version 0.8.8

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdc: 30464000 sectors, 14.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): ***
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 30463966
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  
   2         1050624        30461951   14.0 GiB    0700  

分区 1 的代码 EF00 令人讨厌。不应该是EE00吗?


也张贴在薄荷论坛。

boot windows
  • 1 1 个回答
  • 3195 Views

1 个回答

  • Voted
  1. Best Answer
    telcoM
    2018-01-31T06:42:56+08:002018-01-31T06:42:56+08:00

    我的第一个猜测是您丢失了 Mint 的 NVRAM 引导变量。当固件注意到它指的是系统中不再存在的磁盘/SSD时,也许固件将其删除。

    使用 UEFI,每个操作系统都可以将自己的引导加载程序规范写入系统的可引导事物列表。该规范基本上包括包含引导加载程序的 EFI 系统分区的 GUID 标识符,以及引导加载程序文件的路径名。对于 Mint,路径名可能类似于\EFI\Mint\grubx64.efi因为它使用 GRUB2 的 UEFI 版本。

    诀窍是您可以从操作系统中访问这些 UEFI 启动变量……但前提是该操作系统以 UEFI 模式启动。当使用传统引导模式时,访问引导变量所需的 UEFI 运行时服务将被禁用,以使系统更接近于传统系统。

    对于可移动媒体,还有另一个 UEFI 约定:如果没有适用的 UEFI 引导变量,或者系统被告知从以前从未见过的磁盘以 UEFI 模式引导,那么 UEFI 固件会查找具有 FAT32 文件系统的分区这将包含一个名为\EFI\BOOT\BOOTx64.efi(对于 64 位 x86 硬件;ARM 架构有自己的引导文件名。)

    所以有两种方法可以解决这个问题:

    1.) 使用任何能够理解 GPT 分区表和 FAT32 文件系统的操作系统访问 Mint 磁盘。找到引导加载程序文件(\EFI\Mint\grubx64.efi或类似文件)并将其复制到\EFI\BOOT\BOOTx64.efi同一磁盘上。如果包含原始引导加载程序文件的目录包含任何看起来像配置文件的内容,请也复制它们。

    现在 UEFI 应该将磁盘识别为 UEFI 可引导,即使 NVRAM 引导变量已消失。(如果/当您必须再次交换 SSD 时,这可能会防止问题再次发生。)

    2.)以 UEFI 模式将系统引导至任何类型的 live-Linux 或救援环境。找到引导文件名,并使用efibootmgr命令重写 Mint 的引导变量。所需的命令类似于:

    # efibootmgr -c -d /dev/sdX -l \\EFI\\Mint\\grubx64.efi -L "Linux Mint"
    

    替换/dev/sdX为实际的磁盘设备名称:efibootmgr会自动查找对应的 GUID。请注意 Windows 样式路径名中的双反斜杠:这是因为反斜杠是 Linux shell 的特殊转义字符。最后一个参数是可能出现在引导选择菜单等的标签;你可以写任何你想要的短文本。

    • 3

相关问题

  • 如何在启动时启动控制台程序(在 ../openbox/autostart 内)

  • 在 Kali Linux 中的 Windows 7 分区上安装 grub

  • 系统完好,grub坏了

  • “pacman -Syu”“可能”破坏了我的系统,因为未安装引导

  • 克隆的 SSD 无法启动并打印奇怪的线条

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve