我可以在 Debian Linux 上从 EFI 切换到传统启动吗?

我可以在 Debian Linux 上从 EFI 切换到传统启动吗?

我的主板因 AMD Phenom 处理器而坏了,所以我在 eBay 上订购了一个便宜的替代品。它有效,但它很旧。

我将我的硬盘驱动器(它显示分区/boot/efi)连接/etc/fstab到新主板,但 BIOS 没有看到启动。我将一个旧硬盘驱动器(它没有/boot/efi在 中显示分区/etc/fstab)连接到主板,BIOS 确实看到了启动。

BIOS里没有UEFI选项。这是一块 MSI 主板,启动菜单上有一个名为 2.2 Tb Infinity 的东西,据说类似于 UEFI(根据 Google 的说法),但话又说回来,事实并非如此。

我现在可以启动两个硬盘,因为我从旧硬盘更新了 grub,它找到了我的 EFI 启动(不确定它是如何工作的)。但这是一个弗兰肯斯坦系统,旧的硬盘已经出现故障的迹象。

有什么方法可以让我将 EFI 启动切换到传统启动,这样我就不必通过另一个磁盘来启动?我已保存所有数据并可以重新安装,但我的系统有很多配置我不想丢失或必须重做。

如果我错误地描述了问题,我深表歉意。我不是新手,但我也不是程序员。有些事情对我来说只是一个黑匣子。预先感谢。

答案1

这是为了不加密安装。你必须知道如何 chroot!大多数操作必须以 root 身份或使用 sudo 来完成。

  1. 下载与您的具有相同架构(32 位或 64 位)的 Live-Linux
  2. Debian 安装。您还可以使用旧的硬盘驱动器并从

USB 与它,如果你有一个追随者或适配器。拱门也必须相同。
您稍后必须在 Debian 中 chroot,因为我们必须安装相同的软件包。

  1. 注释/boot/efiin /etc/fstabout 的条目。

  2. 临时挂载此 efi 分区,并将 /boot/ 文件夹中的内容复制到 /-Partiton 中的 /boot 文件夹。

  3. 现在我们必须创建一个特殊的分区:

从 debian 硬盘上卸载每个分区。最简单的方式启动 gparted。搜索您的 /boot/efi 分区并将其删除,创建一个新分区(最小大小 4MB)

  • 挂载点:无
  • 类型:无文件系统
  • 标志:bios_grub

对于非 GUI,您可以使用parted

$ parted /dev/sdX
(parted) rm 1
(parted) mkpart primary
File system type? [ext2]? ext2
Start? 1024s
End? 262144s
(parted) set 1 bios_grub on
(parted) q

它将用作原始设备。 更好的英语和更多信息

  1. 离开 gparted 后进行控制parted -l您的新分区具有相同的输出
Number  Start   End     Size    File system  Name     Flags                
 1      17.4kB  1049kB  1031kB               Primary  bios_grub  

除了Nr。和尺寸。名字和旗帜很重要。

  1. 现在你必须在你的 Debian 中进行 chroot。你也需要在 chroot 中访问互联网。

  2. apt update && apt-get install --reinstall linux-image-$(uname -r) linux-headers-$(uname -r)这是为了安全。

  3. apt install grub-pc这将卸载大部分 grub-efi 软件包。

  4. grub-install /dev/sdXx 是 debian-harddrive 的占位符。dpkg-reconfigure grub-pc如果出现问题,您可以从 grub-pc 重复配置。

  5. 使用此命令检查 grub 是否在 MBR 中:

fdisk -l 2>/dev/null | egrep "Disk /|/dev/" | sed "s#^/dev/#Part /dev/#" | awk '{print $2}' | sed 's/://' | xargs -n1 -IX sudo sh -c "hexdump -v -s 0x80 -n  2 -e '2/1 \"%x\" \"\\n\"' X | xargs -n1 -IY sh -c \"case  \"Y\" in '48b4') echo X: GRUB 2 v1.96 ;; 'aa75' | '5272') echo X: GRUB Legacy ;; '7c3c') echo X: GRUB 2 v1.97 oder v1.98 ;; '020') echo X: GRUB 2 v1.99 ;; *) echo X: Kein GRUB Y ;; esac\""
  1. grub-mkconfigupdate-grub

  2. 将输出blkid与 /etc/fstab 中的条目进行比较

  3. 最后,执行以下命令:update-initramfs -u -k all

如果一切顺利,您可以重新启动并启动操作系统。

相关内容