disk_module) disk_module = xstrdup("biosdisk"); break; // 省略 } switch (platform) { case GRUB_INSTALL_PLATFORM_I386_PC: case GRUB_INSTALL_PLATFORM_SPARC64_IEEE1275: // 没有指定安装设备就报错 if (!install_device) grub_util_error("%s", _("install device isn't specified")); break;...
代码 读完之后再看,发现grub-install只是做了一些识别设备信息并匹配设置的准备工作,真正生成core.img的是grub-mkimage,真正负责安装的是grub-bios-setup(对于i386-pc平台) 以下代码根据我需要的目标平台i386-pc进行了删减,从而方便阅读 // 读取环境变量和命令行参数(略)if(!grub_install_source_directory){if(!targ...
在使用 EFI 引导的情况下,entry address tag 将被忽略,引导加载程序会跳转到 EFI i386 entry address tag 提供的地址。而使用传统 BIOS 引导时,引导加载程序会直接报错 error: unsupported tag: 0x08 。这是因为传统引导方式不支持 EFI 相关的 tag ,此时 flags 就派上用场了。只要把 flags 最低位设为 1 ,...
grub2-install --target=[i386-efi|arm64-efi|x86_64-efi] –efi-irectory=/boot/efi --bootloader id=openEuler 1. 1. 设置启动项 在Legacy模式下,系统启动项有BIOS管理,BIOS在启动阶段会扫描设备,找出拥有启动项的设备:磁盘,光驱,网卡等等。在UEFI模式下,也可以通过efibootmgr去管理启动项。因为在UEFI模式...
上图可见bootloader分区数据前面的一部分被覆写变成了0x00,重新执行GRUB2-install即可重新生成bootloader。 grub2-install /dev/sdx 1. 复制 UEFI模式下重新生成efi文件 grub2-install --target=[i386-efi|arm64-efi|x86_64-efi] –efi-irectory=/boot/efi --bootloader id=openEuler ...
/etc/grub2-efi.cfg: /etc/grub.d: 文件夹,定义每个菜单项的所有脚本都放置在这里,里面以两位数字+脚本名称的格式存放,为的是在构建 Grub 2 菜单时定义脚本的执行顺序以及相应菜单项的顺序; /boot/grub/grub.cfg: grub Grub设置通用配置变量 代码语言:javascript ...
输入命令:grub-install --target=i386-pc --boot-directory=j: --recheck \\.\PHYSICALDRIVE4 其中 --target=i386-pc 表示使用传统的BIOS引导模式(实际上UEFI也可以引导)--boot-directory=j: 表示引导目录是j盘(我的U盘盘符)--recheck \\.\PHYSICALDRIVE4 --recheck 这个参数的说明是:”...
efi程序中需要内置配置文件,类似grub的grldr文件,一旦生成后就很难修改了,所以,我们需要一个类似与menu.lst的配置文件,所以我们指定的配置文件中指向外部的cfg配置文件 以下为64位efi生成,32位参考文件夹名称,将x86_64-efi修改为i386-efi即可,一般是不需要,支持UEFI的基本都是64位的PC。
Ubuntu的分包问题 grub默认的target是i386-pc,这个target包含在grub-pc这个包,如果你的系统使用BIOS+MBR安装,这个包默认是存在的。x86_64-efi这个target包含在grub-efi这个包,只有你的系统使用UEFI+GPT方式安装这个包才会存在。如果某个target报错,错误信息类似于grub-install: error: /usr/lib/grub/x86_64-efi/mod...
grub-install生成的东西里面有个文件夹是x86_64,这东西很重要,可能就是这个导致x86的虚拟机不能用的,毕竟我x86的arch的grub那个文件夹是叫i386-pc我觉得直接用我电脑的话这个u盘应该已经能启动了, 12楼2015-06-05 14:43 回复 啊o额iu鱼 高一年级 13 不行,只能用efi,不能用bios引导,估计efi的ubuntu的...