背景
以前的移动硬盘安装的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还需要手工加微码才能引导。