移动硬盘尝试安装GRUB,修改UEFI引导失败记录

本文记录了一次尝试在新款HP笔记本上修复旧版SUSE系统的引导问题的过程。通过分析BIOS/EFI设置,尝试在不改变原有MBR分区的前提下,创建fat32分区,并使用统信Linux安装GRUB2来实现跨代硬件兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

以前的移动硬盘安装的suse11sp3,在新笔记本上不能引导了。
分析了笔记本的biso/EFI,在Boot Option启动选项里面只有efi,找不到legacy选项;在启动时的引导菜单里面也只能查找文件启动,应该不是不支持老的MBR启动了。

方案

在不改变硬盘MBR分区的情况下,创建了一个fat32的主分区,估计在扩展分区里面不行。
找了一个统信Linux,挂载该分区,把老的boot目录拷贝过来。这里的权限会丢失,我理解是因为fat分区不支持该特性。

安装gurb

软硬件:
HP战66笔记本: ProBook 455 G8
CPU: Ryzen 7 5800
OS: UnionTech OS Desktop 20 Home
kernel: 5.7.7-amd64-desktop

root@xyhp:/home/xxyy/Desktop# grub-install --target=x86_64-efi --efi-directory=/media/xxyy/boot /dev/sda
grub-install:错误: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.

注意:不能安装grub,要安装grub2
否则再次运行grub-install会出现不支持–target参数,再次重新安装 apt install grub2

没有grub2-efi-x64软件包,尝试安装 # apt install grub-efi
提示:

将会同时安装下列软件:
  grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed
推荐安装:
  secureboot-db

检查已安装:

root@xyhp:/usr/lib/grub# ls
grub-mkconfig_lib  i386-pc  x86_64-efi  x86_64-efi-signed

再次运行上述命令成功:

Installing for x86_64-efi platform.
Installation finished. No error reported.

自动更新一下引导菜单
grub-mkconfig -o /media/xxyy/boot/boot/grub/grub.cfg

root@xyhp:/usr/lib/grub# grub-mkconfig -o /media/xxyy/boot/boot/grub/grub.cfg
Generating grub configuration file ...
Found theme: /boot/grub/themes/deepin-fallback/theme.txt
Found background image: /boot/grub/themes/deepin-fallback/background.jpg
Found linux image: /boot/vmlinuz-5.7.7-amd64-desktop
Found initrd image: /boot/initrd.img-5.7.7-amd64-desktop
File descriptor 23 (anon_inode:[eventpoll]) leaked on lvs invocation. Parent PID 3864: /bin/sh
File descriptor 25 (pipe:[54345]) leaked on lvs invocation. Parent PID 3864: /bin/sh
File descriptor 26 (pipe:[54345]) leaked on lvs invocation. Parent PID 3864: /bin/sh
Found Windows Boot Manager on /dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi
Found SUSE Linux Enterprise Server 11 (x86_64) on /dev/sda1
Adding boot menu entry for EFI firmware configuration
done
root@xyhp:/usr/lib/grub#

测试结果

开机按Esc–F9在grub启动菜单黑屏闪一下,选择文件进入grub菜单,指定linux和initrd,boot停滞,不能引导。
suse11用3.0的内核,无法引导最新的amd cpu;之前用统信Linux 内核5.7还需要手工加微码才能引导。

### 解决方案 当在移动硬盘安装 Ubuntu 后,如果主机启动时默认进入 GRUB 引导界面,可以通过调整 GRUB 的配置以及重新设置引导顺序来解决问题。 #### 修改 GRUB 配置 可以尝试通过修改 `/etc/default/grub` 文件中的参数来避免开机时加载 GRUB。具体方法如下: 编辑 GRUB 默认配置文件并添加 `GRUB_CMDLINE_LINUX="text"` 参数[^2]: ```bash sudo gedit /etc/default/grub ``` 找到以下行并将其更改为指定模式: ```plaintext GRUB_CMDLINE_LINUX="text" ``` 保存更改后更新 GRUB 配置: ```bash sudo update-grub ``` 此操作会减少 GRUB 加载过程中必要的图形化显示,从而可能规避因硬件变化引起的错误加载行为。 --- #### 调整 BIOS/UEFI 中的引导设备优先级 另一个常见原因是主板的 UEFI 或 BIOS 将移动硬盘识别为主机的主要启动设备。为了防止这种情况发生,可以在 BIOS/UEFI 设置中将内置硬盘设为首选启动项。以下是步骤概述: 1. **重启计算机**并按下对应的快捷键(通常是 F2、F10、DEL 键)进入 BIOS/UEFI 界面。 2. 找到 **Boot Order** 或类似的选项。 3. 将内部固定硬盘提升至最高优先级,而将外部 USB 设备移至较低位置。 4. 保存更改并退出。 完成上述设置后,即使连接了移动硬盘,系统也会优先从本地硬盘启动,而是进入 GRUB 接口。 --- #### 新建 UUID 并重配 Grub 由于移动硬盘上的分区 UUID 可能仍然保留旧硬盘的信息,因此需要为其创建新的 UUID 来匹配当前环境。具体过程包括以下几个方面: 1. 使用 Live CD/Live USB 启动 Ubuntu,并打开终端。 2. 安装 GParted 工具以管理磁盘分区: ```bash sudo apt-get install gparted ``` 3. 对每个分区执行 “New UUID” 操作[^3],确保它们再依赖于原始物理驱动器。 4. 更新 Grub 配置以反映最新的变更: ```bash sudo grub-install --target=i386-pc /dev/sdX # 替换 sdX 为目标移动硬盘名称 sudo update-grub ``` 以上命令能够帮助重建针对目标存储介质的有效引导记录--- #### 关联问题排查 有时即便完成了前述修正措施仍可能出现异常状况,比如长期停留在紫色屏幕或者无法正常渲染桌面等情况,则需进一步核查是否存在其他潜在干扰因素,例如显卡兼容性等问题[^4]。 另外需要注意的是,在多操作系统共存场景下可能会遇到时间同步方面的差异现象[^5],虽然这是直接引发本案例的核心原因,但在实际部署期间也应予以适当关注以免造成混淆。 --- ### 总结 综上所述,要彻底解决因为外接式固态装置所引起之开机即跳转至Grub菜单的现象,主要涉及三个方面的工作:一是合理设定BIOS内的次序安排;二是妥善处理好对应软件层面的数据结构调整工作如更换uuid值等;三是依据实际情况灵活运用grub工具组来进行必要的定制化适配作业。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值