导航:首页 > 源码编译 > 源码编译efi文件

源码编译efi文件

发布时间:2023-02-27 12:53:11

A. efi文件如何编辑

方法/步骤
是MBR还是GPT一般GPT分区会自带一个用于EFI启动的分区ESP分区。
efi文件怎么编辑
但是MBR分区形式没有EFI分区也就是ESP分区需要手动分出来一个分区。
efi文件怎么编辑
以FAT32或FAT16格式化,这样的就可以充当ESP分区来用。
efi文件怎么编辑
黑苹果需要创建EFI分区是为了使用clover引导。
efi文件怎么编辑
目前比较主流的引导方式有两种一种是变色龙——chameleon。
efi文件怎么编辑
efi文件怎么编辑
另一种是四叶草——Clover,主板支持UEFI启动,建议尝试使用Clover。
efi文件怎么编辑
efi文件怎么编辑

B. 装黑苹果用的efi文件怎么编辑成合适自己电脑的efi

这个要看你的分区形式,是MBR还是GPT一般GPT分区会自带一个用于EFI启动的分区ESP分区,但是MBR分区形式没有EFI分区也就是ESP分区需要手动分出来一个分区,以FAT32或FAT16格式化,这样的就可以充当ESP分区来用,黑苹果需要创建EFI分区是为了使用clover引导,目前比较主流的引导方式有两种一种是变色龙——chameleon,另一种是四叶草——Clover,主板支持UEFI启动,建议尝试使用Clover。

C. 编译UEFI版本Grub2引导多系统文件efi

官网源码地址
首先要从grub官网下在grub2,grub2中包含所有grub2相关的命令,可以用来生成grub2引导,这里着重介绍制作UEFI版本的grub2

内置配置文件为:grub.cfg,内置配置文件搜索/EFI/grub/compile.cfg 文件,并将其设定为配置文件。
将其保存在grub2解压压缩目录下,内容如下:

在grub2压缩包下面解压目录下打开命令行,输入以下命令:下面是编译64的文件

以上生成完毕,在文件夹下会出现一个bootx64.efi文件,BOOTIA32.efi 文件夹,

将其和x86_64-efi、locale文件夹、unicode.pf2一起拷贝到第一个fat/fat32分区,并新建一个grub.cfg。

其中,x86_64-efi为模块目录,locale为地区语言,unicode.pf2为字体,grub.cfg为引导加载的配置文件

目录如下:

FAT/FAT32
#########################
/EFI/Boot/bootx64.efi
/EFI/Boot/BOOTIA32.efi
/EFI/grub/grub.cfg
/EFI/grub/unicode.pf2
/EFI/grub/x86_64-efi/
/EFI/grub/locale/

#####################

x64.cfg内容示例:

[plain] view plain
function load_video {
if [ x$feature_all_video_mole = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}

insmod part_gpt
insmod fat
set root='hd0,gpt1'

font="/EFI/grub/unicode.pf2"
if loadfont prefix/locale
set lang=zh_CN
insmod gettext
fi

terminal_output gfxterm

insmod jpeg
if background_image /EFI/grub/background.jpg; then
true
else
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 255,255,155,0; then
clear
fi
fi

set default=0

set timeout_style=menu
set timeout=5

menuentry "启动 delta win7" --class windows --class os {
insmod ntfs
set root='(hd0,gpt2)'

}

menuentry "local win7" --class windows --class os {
insmod ntfs
set root='(hd0,gpt3)'

}

menuentry "ubuntu16.04 x86" --class ubuntu --class os {
insmod ext2
set root='(hd0,gpt5)'
linux /vmlinuz ro root=/dev/sda5
initrd /initrd.img
echo "Start Ubuntu 16.04"
}

menuentry "ubuntu16.04 x64" --class ubuntu --class os {
insmod ext2
set root='(hd0,gpt6)'
linux /vmlinuz ro root=/dev/sda6
initrd /initrd.img
echo "Start Ubuntu 16.04"
}

menuentry "-------------------" --class ubuntu --class os{
set root=(hd0,gpt1)
}

menuentry "ubuntu-efi" --class ubuntu --class os {
insmod ext2
set root='(hd0,gpt5)'
chainloader /efi/grub.efi
}

menuentry "install ubuntu" --class ubuntu --class os {
insmod ext2
insmod loopback
set root=(hd0,gpt4)
set isofile=/OS/linux/ubuntu-16.04.2-desktop-amd64.iso
loopback loop isofile
initrd (loop)/casper/initrd.lz
}

menuentry "-------------------" --class ubuntu --class os{
set root=(hd0,gpt1)
}

menuentry "reboot" --class windows --class os{
insmod reboot
reboot
}

menuentry "halt" --class windows --class os{
insmod halt
halt
}

https://wiki.archlinux.org/index.php/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
https://help.ubuntu.com/community/UEFIBooting

http://ftp.gnu.org/gnu/grub/
http://ftp.gnu.org/gnu/grub/grub-2.02-for-windows.zip

https://www.gnu.org/software/grub/manual/grub.html

http://jingyan..com/article/c85b7a640cd7d6003bac95f8.html

https://packages.ubuntu.com/source/trusty/grub2

https://www.kernel.org/pub/linux/utils/boot/syslinux/

http://www.jinbuguo.com/linux/grub.cfg.html
http://blog.csdn.net/listener_ri/article/details/45621947

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=385353

在进入grub界面如果出现

问题出在引导配置文件没有找到.
那么如何调试呢?
可以尝试打印变量的方法,输入C进入命令模式
输入gettext $prefix
我们发现还是提示(hd0,gp1)/EFI/grub
说明目录并没有被更改,我们可以验证一下放到此目录在跑起来.
发现果然又可以了,后面原因就是便宜目录的compile.cfg里面的目录并没有修改到根目录。

打开cfg文件查看是不是配置了语言文件,但是目录不存在

如果依然乱码,修改文件编码为utf-8

在④步骤中,已经生成BIOS模式所需的内核文件Core.img,其大小是86.5 KB
生成的只是单单BIOS模式的内核文件,还无法引导Grub2,还需要个启动文件Boot.img,该文件很小,只有512Byte,位于i386-pc文件夹,该文件的作用是启动Grub2,然后加载内核文件Core.img
所以这里的最后壹步就是把启动文件Boot.img和内核文件Core.img以二进制形式合并,合并后的文件我个人称呼为扇区文件G2ldr(不知道这个文件有没标准的名称),因为可以直接导入到扇区,来引导启动Grub2,也可以由GRUB4DOS直接加载这个扇区文件来启动Grub2。
老样子,先给出命令(如果命令行的路径不是Grub2包所在的路径,就先要修改命令行的路径,前面有提到)
Copy /B i386-pc\Boot.img+Core.img G2ldr

用bootice 导入扇区
恢复扇区数改成63不能大于63的
之所以会超过是定制问题, 那么这个不会

学习uefi和bios所使用的启动器仿真
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=335197

具体教程来自 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=339411&extra=page%3D1

: qq5274202

我的cmd批处理定制

那么bios加载方式如何启动呢。

出现这个错误,说明文件系统是不支持引导此分区,可以一个一个测试
输入 ls
出现了(hd0) (hd0,msdos2) (hd0,msdos1)
(hd1)
出现了msdos的都可以引导bios,
尝试输入了ls (hd0,msdos2)显示的是存储盘的内容,
尝试输入(hd0,msdos1)显示的是uefi分区内容.

而输入 其他的都显示未知的系统,也验证了bios只识别mbr分区表.

于是我把grub移动到了uefi分区 也就是(hd0,msdos1) 然后输入如下内容
后依次输入如下内容:

成功加载菜单.

阅读全文

与源码编译efi文件相关的资料

热点内容
围棋排名算法 浏览:960
zigbee加密算法 浏览:461
柏杨版资治通鉴pdf 浏览:393
事业编程序员下班时间 浏览:8
linux中命令大全 浏览:36
pic单片机学习网站 浏览:163
843除6的算法 浏览:377
arduino编程视频 浏览:744
pdf背景绿色 浏览:612
记事本dos命令 浏览:274
服务器如何搭建多个节点 浏览:326
acx算法 浏览:258
幽冥诡匠漫画全集用什么app可以看 浏览:1003
租用服务器为什么越来越慢 浏览:962
算法创新就业方向 浏览:425
算法最优解作者 浏览:870
通达信红绿宝塔线指标源码 浏览:669
app是什么东西合法吗 浏览:234
怎么锁app视频教程 浏览:843
迅捷pdf注册码生成器 浏览:750