PC, 하드웨어

chenall GRUB4DOS 0.4.6a UEFI 설치

inseul인슬 2024. 4. 19. 08:57

이전 글: chenall GRUB4DOS 0.4.6a 설치 (tistory.com)

이번에는 UEFI다. BIOS로만 돌아가는 기존과 달리 중국 따거 분들께서 UEFI까지 만들어 아직도 업데이트 해주신다.

 

GitHub - chenall/grub4dos: 外部命令和工具源码:https://github.com/chenall/grubutils 下载:

 

GitHub - chenall/grub4dos: 外部命令和工具源码:https://github.com/chenall/grubutils 下载:

外部命令和工具源码:https://github.com/chenall/grubutils 下载: - chenall/grub4dos

github.com

grub4dos-for_UEFI-2024-02-26.7z
1.92MB

 

필자는 ESP_EFI 파티션을 따로 만들어 관리하는 걸 선호한다. 그러므로 ESP_EFI 파티션을 먼저 만들어 준다.

 

 

ESP 파티션에 EFI 폴더를 만들어준다.

 

 

EFI 폴더에 boot 폴더도 만들어 주고 grub 폴더도 만들어 준다.

 

 

boot 폴더에는 GRUB4DOS 0.4.6a UEFI의 BOOTX64.EFI 또는 BOOTIA32.EFI를 넣어준다. 같이 넣어도 된다.

 

 

grub 폴더에는 menu.lst를 넣어준다. 아래는 GRUB4DOS UEFI의 기본 menu.lst다.

 

# 这是一个样品 menu.lst 文件。你应该对它做些改动。
# 它必须是 UTF-8 编码,以支持多种语言。
# 字体应该是 unifont.hex 格式。



#设置倒计时(秒)
timeout 30

#设置第一项为默认值
default 1

#设置字符颜色(高32位是背景色,低32位是前景色。在命令行执行:echo -rrggbb,可查看对应的颜色。)
#color normal=0xff9933 highlight=0xffff00 helptext=0xff00ff heading=0x66ff00

#设置图形模式(可使用 graphicsmode 探测系统支持的图形模式)
#graphicsmode -1 800(水平像素)

#加载背景图
#splashimage /efi/grub/splashimage.jpg || splashimage /boot/grub/splashimage.bmp
#加载unifont字体(如果不是 16*16 字体,需增加参数,如 --font-high=24)
#font /efi/grub/unifont.hex.gz

#获取水平像素,加载不同尺寸的字体及背景图
#calc *0x834c > nul ;; set a=%@retval%
#if %a%>=801 && font --font-high=40 /efi/grub/menu40.hex 
#if %a%<=800 && font /efi/grub/unifont.hex.gz && splashimage /efi/grub/lt.jpg

#判断启动环境:if %@uefi%==64    0/32/64=bios/uefi_x86/uefi_x64

#设置菜单框
#setmenu --box x=4 w=60 y=6 h=9 l=2
#设置中文菜单按键帮助
#setmenu --lang=zh
#设置自动菜单编号
#setmenu --auto-num-on 
#设置字符串信息
#setmenu --string=x=y=颜色="字符串"
#设置日期时间
#setmenu --string=x=y=颜色="date&time=yyyy-MM-dd  HH:mm:ss"
#设置倒计时
#setmenu --timeout=x=y=颜色
#更多菜单编辑功能、动画、图像菜单等等,可参考http://bbs.wuyou.net/forum.php?mod=viewthread&tid=369720&extra=page%3D3

title 启动 efi 文件
chainloader /efi/boot/grub2x64.efi

title 启动 windows
chainloader /efi/microsoft/boot/bootmgfw.efi

title 启动虚拟光盘
find --set-root /cdrom.iso
map /cdrom.iso (0xff)
chainloader (0xff)

title 启动虚拟光盘(加载到内存)
find --set-root /cdrom.iso
map --mem /cdrom.iso (0xff)
chainloader (0xff)

title 启动存在的光盘(cd0)
chainloader (cd0)

title 启动虚拟硬盘
find --set-root /boot/hdd.img
map /boot/hdd.img (hd)
chainloader (hd-1)

title 启动虚拟硬盘(加载到内存)
find --set-root /boot/hdd.img
map --mem /boot/hdd.img (hd)
chainloader (hd-1)

title 启动存在的硬盘(hd0)
chainloader (hd0)

title 启动其他菜单
configfile /efi/grub/menu2.lst

title 启动 Linux Porteus 5.0 x86_64 openbox
kernel /porteus/vmlinuz copy2ram
initrd /porteus/initrd.xz

#假设外部命令位于 /efi/grub/ext/
#假设 WIM/VHD(或者启动文件夹) 位于 (hdx,y)/boot/imgs/
#假设 windows 的 winload.efi 位于 (hdx,y)

title 使用外部命令 ntloader 启动 WIM/VHD (kernel方案1)
uuid (hdx,y)
kernel /efi/grub/ext/ntloader uuid=%?% file=/boot/imgs/winpe.wim
initrd /efi/grub/ext/initrd.lz1

title 使用外部命令 ntloader 启动 WIM/VHD (kernel 方案2)
find --set-root /boot/imgs/winpe.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
kernel /efi/grub/ext/ntloader uuid=%?% file=/boot/imgs/winpe.wim
initrd /efi/grub/ext/initrd.lz1

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案1)
uuid (hdx,y)
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案2)
find --set-root /boot/imgs/winpe.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim

title 使用外部命令 ntloader 启动 Windows 系统 (kernel 方案)
uuid (hdx,y)
kernel /efi/grub/ext/ntloader uuid=%?%
initrd /efi/grub/ext/initrd.lz1

title 使用外部命令 ntloader 启动 Windows 系统 (chainloader 方案)
uuid (hdx,y)
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?%

title 使用外部命令 NTBOOT 启动 WIM/VHD (方案1)
find /efi/grub/ext/ntboot | set bd=
find --set-root /boot/imgs/winpe.wim
%bd%/efi/grub/ext/ntboot  /boot/imgs/winpe.wim
boot

title 使用外部命令 NTBOOT 启动 WIM/VHD (方案2)
find /boot/imgs/winpe.vhd | set bd=
/efi/grub/ext/ntboot  %bd%/boot/imgs/winpe.vhd winload=/Windows/System32/boot/winload.efi minint=1
boot

title 使用外部命令 NTBOOT 启动 Windows 系统
/efi/grub/ext/ntboot  (hdx,y)/win
boot

title 命令行
commandline

title 退出grub4dos
exit_g4d

title 重启
reboot

title 关机
halt

 

 

여기서 한 술 더 떠서 꾸며줄 거다.

 

graphicsmode -1 1920
splashimage /efi/grub/background.jpg
font --font-high=16 /efi/grub/unifont-15.1.05.hex.gz
setmenu --lang=en --font-spacing=8:20 --highlight-full --ver-on --triangle-off
color light-gray/black 0x0fffffffffffff white/black white/black
setmenu --auto-num-on
setmenu --box x=40 y=8 w=24 h=6 l=0
setmenu --timeout=37=9=0x0000000000ffff
setmenu --help=80=46=0x0000000000ffff

 

background.jpg
unifont-15.1.05.hex.gz
0.89MB

 

그럼 GRUB4DOS가 스이세이 테마로 바뀐다.