我的主板因 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 来完成。
- 下载与您的具有相同架构(32 位或 64 位)的 Live-Linux
- Debian 安装。您还可以使用旧的硬盘驱动器并从
USB 与它,如果你有一个追随者或适配器。拱门也必须相同。
您稍后必须在 Debian 中 chroot,因为我们必须安装相同的软件包。
注释
/boot/efi
in/etc/fstab
out 的条目。临时挂载此 efi 分区,并将 /boot/ 文件夹中的内容复制到 /-Partiton 中的 /boot 文件夹。
现在我们必须创建一个特殊的分区:
从 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
它将用作原始设备。 更好的英语和更多信息
- 离开 gparted 后进行控制
parted -l
您的新分区具有相同的输出
Number Start End Size File system Name Flags
1 17.4kB 1049kB 1031kB Primary bios_grub
除了Nr。和尺寸。名字和旗帜很重要。
现在你必须在你的 Debian 中进行 chroot。你也需要在 chroot 中访问互联网。
apt update && apt-get install --reinstall linux-image-$(uname -r) linux-headers-$(uname -r)
这是为了安全。apt install grub-pc
这将卸载大部分 grub-efi 软件包。grub-install /dev/sdX
x 是 debian-harddrive 的占位符。dpkg-reconfigure grub-pc
如果出现问题,您可以从 grub-pc 重复配置。使用此命令检查 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\""
grub-mkconfig
和update-grub
将输出
blkid
与 /etc/fstab 中的条目进行比较最后,执行以下命令:
update-initramfs -u -k all
如果一切顺利,您可以重新启动并启动操作系统。