无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: wintoflash

[原创] NTBOOT & wimboot for UEFI GRUB2

    [复制链接]
发表于 2022-6-2 21:42:20 | 显示全部楼层
回复

使用道具 举报

发表于 2022-8-10 08:46:31 | 显示全部楼层
楼主有没有办法给 squash4.c 加上 zstd 支持?

最近 linux 5.19 已经支持 zstd 压缩的 squashfs 固件启动了,但是 grub2 无法读取 zstd 压缩的 squashfs 文件,因为 gub2 的 squashfs 模块只支持 zlib、lzo、xz 三种压缩方式,缺乏 zstd 压缩的支持。

最近我尝试把 ubuntu 备份成 zstd 压缩的 squashfs 文件,无法启动,因为读取不了里面的内核文件,压缩成 zlib (默认)就可以,但是文件尺寸大一两G。
回复

使用道具 举报

发表于 2022-10-6 20:47:34 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2022-10-9 11:41:08 | 显示全部楼层
学习学习
回复

使用道具 举报

发表于 2022-10-9 22:52:40 | 显示全部楼层
支持一下支持一下支持一下
回复

使用道具 举报

发表于 2022-10-12 13:54:11 来自手机 | 显示全部楼层
谢谢,学习一下
回复

使用道具 举报

发表于 2022-10-13 22:36:20 | 显示全部楼层
wintoflash 发表于 2020-7-5 08:18
http://reboot.pro/topic/20695-ntboot-problem-using-windows-10-bootmgr-to-boot-vhds-bsod-0xc00000bb ...

使用该bootmgr.exe+ntboot成功引导vhdx
旧台式电脑,bios+mbr,有三块硬盘,其中ssd检测出问题,上面有引导分区和系统分区,担心突然坏掉,就在第一块机械硬盘上做了一个备份引导,并用vhdx做了一个备份系统
折腾了好几天,又踩了几个坑:
    search --fs-uuid用不了
    启动盘就是(hd0)
    halt用不了
    vhdx安装系统时,引导分区选择备份启动盘的第一个分区,然后再恢复到grub2引导
再次感谢w大!
回复

使用道具 举报

发表于 2022-10-14 09:00:53 | 显示全部楼层
太高深了
回复

使用道具 举报

发表于 2022-10-14 16:53:58 | 显示全部楼层
看看这个帖子,学习wimboot的使用技巧啊
回复

使用道具 举报

发表于 2022-10-16 15:34:37 | 显示全部楼层
本帖最后由 青青草 于 2022-10-16 15:43 编辑

请教大神:
       如果要把文件和文件夹分别射入不同的文件夹,应如何书写?
如,文件winpeshl.ini   射入 \Windows\Syatem32
       文件explorer.exe  射入 \Program Files                                                                                                                       文件夹yong        射入 \Program Files
可以这样书写么:
         wimboot --index=2 \
                        @:bootmgfw.efi:(wimboot)/bootmgfw.efi \                                       
                        @:winpeshl.ini:${prefix}/winpeshl.ini \
        wimboot --inject=%ProgramFiles% \       
                        @:explorer.exe:${prefix}/explorer.exe \
                        @:yong:${prefix}/yong \



点评

不能  详情 回复 发表于 2022-10-17 11:15
回复

使用道具 举报

 楼主| 发表于 2022-10-17 11:15:28 | 显示全部楼层
青青草 发表于 2022-10-16 15:34
请教大神:
       如果要把文件和文件夹分别射入不同的文件夹,应如何书写?
如,文件winpeshl.ini   射 ...

不能

点评

哪,可以射入文件夹么?  详情 回复 发表于 2022-10-17 11:18
回复

使用道具 举报

发表于 2022-10-17 11:18:05 | 显示全部楼层

哪,可以射入文件夹么?

点评

不能。 这种事 注入一个批处理不就搞定了吗  详情 回复 发表于 2022-10-17 11:23
回复

使用道具 举报

 楼主| 发表于 2022-10-17 11:23:30 | 显示全部楼层
青青草 发表于 2022-10-17 11:18
哪,可以射入文件夹么?

不能。
这种事 注入一个批处理不就搞定了吗

点评

好的。谢谢!  详情 回复 发表于 2022-10-17 11:52
回复

使用道具 举报

发表于 2022-10-17 11:52:17 | 显示全部楼层
wintoflash 发表于 2022-10-17 11:23
不能。
这种事 注入一个批处理不就搞定了吗

好的。谢谢!
回复

使用道具 举报

发表于 2022-10-20 17:33:55 | 显示全部楼层
grub2 在引导时怎么添加软键盘!???

点评

什么软键盘? 看不懂  详情 回复 发表于 2022-10-20 17:38
回复

使用道具 举报

 楼主| 发表于 2022-10-20 17:38:16 | 显示全部楼层
zczc8888 发表于 2022-10-20 17:33
grub2 在引导时怎么添加软键盘!???

什么软键盘?
看不懂
回复

使用道具 举报

发表于 2022-10-20 17:46:15 | 显示全部楼层
wintoflash 发表于 2022-10-20 17:38
什么软键盘?
看不懂

就是虚拟键盘 没有键盘硬件时,代替键盘输入

点评

连触摸屏驱动都没有,怎么可能支持软键盘?  详情 回复 发表于 2022-10-20 17:50
回复

使用道具 举报

 楼主| 发表于 2022-10-20 17:50:19 | 显示全部楼层
zczc8888 发表于 2022-10-20 17:46
就是虚拟键盘 没有键盘硬件时,代替键盘输入

连触摸屏驱动都没有,怎么可能支持软键盘?
回复

使用道具 举报

发表于 2022-10-20 17:53:10 | 显示全部楼层
wintoflash 发表于 2022-10-20 17:50
连触摸屏驱动都没有,怎么可能支持软键盘?

community.fydeos.com/t/topic/4477  就是这个别人是怎么做出来的?

点评

这个虚拟键盘是固件提供的,比如surface就带这个。  详情 回复 发表于 2022-10-20 19:27
回复

使用道具 举报

 楼主| 发表于 2022-10-20 19:27:25 | 显示全部楼层
zczc8888 发表于 2022-10-20 17:53
community.fydeos.com/t/topic/4477  就是这个别人是怎么做出来的?

这个虚拟键盘是固件提供的,比如surface就带这个。
回复

使用道具 举报

发表于 2022-10-20 19:49:36 | 显示全部楼层
wintoflash 发表于 2022-10-20 19:27
这个虚拟键盘是固件提供的,比如surface就带这个。

实现音量+- 电源键 来控制grub2 的上下移动 进入系统要修改grub2 源码嘛?

点评

这要看 UEFI 固件是否把音量/电源按键当作键盘来对待了。 执行getkey命令后按音量或者电源键,查看是否能获取到键盘扫描码。 如果获取到了键盘扫描码,用 setkey 命令把它映射成某一个按键就行了。 如果连了鼠  详情 回复 发表于 2022-10-20 21:22
回复

使用道具 举报

 楼主| 发表于 2022-10-20 21:22:45 | 显示全部楼层
zczc8888 发表于 2022-10-20 19:49
实现音量+- 电源键 来控制grub2 的上下移动 进入系统要修改grub2 源码嘛?

这要看 UEFI 固件是否把音量/电源按键当作键盘来对待了。
执行getkey命令后按音量或者电源键,查看是否能获取到键盘扫描码。
如果获取到了键盘扫描码,用 setkey 命令把它映射成某一个按键就行了。

如果连了鼠标的话,可以用鼠标上下移动,左右键映射上下方向键和回车/ESC。
加载 efi_mouse 模块,执行 terminal_input --append mouse 就行。

点评

笔记本+usb鼠标 insmod efi_mouse terminal_input --append mouse 试了试,不成功  详情 回复 发表于 2022-10-20 22:20
回复

使用道具 举报

发表于 2022-10-20 22:20:51 | 显示全部楼层
wintoflash 发表于 2022-10-20 21:22
这要看 UEFI 固件是否把音量/电源按键当作键盘来对待了。
执行getkey命令后按音量或者电源键,查看是否 ...

笔记本+usb鼠标
insmod efi_mouse
terminal_input --append mouse
试了试,不成功

点评

可能是你的uefi固件不支持鼠标。输入mouse_test命令看看有没有识别到鼠标,如果识别到的话移动鼠标看看有没有输出。  详情 回复 发表于 2022-10-20 22:30
回复

使用道具 举报

 楼主| 发表于 2022-10-20 22:30:03 | 显示全部楼层
风.轻扬 发表于 2022-10-20 22:20
笔记本+usb鼠标
insmod efi_mouse
terminal_input --append mouse

可能是你的uefi固件不支持鼠标。输入mouse_test命令看看有没有识别到鼠标,如果识别到的话移动鼠标看看有没有输出。

点评

重新测试成功,移动鼠标选择菜单项,左键执行 前次不成功的原因是esp分区的EFI\grub\x86_64-efi文件夹下面没有efi_mouse.mod,不理解为什么 然后,从grub2-latest.tar.gz中复制过去,OK  详情 回复 发表于 2022-10-22 17:48
回复

使用道具 举报

发表于 2022-10-21 10:01:05 | 显示全部楼层
zczc8888 发表于 2022-10-20 19:49
实现音量+- 电源键 来控制grub2 的上下移动 进入系统要修改grub2 源码嘛?

好像可以! 还有一个问题 如果grub 有主题set theme=$prefix/themes/start/theme.txt; 在这个themes.txt文件中怎么引用 grub.cfg 中定义的环境变量,用$啥的都不行?

点评

你只能在 label 组件中使用 GRUB 环境变量。 根据不同使用环境,有不同方式: @@ 加上变量名。在主题加载时,读取这个变量的值,显示出来。如果后来这个变量的值改变了,是不会刷新显示的。 因此,使用这种方法  详情 回复 发表于 2022-10-21 10:39
回复

使用道具 举报

 楼主| 发表于 2022-10-21 10:39:16 | 显示全部楼层
本帖最后由 wintoflash 于 2022-10-21 10:40 编辑
zczc8888 发表于 2022-10-21 10:01
好像可以! 还有一个问题 如果grub 有主题set theme=$prefix/themes/start/theme.txt; 在这个themes.txt ...

你只能在 label 组件中使用 GRUB 环境变量。
根据不同使用环境,有不同方式:
  1. + label { text = "@@grub_cpu" }
复制代码

@@ 加上变量名。在主题加载时,读取这个变量的值,显示出来。如果后来这个变量的值改变了,是不会刷新显示的。
因此,使用这种方法,你要确保在主题加载前就设置好了变量的值。
  1. + label {var = "var_time" hook = "date --human --set=var_time" }
复制代码

var = 变量名。这种方式是每秒执行一次 hook 中指定的命令,并刷新显示变量的值。
可以参考用户手册 https://a1ive.github.io/grub2_gfx_zh.html
和 grubfm 中的主题 https://github.com/a1ive/grub2-f ... ack/hwinfo/grub.txt
回复

使用道具 举报

发表于 2022-10-21 12:19:12 | 显示全部楼层
纯技术贴
回复

使用道具 举报

发表于 2022-10-21 14:00:23 | 显示全部楼层
wintoflash 发表于 2022-10-21 10:39
你只能在 label 组件中使用 GRUB 环境变量。
根据不同使用环境,有不同方式:

theme.txt 中定义全局属性desktop-image指定桌面背景图片,这个他的值能不能用grub.cfg 的定义的环境变量,我测试是都不行的

点评

不能。只有label组件支持变量。  详情 回复 发表于 2022-10-21 15:49
回复

使用道具 举报

 楼主| 发表于 2022-10-21 15:49:43 | 显示全部楼层
zczc8888 发表于 2022-10-21 14:00
theme.txt 中定义全局属性desktop-image指定桌面背景图片,这个他的值能不能用grub.cfg 的定义的环境变量, ...

不能。只有label组件支持变量。
回复

使用道具 举报

发表于 2022-10-22 17:48:19 | 显示全部楼层
wintoflash 发表于 2022-10-20 22:30
可能是你的uefi固件不支持鼠标。输入mouse_test命令看看有没有识别到鼠标,如果识别到的话移动鼠标看看有 ...

重新测试成功,移动鼠标选择菜单项,左键执行
前次不成功的原因是esp分区的EFI\grub\x86_64-efi文件夹下面没有efi_mouse.mod,不理解为什么
然后,从grub2-latest.tar.gz中复制过去,OK
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-28 19:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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