veket官方网站论坛

veketx

 找回密码
 要注册
搜索
楼主: 自由飞翔

weiqiren-26(2026.03.20更新)

[复制链接]
发表于 2026-3-18 17:03 | 显示全部楼层
自由飞翔 发表于 2026-3-18 13:49
经测试:pupsfs=%?_UUID% psave=%?_UUID% 或pupsfs=$uuid psave=$uuid 或pupsfs=${bootuuid} psave=${boo ...


不应该呀,我这边都可以启动啊?
你是不是文件夹名字不对?
或者grub4dos/grub2菜单搞混了?

出错有什么提示?截图看下。
 楼主| 发表于 2026-3-18 17:53 | 显示全部楼层
liuzhaoyzz 发表于 2026-3-18 17:03
不应该呀,我这边都可以启动啊?
你是不是文件夹名字不对?
或者grub4dos/grub2菜单搞混了?


回家测试又可以了,启动速度还很快!

另,请普及下以下代码的使用方法
grub2启动weiqr_26.iso菜单示例:
menuentry "/veket/weiqiren-26-26.03.14/weiqr_26.iso" "/veket/weiqiren-26-26.03.14/weiqr_26.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/vmlinuz find_iso=$2 PSUBDIR=/ pmedia=cd pfix=fsck
initrd (loop)/initrd.gz
}

grub2菜单中计算分区uuid示例:
menuentry "weiqr" "/weiqr/vmlinuz" {
search --no-floppy --set --file "/weiqr/vmlinuz";probe -u ($root) -s uuid;echo $uuid
linux /weiqr/vmlinuz pupsfs=$uuid psave=$uuid psubdir=/weiqr
initrd /weiqr/ucode.cpio /weiqr/initrd.gz
}

这两个grub2的启动代码是放在哪里才能使用呢?这块我还未彻底搞明白,谢谢!
发表于 2026-3-18 20:37 | 显示全部楼层
grub2菜单位置
grub2启动的时候需要加载默认菜单,这个菜单的位置、名称都可以自定义的,先说我自己定制的grub2菜单,BIOS下会全盘搜索/boot/grub2/grubbios.cfg作为默认菜单,UEFI下会全盘搜索/boot/grub2/grub.cfg作为默认菜单,不同盘符可能会有多个同路径+同名字的菜单,默认会找到启动文件所在的盘符的那个菜单,如果启动盘符没有这两个菜单,就会找其他盘符里面的这两个菜单,因此,我定制的grub2具有超强的“生存能力”,即使C盘被格式化了,其他盘有启动文件+启动菜单,grub2仍然可以启动。
BIOS下面,启动文件一般是通过windows的启动管理器bootmgr中转到grub2;UEFI下面的启动文件是FAT32/ESP分区里面的那个grub2x64.efi。

Windows定制Grub2(包括BIOS和UEFI、自定义Grub2路徑) - GRUB2 - 无忧启动论坛 - Powered by Discuz!
http://wuyou.net/forum.php?mod=v ... B%E5%AE%9A%E5%88%B6
定制grub2比较复杂,原理如果你想深入研究,可以看下上面的帖子。

SX_veket安装器_for_windows_2025-02-04压缩包中,有个\grub2\定制grub2-BIOS+UEFI.bat批处理文件,就是定制这两个菜单文件的,你可以研究下,有点复杂。
@echo off
rem echo 生成grub2-UEFI-grub2x64.efi
grub-mkimage -d x86_64-efi -p /boot/grub2 -c bootconfig.cfg -o grub2x64.efi -O x86_64-efi acpi all_video blocklist boot cat chain commandline configfile conv cpio disk echo efi_gop efi_netfs efi_uga efiload efinet exfat ext2 extcmd fat fb font getargs getkey gfxterm gzio halt help http iso9660 linux linux16 linuxefi loadenv loopback ls lzopio map minicmd net normal ntboot ntfs part_gpt part_msdos partnew probe progress reboot regexp sbpolicy search tar terminal terminfo test tftp udf version video_bochs video_cirrus vhd wimboot xzio gfxterm_background jpeg png tga bsd zfs xfs lvm

rem echo 生成grub2-BIOS-corebios.img和g2ldr,增加了terminal gfxterm vbe vga png partnew probe wimboot ntboot reboot regexp
rem echo core1.img大小36KB,超过了32KB,精简了ntfs和ntfscomp模块,没什么意思,不能写入MBR,只能作为第二引导。
rem grub-mkimage.exe -d i386-pc -p /boot/grub2 -c bootconfigbios.cfg -o core1.img -O i386-pc biosdisk part_msdos fat ntfscomp search_fs_file
rem BCD-g2ldr引导模式,不能加linux linux16、echo、terminal gfxterm vbe vga udf gzio xzio  reboot halt,否则会出错。“The application or operating system couldn't be loaded because required  file is missing or contains errors.”
rem grub-mkimage.exe -d i386-pc -p /boot/grub2 -c bootconfigbios.cfg -o core1.img -O i386-pc biosdisk part_msdos fat ntfs ntfscomp ext2 iso9660 search_fs_file search boot
grub-mkimage.exe -d i386-pc -p /boot/grub2 -c bootconfigbios.cfg -o core1.img -O i386-pc biosdisk part_msdos fat ntfs ntfscomp ext2 iso9660 search boot

grub-mkimage.exe -d i386-pc -p /boot/grub2 -c bootconfigbios.cfg -o core2.img -O i386-pc biosdisk boot cat chain configfile cpio echo exfat ext2 extcmd fat fb font gzio halt help iso9660 linux linux16 loopback ls lua lzopio memdisk minicmd newc normal ntfs ntldr part_gpt part_msdos search sleep tar test udf xzio terminal gfxterm vbe vga png partnew probe wimboot ntboot reboot regexp

copy /b i386-pc\lnxboot.img+core1.img g2ldr
copy /b i386-pc\cdboot.img+core2.img grub2cd.img

================================================
另,请普及下以下代码的使用方法
grub2启动weiqr_26.iso菜单示例:
menuentry "/veket/weiqiren-26-26.03.14/weiqr_26.iso" "/veket/weiqiren-26-26.03.14/weiqr_26.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/vmlinuz find_iso=$2 PSUBDIR=/ pmedia=cd pfix=fsck
initrd (loop)/initrd.gz
}

grub2菜单中计算分区uuid示例:
menuentry "weiqr" "/weiqr/vmlinuz" {
search --no-floppy --set --file "/weiqr/vmlinuz";probe -u ($root) -s uuid;echo $uuid
linux /weiqr/vmlinuz pupsfs=$uuid psave=$uuid psubdir=/weiqr
initrd /weiqr/ucode.cpio /weiqr/initrd.gz
}
================================================

上面的grub2菜单,就放在/boot/grub2/grubbios.cfg(BIOS启动)或者/boot/grub2/grub.cfg(UEFI启动)中的,这只是我的做法,其他人定制的grub2放置的目录名字和菜单名字可能不同的。
把这两项放在第一项menuentry {......}就可以了,我设置的是默认启动第二项(第一项我默认启动windows)。

你们似乎都喜欢用grub4dos启动veket/linux,其实grub4dos比较擅长启动PE/Windows,linux绝大多数发行版都是用的grub2作为默认启动器,基本上没有一个发行版采用grub4dos作为默认引导器,所以我更建议用grub2启动veket/linux,因为grub2有超强的文件碎片解析,当某个iso文件散列地存放在硬盘的不同“簇”中时,grub4dos容易出问题,要求碎片少于32个,grub2几乎没有限制。还有grub2支持loopback方案启动veket/linux,这也是grub2独有的,因为很多linux发行版内部启动命令都是grub2的命令,grub4dos根本做不到loopback方案整体启动linux.iso。如果想玩veket/linux深入点,可以说grub2启动器是必须了解掌握的。

grub2要想能够启动,需要写引导+写菜单;前面说了BIOS就是引导扇区,或者用windows的bootmgr中转启动g2ldr引导头文件;UEFI就是需要UEFI固件中有指向/EFI/boot/grub2x64.efi引导序列+/EFI/boot/grub2x64.efi文件存在,这个引导序列,你们都喜欢用Easybcd,这个软件需要.net支持,建议换用更强大的BOOTICEx86.exe(SX_veket安装器2025-02-04压缩包有的),只有447KB,pauly用VC写的,通杀xp-win11各种系统,无需.net运行库支持。还需要很多支持文件及菜单,因此必须要用批处理搞定这些事情才行。

还有什么不明白的尽管问。
 楼主| 发表于 2026-3-18 20:46 | 显示全部楼层
liuzhaoyzz 发表于 2026-3-18 20:37
grub2菜单位置
grub2启动的时候需要加载默认菜单,这个菜单的位置、名称都可以自定义的,先说我自己定制的g ...

谢谢!我先认真学习、消化汲收。
发表于 2026-3-18 20:55 | 显示全部楼层
自由飞翔 发表于 2026-3-18 20:46
谢谢!我先认真学习、消化汲收。


你可以先用SX_Veket_Puppy_Installer_for_linux运行下,选择以前的包含veket关键字的某个iso,就可以生成grub2启动所需的一些列引导+支持文件+菜单文件,然后把那两段菜单粘贴到合适的位置即可。E:\boot\grub2\grub.cfg菜单示例:

set default=1
set fallback=1
set timeout=3
set pager=20
set grub_draw_border=1

#设定菜单字体及背景颜色
set menu_color_normal=white/black
set menu_color_highlight=white/blue

#loopback -m ramdisk /boot/grub2/unicode.xz
#loadfont (ramdisk)/grub2/fonts/unicode.pf2
#set locale_dir=(ramdisk)/grub2/locale
#set lang=zh_CN
#set gfxmode=auto,800x600,1024x768
#terminal_output gfxterm

set locale_dir=/boot/grub2/locale
set lang=zh_CN
loadfont /boot/grub2/fonts/unicode.pf2
set gfxterm_font=unicode
#set gfxmode=auto,800x600,1024x768
set gfxmode=1024x768,800x600,auto
terminal_output gfxterm
#background_image /boot/grub2/xxx.jpg

menuentry "0.Windows" "/EFI/Microsoft/Boot/bootmgfw.efi" --hotkey=0 {
search -n -s -f $2
chainloader $2
}

#插入在这里:
#grub2整体启动weiqr_26.iso菜单示例:
menuentry "/veket/weiqiren-26-26.03.14/weiqr_26.iso" "/veket/weiqiren-26-26.03.14/weiqr_26.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/vmlinuz find_iso=$2 PSUBDIR=/ pmedia=cd pfix=fsck
initrd (loop)/initrd.gz
}

#grub2解开启动veket.iso,菜单中计算分区uuid示例:
menuentry "weiqr" "/weiqr/vmlinuz" {
search --no-floppy --set --file "/weiqr/vmlinuz";probe -u ($root) -s uuid;echo $uuid
linux /weiqr/vmlinuz pupsfs=$uuid psave=$uuid psubdir=/weiqr
initrd /weiqr/ucode.cpio /weiqr/initrd.gz
}


menuentry "/veket/weiqiren-26-26.03.14/weiqr_26.iso" "/veket/weiqiren-26-26.03.14/weiqr_26.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/vmlinuz find_iso=$2 PSUBDIR=/ pmedia=cd pfix=fsck
initrd (loop)/initrd.gz
}

一段menuentry {......}就代表一个引导项。
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛,veketx官方网站论坛,微器人 ( 粤ICP备 11052856 )

GMT+8, 2026-3-21 12:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表