EFI 文件夹可从centos官方镜像获得,grldr从 参考链接 grub4dos 获得,需更新配置文件
grub.cfg
、menu.lst
搭配前文简易Ramdisk 镜像制作(基于Centos7+)
中Ramdisk可实现:
参照参考链接2
[root@labserver ~]# dd if=/dev/zero of=efiboot.img bs=1M count=5
[root@labserver ~]# mkfs.fat efiboot.img
[root@labserver ~]# mount -o loop efiboot.img /mnt
[root@labserver ~]# cp -rf mkiso/EFI /mnt
[root@labserver ~]# umount /mnt
[root@labserver ~]# cp efiboot.img mkiso/
参照参考链接5
[root@labserver mkiso]# cat EFI/BOOT/grub.cfg
set default="0"
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
insmod jpeg
# for below image / color display
terminal_output gfxterm
if background_image /EFI/BOOT/splashimage.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 timeout=10
### END /etc/grub.d/00_header ###
search --no-floppy --set=root -l 'Pedro_ISO'
### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS7.6' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /centos76/vmlinuz-3.10.0-957.el7.x86_64 selinux=0 modprobe.blacklist=uas,usb_storage,nouveau,mpt3sas amd_iommu=off quiet splash vconsole.font=latarcyrheb-sun16 vconsole.keym
ap=us ipv6.disable=1 console=tty0 biostype=UEFI
initrdefi /centos76/initrd_1.0.7_20200706123034.img
}
menuentry 'ServiceDiag' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /ServiceDiag/vmlinuz rescue quiet intel_idle.max_cstate=1 intel_pstate=disable
initrdefi /ServiceDiag/initrd.img
}
menuentry 'EFI Shell' {
chainloader /EFI/BOOT/Shell.efi
}
menuentry 'Firmware setup' {
echo "Firmware setup ..."
sleep 1
fwsetup
}
menuentry 'reboot' {
echo "reboot ..."
sleep 1
reboot
}
menuentry 'halt' {
echo "halt ..."
sleep 1
halt
}
参照参考链接1
[root@labserver mkiso]# cat menu.lst
color blue/green_message yellow/red_message white/magenta white/magenta
timeout=5
default=0
## menu border color
color border=0xEEFFEE
## set vbe mode
graphicsmode -1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32
## loading splashimage
splashimage /splashimage.bmp
default /default
title centos76
kernel /centos76/vmlinuz-3.10.0-957.el7.x86_64 selinux=0 modprobe.blacklist=uas,usb_storage,nouveau,mpt3sas amd_iommu=off quiet splash vconsole.font=latarcyrheb-sun16 vconsole.keymap=us ipv6.disable=1 console=tty0 biostype=LEGACY
initrd /centos76/initrd_1.0.7_20200706123034.img
savedefault --wait=2
title ServiceDiag
kernel /ServiceDiag/vmlinuz rescue quiet intel_idle.max_cstate=1 intel_pstate=disable
initrd /ServiceDiag/initrd.img
savedefault --wait=2
title MAXDOS.IMG
map --mem /DOS/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
savedefault --wait=2
title commandline
commandline
title reboot
reboot
title halt
halt
注意menu.lst
中以下几行为必须,
## set vbe mode
graphicsmode -1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32
## loading splashimage
splashimage /splashimage.bmp
制作背景图时,保存为24位位图bmp(windows自带画图工具可另存为该类型)(图片分辨率无要求,但无需太大,最大1027x768即可)
另,支持xpm格式,本文未涉及
在grub.cfg
中以下几行为必须,
# for below image / color display
terminal_output gfxterm
if background_image /EFI/BOOT/splashimage.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
图片jpg
/jpeg
/png
/tga
格式即可(图片分辨率无要求,但无需太大,最大1027x768即可)
[root@labserver mkiso]# tree
.
|-- centos76
| |-- initrd_1.0.7_20200706123034.img
| `-- vmlinuz-3.10.0-957.el7.x86_64
|-- default
|-- DOS
| |-- dosipmi
| | |-- COMMON.C
| | |-- COMMON.H
| | |-- IPMITOOL.C
| | |-- Ipmitool.exe
| | |-- ISA.C
| | |-- ISA.H
| | |-- Makefile
| | |-- PCIA.ASM
| | |-- PCI.C
| | |-- PCI.H
| | |-- README.TXT
| | `-- swlicens2005.pdf
| `-- MAXDOS.IMG
|-- EFI
| `-- BOOT
| |-- BOOTX64.efi
| |-- fonts
| | `-- unicode.pf2
| |-- grub.cfg
| |-- grubx64.efi
| |-- Shell.efi
| `-- splashimage.jpg
|-- efiboot.img
|-- grldr
|-- menu.lst
|-- ServiceDiag
| |-- initrd.img
| `-- vmlinuz
`-- splashimage.bmp
7 directories, 28 files
[root@labserver ~]# ls mkiso/
EFI ServiceDiag centos76 efiboot.img grldr menu.lst
[root@labserver ~]# genisoImage -r -T -J -V "Pedro_ISO" \
-b grldr -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \
-eltorito-alt-boot -e efiboot.img -no-emul-boot \
-v -o ../Pedro_iso.iso mkiso/
本文分享自 WriteSimpleDemo 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!