導航:首頁 > 源碼編譯 > 源碼編譯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文件相關的資料

熱點內容
奶粉源箱源碼什麼意思 瀏覽:169
台州程序員兼職一般去哪些網站 瀏覽:386
舊版本怎麼下載到新的安卓 瀏覽:964
flash個人網站源碼下載 瀏覽:723
javasocketbyte 瀏覽:264
素描基礎教程pdf 瀏覽:541
香港商報pdf版 瀏覽:426
安卓手機怎麼錄制吉他彈奏 瀏覽:382
ie文件夾緩存在哪裡 瀏覽:264
圍棋排名演算法 瀏覽:963
zigbee加密演算法 瀏覽:464
柏楊版資治通鑒pdf 瀏覽:395
事業編程序員下班時間 瀏覽:10
linux中命令大全 瀏覽:38
pic單片機學習網站 瀏覽:163
843除6的演算法 瀏覽:377
arduino編程視頻 瀏覽:744
pdf背景綠色 瀏覽:612
記事本dos命令 瀏覽:275
伺服器如何搭建多個節點 瀏覽:328