无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 38908|回复: 180
打印 上一主题 下一主题

基于svbus驱动+grub4dos或grub2制作的UEFI-RAMOS和BIOS-RAMOS教程

    [复制链接]
跳转到指定楼层
1#
发表于 2020-12-11 12:05:25 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liuzhaoyzz 于 2020-12-31 08:42 编辑

基于svbus驱动+grub4dosgrub2制作的UEFI-RAMOSBIOS-RAMOS教程
用grub4dosUEFI或grub22020-12-10版本搭配svbus驱动,在wintoflash、2011yaya2007777 、sunsea等诸位大神的努力下,终于攻克了UEFI-RAMOS制作,这是不依赖于微软的ramdisk.sys驱动的全内存的UEFI-RAMOS全新方案,其实制作方法很简单,就是安装驱动+写引导菜单而已,只是还有很多方面没有进行具体验证,有待通过大家的讨论和实战进一步验证其稳定性、兼容性等各个方面,同时期待这个帖子的发布能够进一步引领大家研究基于primo驱动的全内存UEFI-RAMOS方案,起到一个抛砖引玉的作用。本文同时附带地讲了下BIOS-RAMOS下面的引导菜单。
1、软硬件要求
UEFI启动,现在的UEFI固件一般都是64位的,一般需要64位的WIN7、8、10操作系统,目前我成功地制作了基于svbusWIN7、WIN8、WIN10X64-RAMOS(注意WIN7企业版和旗舰版原生支持VHD启动,WIN7家庭版和专业版原生不支持VHD启动;WIN8专业版以上似乎都是原生支持VHD启动)推荐用WINNTSETUP安装在固定大小的VHD中,安装的时候优化设置中建议勾选关闭虚拟内存和休眠,物理内存≥VHD盘总空间的50%~70%+4GB,物理内存推荐8G或以上(越大越好),推荐用精简系统。
BIOS启动,WIN7企业版和旗舰版以上因为原生支持VHD启动,制作起来较为方便;XP/2003因为原生不支持VHD启动,需要离线注入svbus驱动才可以(这个我没有尝试),或者在线安装驱动之后拷贝到VHD中(这个我没有尝试),BIOS-RAMOS制作,还是推荐大家直接用芈员外的《RAMOS一键批处理多合一V3.8.7》的方案更好。
2、可能用到的工具和软件
grub4dos UEFI2020-12-15之后的版本或grub22020-12-15之后的版本,bootice,WINPE,WINNTSETUP单文件版,Windows安装包(可能是iso、esd、wim格式)、double drive或者驱动精灵,对于WIN7可能需要红毛樱木的ceomsx或者sinoxer的usb3驱动注入工具备用(WIN8以上不需要)。
我把部分工具分享到网盘里。https://cloud.189.cn/t/m6J3EvFnmIvu
微信扫描二维码登录即可下载。(免费的)
3VHD系统安装
WINNTSETUP安装系统教程(RAMOS新手入门帖) - RAMOS - 无忧启动论坛http://wuyou.net/forum.php?mod=viewthread&tid=411864&extra=page%3D1
需要注意:建议采用固定大小的VHD。
3.1如果VHD内部采用MBR分区表,只有一个NTFS分区方案(推荐)
对于g4e2020-12-15以后版本,需要用load/EFI/grub/ntfs_x64.efi加载ntfs_x64.efi驱动,否则g4e会出现” boot_image_handle notfound”的错误。
对于grub2,需要加载grub2-latest2020-12-17\arch\x64\builtin.txt最后加上 efiload模块,用build_grub.bat定制得到grubx64.efi,然后用efiload/EFI/grub/ntfs_x64.efi加载ntfs_x64.efi驱动,否则g4e在加载vhd镜像到内存之后会跳转回菜单。
3.2如果VHD内部采用MBR分区表,一个激活的FAT32分区+NTFS分区方案(不推荐)
(1)WIN7、WIN8的VHD内部要用FAT32+NTFS双分区,WIN10的VHD我测试了NTFS单分区也可以,分区格式我用的是MBR,这样子可以确保BIOS/UEFI双启动。(2)采用FAT32+NTFS双分区VHD内部的BCD和VHD外部的BCD都需要做相应调整,否则VHD和RAMOS无法启动。具体如下:
1)如果原来VHD内部是单分区,可以进入PE,挂载该VHD,用傲梅分区助手在硬盘前部划分出一个分区出来,创建一个新的FAT32分区,然后格式化,然后用bcdboot修复引导,bcdboot%windisk%:\windows /s %bootdisk%: /l zh-CN /f %bootmode%,注意windows所在的盘符,要选择VHD的NTFS所在分区的那个盘符。批处理网盘里面有。
然后删除NTFS分区里面的EFI和boot目录,(改个名字也可以),否则对于WIN7、WIN8,grub4dos UEFI版本加载的时候仍然会出现” boot_image_handlenot found”的错误。
2)分区调整好之后,还要调整VHD内部的BCD,(VHD的FAT32/ESP)\EFI\Microsoft\Boot\BCD,手工选择启动磁盘和启动分区,启动分区就是VHD内部的那个NTFS分区:
(3)VHD内部的启动分区调整好之后,还要调整VHD外部的BCD,否则用bootmgfw.efi启动vhd的时候会提示0xc000000f错误,(主硬盘FAT32/ESP)\EFI\Microsoft\Boot\BCD:

如果你原来的VHD系统是BIOS模式启动的,想增加UEFI启动模式,可以挂载VHD之后,用bcdboot命令一键修复引导,因为我记住不命令参数,为了方便,我提供一个《一键修复引导.bat》的批处理。
bcdboot %windisk%:\windows/s %bootdisk%: /l zh-CN /f %bootmode%

4svbus驱动安装
VHD系统安装好之后,进入VHD系统,安装svbus驱动,因为WIN10有比较严格的驱动签名机制,关闭BCD中驱动签名验证实测无效(可能需要按F8关闭签名验证吧,没有实际测试),开源的原版svbus没有通过win10的签名,我联系了朱玛,给svbus驱动添加了HT Srl证书签名。
(1)首先双击EVRootCA.reg注册表文件导入到注册表,否则svbus安装的时候可能会出现“试图将驱动程序添加到存储区时遇到问题”的错误。
   
(2) 直接右击安装svbus.inf,选择安装,可能会提示“系统策略组禁止安装此设备”,百度了下,开始——运行 ,输入 gpedit.msc 确定——计算机配置——管理模板——系统——设备安装——设备安装限制——禁止安装未有其他策略组描述的设备(在右边),双击后设置为“未配置”或“禁用”——确定。重启下电脑再次安装签名的svbus驱动。
   
(3)如果上面的方法安装失败,用添加过时硬件的方法添加,右击我的电脑→属性→设备管理器→选择本机→操作→添加过时硬件→安装我手动从列表选择的硬件(高级)→从磁盘安装→选择svbus.inf,信任HT Srl证书确认即可。
  
【温馨提示】svbus安装好之后最好重启下电脑,以确保驱动生效。
5VHD碎片消除(不一定必须)
VHD安装好之后可能有碎片,BIOS下启动如果碎片超过32个可能不行;UEFI下未验证,消除碎片的办法,不要挂载VHD,在PE中:
方法一,复制粘贴该vhd,副本就是没有碎片的,前提是需要硬盘有足够的剩余空间用于腾挪。
方法二,直接用wincontig分析并整理文件。前提也是需要硬盘有足够的剩余空间。
一般地来说,上面的方法对于机械硬盘很有效。对于ssd不一定有效果,因为ssd有FTL逻辑转换电路中间层,ssd直接格盘拷贝文件进去,应该就是连续的吧。
6、复制引导文件并建立引导菜单
上面的网盘里面有grub4dos和grub2引导器目录结构及其引导菜单示例.rar,解压缩到ESP或者FAT32引导分区,然后对照着自己vhd的路径作相应修改既可,grub4dos、grub2引导器最新版可以从官网下载更新。
(1)  UEFI可以用grub4dosUEFI来作为主引导。从grub4dosUEFI官网:http://grub4dos.chenall.net/categories/0-4-6a-for-UEFI/,下载grub4dos UEFI2020-12-09之后的版本,把bootx64.efi放到(ESP或者FAT32引导分区)\EFI\boot\目录下面,并用Bootice添加UEFI引导序列,指向(ESP或者FAT32引导分区)\EFI\boot\bootx64.efi,(有些主板能够自动添加这个UEFI引导序列)。

grub4dos UEFI默认引导菜单是\EFI\grub\menu.lst文件,文件要用utf-8编码,示例如下:
timeout 5
default 0
graphicsmode -1 800
#graphicsmode -1 -1 -1 24:32
#graphicsmode -1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32
find --ignore-floppies --set-root /efi/grub/unifont.hex.gz
font /efi/grub/unifont.hex.gz
#splashimage /efi/grub/lt.jpg
color normal=0x55ffff highlight=0xff00ff helptext=0xffff55 standard=0x55ffff border=0xaaaaaa
#color normal=0x07 highlight=0xE1 helptext=0x07 heading=0x02
setmenu --box x=4 w=60 y=6 h=9 l=2
setmenu --keyhelp=1 --lang=zh
setmenu --auto-num-on
setmenu --keyhelp=1=0x66ff00
setmenu --string=m=2=0x0000000000ffff="G4D维护菜单"
setmenu --string=s=1=0x8800000000ffff="date&time=yyyy-MM-dd  HH:mm:ss"
setmenu --timeout=90=2=0x88000000ffff
setmenu --hotkey -A [F4] commandline

title WIN7X64-SVBUS (/VHD/SX70211.vhd)
find --ignore-floppies --ignore-cd --set-root /EFI/grub/ntfs_x64.efi
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /VHD/SX70211.vhd
map --mem --top /VHD/SX70211.vhd (hd)
chainloader (hd-1)

(2)UEFI也可以用grub2来引导,wintoflash大神在官方的grub2.04的基础上做了大量的修改,使之支持map,代码已开源https://github.com/a1ive/grub/releases/tag/latest,若下载慢可用 http://gitd.cc/ 下载。把grubx64.efi放到(ESP或者FAT32引导分区)\EFI\boot\目录下面,并用Bootice添加UEFI引导序列,指向(ESP或者FAT32引导分区)\EFI\boot\grubx64.efi。

grub2默认引导菜单是\boot\grub\grub.cfg文件,文件要用utf-8编码,示例如下:
set default=0
set fallback=1
set timeout=2
set pager=20
set grub_draw_border=1

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

loopback -m ramdisk /boot/grub/unicode.xz
loadfont (ramdisk)/grub2/fonts/unicode.pf2
set locale_dir=(ramdisk)/grub2/locale
set lang=zh_CN
terminal_output gfxterm

#loadfont /boot/grub/fonts/unicode.pf2
#set locale_dir=/boot/grub/locale
#set lang=zh_CN
#set gfxmode=auto,800x600,1024x768
#terminal_output gfxterm

menuentry "0.Windows" "/EFI/Microsoft/Boot/bootmgfw.efi" --hotkey=0 {
        search --no-floppy --set --file $2
        chainloader $2
}

menuentry "SX70211.vhd-svbus" "/VHD/SX70211.vhd" {
search --no-floppy --set=ntfs --file /EFI/grub/ntfs_x64.efi
efiload ($ntfs)/EFI/grub/ntfs_x64.efi
search --no-floppy --set --file $2
map --mem --rt -l $2
}

menuentry "SX70211.vhd-svbus-ntboot" "/VHD/SX70211.vhd" {
search --no-floppy --set --file $2
map --mem --rt -l $2
ntboot --win --highest=no --efi=(vd0,1)/EFI/boot/bootx64.efi --winload=\\Windows\\System32\\winload.efi (vd0,1)
}


(3)BIOS下可以用grub4dosBIOS版本来引导。Grub4dosBIOS版本下载地址:http://grub4dos.chenall.net/categories/0-4-6a/,以常用的引导流程为例,一般是windows的bootmgr→BCD→grldr→menu.lst,从压缩包提取到任意分区根目录,推荐直接放到引导分区根目录下面,用bootice编辑\boot\bcd,添加“实模式启动项grub”,如下图所示。
  

grldr会依次查找\menu.lst→\boot\menu.lst→\boot\grub\menu.lst文件并加载,\menu.lst文件推荐用utf-8编码,菜单示例如下:
graphicsmode-1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32
#foregroundFFFFFF
#background0000AD
find--ignore-floppies --set-root /EFI/grub/unifont.hex.gz
font/EFI/grub/unifont.hex.gz
#colorwhite/blue blue/yellow light-red/blue 10
#colornormal=0x07 highlight=0xF1 helptext=0x07 heading=0x02 standard=0x07 border=0x09
colornormal=0x07 highlight=0xE1 helptext=0x07 heading=0x02
timeout5
default0

title0 boot Windows by zhaohj
find--set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
map() (hd0)
map(hd0) ()
map--rehook
find--set-root --devices=h /ntldr || find --set-root --devices=h /bootmgr
#rootnoverify(hd0,0)
chainloader/ntldr || chainloader /bootmgr

title WIN10X64-SVBUS (/VHD/ltsb-svbus.vhd)
find --ignore-floppies --ignore-cd --set-root /VHD/ltsb-svbus.vhd
map --mem --top /VHD/ltsb-svbus.vhd (hd0)
map (hd0) (hd1)
map --e820cycles=-1
map --hook
root (hd0,0)
chainloader (hd0,0)/bootmgr

7BIOS设置
前面我们安装系统都是用的windows的bootmgr/bootmgfw.efi作为主引导,微软的引导体系能够过“安全启动”,“安全启动”实质是微软为了加强其垄断地位打压linux,收取保护费的肮脏手段,grub4dos/grub2没有给微软交保护费,因此不能直接通过安全启动,一般地建议在BIOS设置中关闭安全启动,我随便从论坛找了个截图设置来说明问题。启动→安全启动→操作系统类型选择OtherOS。有的BIOS直接有Secure Boot的disable选项更直接。
论坛里面有绕过安全启动的方法,我感觉被微软封杀只是早晚的事情,我没什么研究,在此略过不表(惭愧)。


8、重启进入RAMOS
开机出现logo的时候按F12/F8/F9/F10启动快捷键选择从bootx64.efi或者grubx64.efi启动,然后选择想要启动的VHD-RAMOS即可。

不同品牌电脑的 U盘启动项快捷键http://wuyou.net/forum.php?mod=viewthread&tid=410907
  

  Svbus-UEFI-WIN10-RAMOS测速:

g4e+UEFI-WIN7-RAMOS

g4e/grub2+svbus+win8.1RAMOS
32GB内存=vhd占用6GB+Windows使用了1.6GB+剩余可用24.3GB

9UEFI-RAMOS未来的技术展望
基于svbus的UEFI-RAMOS启动原理是,grub4dos_UEFI或者grub2_UEFI用EFI_RESERVED_MEMORY类型的map --mem –top xxx.vhd (hd0)加载vhd到内存,配合svbus驱动,让windows识别这个内存盘,并从这个内存盘上面启动。这个启动流程类似于grub4dos_BIOS的map--mem+firadisk/winvblock/svbus磁盘仿真启动。
(1)svbus驱动速度的优化和提升还有一定的空间,svbus内存盘连续读写我测试大概4~5GB/S,而primo6.3.1驱动可以达到16GB/S,是svbus的4倍。
(2)基于svbus制作的RAMOS把物理内存分成了三部分:第一部分是grub4dos/grub2仿真到内存盘;第二部分是windows本身及其应用程序占用的内存;第三部分是剩余可用内存。第一部分内存盘中剩余部分只能用来安装程序,不能转化为第三部分剩余可用内存,造成浪费;而第三部分剩余可用内存也不能转化为第一部分内存盘空间,想安装程序在RAMOS_C盘,剩余空间又太小。
对比下BIOS下primo驱动制作的RAMOS,第一部分和第三部分内存可以互为转化,内存即硬盘,硬盘即内存,你有多大的内存就可以建立多大的内存盘,比如你有32GB内存,就可以建立32GB的内存盘,扣除windows本身运行所需的1.5GB内存之后,RAMOS的C盘空间可以和剩余可用内存在保持总和32-1.5=30.5GB不变的情况下,可以互为转化,C盘大可以安装测试很多软件,充分利用内存。
未来展望(已实现):grub4dos_UEFI或者grub2_UEFI的map xxx.vdf (hd0)加载vdf到虚拟磁盘C:盘,windows从这个虚拟磁盘C:盘接着启动,加载,比如primo内存盘驱动,由primo驱动把xxx.vdf加载到内存盘比如R:盘,这个xxx.vdf里面互换了C:盘和R:盘的mounteddevice,windows可以从这个内存盘C:盘继续启动,这个primo驱动是现成的,速度很快。
Svbus驱动方案,内存盘是由grub4dos/grub2创建的,而primo驱动方案内存盘则是由primo驱动创建的,这是这两个方案的区别。

10、特别鸣谢
不点——grub4dos项目发起人
Bean——grub4dos开发者
Chenall——grub4dos开发者
2011yaya2007777——grub4dos开发者
Wintoflash——grub2开发者
Pauly——bootice作者
Kai Schtrom——开源SVBus驱动作者,来自德国。
Sunsea——超版,svbus源代码级别的解读支持。
朱玛12345678——超版,给svbus驱动制作了签名,确保顺利安装。
Sinoxer——USB3_Drivers_Smart_Install_For_Win7
红毛樱木——ceomsx(USB3及NVME等驱动注入工具)
xyzy1008——飞天舞,1.9GB WIN8.1极限精简版,用于测试。
alacran——svbus-UEFI-RAMOS大量测试和反馈,来自墨西哥。
Liuzhaoyzz——超版,grub4dos/grub2+svbus-UEFI-RAMOS大量测试和反馈。
Wuwuzz——grub4dos/grub2问题反馈。
Xianglang——NTFS_x64.efi驱动加载测试和反馈。
t5481194版主——不同品牌电脑启动热键。
等等等等……


评分

参与人数 11无忧币 +65 收起 理由
amita + 5
yang77 + 5 百花齐放,争相斗艳!
caiiaccai + 5 很给力!
yanwc + 5 很给力!
xuxuezeng + 5 很给力!
ko20010214 + 5 很给力!
董大 + 5 赞一个!
luohanqing + 5 很给力!
freesoft00 + 5
朱玛12345678 + 10 前排支持!
20090101 + 10 很给力!

查看全部评分

2#
 楼主| 发表于 2020-12-11 12:05:36 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2021-1-15 10:00 编辑

二楼备用
推荐用WINNTSETUP安装在固定大小的VHD中
推荐用WINNTSETUP安装在固定大小的VHD中
推荐用WINNTSETUP安装在固定大小的VHD中


RAMOS Win7企业版启动后出现重启电脑提示 - RAMOS - 无忧启动论坛 - Powered by Discuz! http://bbs.wuyou.net/forum.php?m ... &extra=page%3D9
回复

使用道具 举报

3#
 楼主| 发表于 2020-12-11 12:05:48 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-13 14:17 编辑

三楼备用
大家可以尝试下,安装vhd的时候,用wimboot压缩模式,或者compact lzx形式,或者NTFS压缩形式安装系统,这样子RAMOS的C盘剩余空间能够大点,理论上来说NTFS压缩模式最稳定。

基于svbus驱动制作的RAMOS,windows开始菜单左键和右键都可以正常点开,系统托盘区的音量、WIFI也可以正常点开,基于微软的ramdisk.sys驱动的RAMOS则存在点击无效的问题。

svbus驱动制作的RAMOS可以看做是vhd系统的一个副本,这个副本直接运行于高位内存中,原系统是什么样子的,副本就是什么样子的。


回复

使用道具 举报

4#
 楼主| 发表于 2020-12-11 13:50:19 | 显示全部楼层

你试过了吗?来个教程

点评

推测的  详情 回复 发表于 2020-12-11 13:55
回复

使用道具 举报

5#
 楼主| 发表于 2020-12-11 14:57:16 | 显示全部楼层
xianglang 发表于 2020-12-11 14:47
BOOTICE 禁止签名是无用的,按 F8 选择禁止签名,只能当次有效。

至于 BIOS 下的 2003 安装,还是使用安 ...

F8还是太麻烦了,还是朱玛制作的带签名的驱动好啊!
回复

使用道具 举报

6#
 楼主| 发表于 2020-12-11 21:52:50 来自手机 | 显示全部楼层
sunsea 发表于 2020-12-11 19:03
其实一半是对的,第一个适用于修改了bootmgr的情况,比如说替换bcd名字。第二个适用于装未签名驱动。

        svbus驱动速度能看下还有提升的空间吗?

点评

应该还有,它用DO_DIRECT_IO的,如果用NETHEIR_IO的话应该能更快(少了处理内存映射的时间),但是代价就是蓝屏率更高……  详情 回复 发表于 2020-12-11 22:30
回复

使用道具 举报

7#
 楼主| 发表于 2020-12-12 13:50:46 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-12 17:58 编辑
y7y007 发表于 2020-12-11 19:55
厉害厉害!老心在ramos道路上越走越远了,强烈支持!继续发扬这种研究精神!

羋员外经常来论坛看看,回回帖子啊,很多问题我回答不了,我有成功的经验,但是没什么失败的教训。前期都是你从众多失败的路上一路摸索过来的。
回复

使用道具 举报

8#
 楼主| 发表于 2020-12-12 13:51:22 | 显示全部楼层
sunsea 发表于 2020-12-11 22:30
应该还有,它用DO_DIRECT_IO的,如果用NETHEIR_IO的话应该能更快(少了处理内存映射的时间),但是代价就 ...

如果你有兴趣,有时间的话,改下看看。
回复

使用道具 举报

9#
 楼主| 发表于 2020-12-13 16:52:44 来自手机 | 显示全部楼层
xianglang 发表于 2020-12-13 13:28
G4E支持这样 MAP 啊,不是非得映射到内存的。

       g4e确实支持直接map vhd启动,不带--mem的那种。reboot.pro似乎归类为“filedisk” 类别。
回复

使用道具 举报

10#
 楼主| 发表于 2020-12-14 20:05:41 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-22 20:40 编辑

来自墨西哥的alacran朋友,把这篇教程翻译成了英文版,在此表示感谢!
我上传上来。
170楼:http://reboot.pro/topic/22400-grub4dos-for-uefi/?p=217354
220楼最新:http://reboot.pro/topic/22400-grub4dos-for-uefi/?p=217444

Turorial-2 docx.7z

922.63 KB, 下载次数: 7, 下载积分: 无忧币 -2

Turorial-2 PDF.7z

903.84 KB, 下载次数: 9, 下载积分: 无忧币 -2

回复

使用道具 举报

11#
 楼主| 发表于 2020-12-17 07:42:30 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-17 07:43 编辑

现在可以使用MBR + NTFS单个活动分区来引导svbus RAMOS

1、g4e 2020-12-15版或更高版本
需要用load /EFI/grub/ntfs_x64.efi加载ntfs_x64.efi驱动,否则g4e会得到“boot_image_handle not found”的错误。
title WIN7X64-SVBUS (/VHD/SX70211.vhd)
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /VHD/SX70211.vhd
map --mem --top /VHD/SX70211.vhd (hd)
chainloader (hd-1)

2、grub2 2020-12-17版本
你需要编辑grub 2-latest 2020-12-17 \ arch \ x64 \ builtin . txt,添加efload模块,用build_grub.bat自定义grubx64.efi,然后用efload/EFI/grub/ntfs_x64.efi加载NTFS _ x64 . EFI驱动程序,否则g4e加载时会返回菜单。
menuentry "SX70211.vhd" "/VHD/SX70211.vhd" {
        efiload /EFI/grub/ntfs_x64.efi
        search --no-floppy --set --file $2
        map --mem --rt $2
}


感谢wintoflash、2011yaya2007777、xianglang!
ntfs_x64.efi等文件详见827楼:
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4195636&fromuid=298214
回复

使用道具 举报

12#
 楼主| 发表于 2020-12-19 14:51:12 来自手机 | 显示全部楼层
xuxuezeng 发表于 2020-12-19 14:37
楼主,你那个工具是天翼网盘,能不能分享一个百度网盘的啊?

        天翼云盘直接用微信扫码即可免费满速下载,为什么不用?分享的网盘太多了,更新资料的时候太麻烦,多了容易乱。
回复

使用道具 举报

13#
 楼主| 发表于 2020-12-19 21:48:42 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-19 22:15 编辑
ko20010214 发表于 2020-12-19 19:25
find --ignore-floppies --ignore-cd --set-root/VHD/SX10090329.vhd  这一句应该是寻找VHD文件来着的,那 ...


       照着葫芦还不会画个瓢了?!只需要把你的vhd那个路径和名字换下即可,可以放在任意一个FAT32/NTFS盘符。其他的不需要画蛇添足!你加个(hd0,4)倒底是几个意思?!

哦,说问题不讲透彻似乎不地道。find --set-root就是把找到的文件所在的盘符设置为“缺省”盘符,如果后面root不改变的话,只要以"/"开头的路径,都是这个“缺省”盘符,都不需要再次指明“root”了,这是g4d和g4e最最基本的用法了。

哦,linux必须要注意大小写,g4d,g4e,grub2都与linux有一定的渊源,你说找不到文件,是不是路径和文件名大小写有错误?

实在不会搞的话,网盘里面不是有范例吗?复制粘贴过去看看撒。

另外,vhdx格式我没试过,你成功了的话,正好做了个验证 ,填补了一项空白,呵呵。
回复

使用道具 举报

14#
 楼主| 发表于 2020-12-24 08:22:20 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-24 08:28 编辑
2012ccharles 发表于 2020-12-23 21:54
非常感谢楼主的分享!在我的联想R7000(固态+机械双硬盘)固态硬盘上制作成功win10 1903,前段时间通过各种 ...

很好的启动成功的反馈!
g4e找不到文件,指的是找不到什么文件?vdf还是ntfs_x64.efi文件?ntfs_64.efi要放在(启动分区)\EFI\grub\目录下面,试试加一句find --ignore-floppies --ignore-cd --set-root /EFI/grub/ntfs_x64.efi看看:


title WIN7X64-SVBUS (/VHD/SX70211.vhd)
find --ignore-floppies --ignore-cd --set-root /EFI/grub/ntfs_x64.efi
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /VHD/SX70211.vhd
map --mem --top /VHD/SX70211.vhd (hd)
chainloader (hd-1)


你把load /EFI/grub/ntfs_x64.efi这一句加上或者删除,看下提示找不到文件的,倒底是哪一句出的找不到文件的问题。

激活的问题,应该难不倒中国人吧。
        


点评

谢谢!显示“file not found”。现在grub2引导挺好用,今后有时间再按您的建议折腾,太费精力了。再一次感谢!  详情 回复 发表于 2020-12-24 12:05
回复

使用道具 举报

15#
 楼主| 发表于 2020-12-30 08:29:20 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-30 08:37 编辑
2012ccharles 发表于 2020-12-29 12:52
今天折腾g4e,按照“grub4dos和grub2引导器目录结构及其引导菜单示例“,只改了下efi\grub\menu.lst,启动 ...

你检查下unifont.hex.gz路径什么的,如果unifont.hex.gz有问题,大概率会有问题。
另外,网盘里面我重新整理上传了grub4dos和grub2引导器目录结构及其引导菜单示例。
按照道理上来说,同一个vhd,只要grub2能够成功,g4e也应该能够成功的呀。


看你的截图,428错误,应该是svbus数字签名没有搞定,导致的驱动启动失败。你再对照着帖子看看,是否有什么疏漏的,比如那个注册表EVRootCA.reg导入没有?网盘里面有word版本。

点评

谢谢楼主指导。 1.确认添加了“EVRootCA”注册表文件。 2.Grub2引导开机非常流畅。 2.刚刚重新下载“grub4dos和grub2引导器目录结构及其引导菜单示例”,将“菜单示例”\EFI\Boot\bootx64.efi替换esp分区(Z分区  详情 回复 发表于 2020-12-30 13:07
回复

使用道具 举报

16#
 楼主| 发表于 2020-12-30 10:17:22 | 显示全部楼层
wintoflash 发表于 2020-12-30 09:15
按理说,用ntboot启动的话,默认情况下是禁用了windows签名验证的 (当然在安全启动下强制开启),楼主有兴趣 ...

        禁用windows签名验证对于WIN7比较有效,感觉对于WIN10似乎不那么有效。现在已经有朱玛制作的签名版了,感觉还是签名版驱动好用的多。

安全启动好像就是从WIN8开始,微软才开始部署的吧。
回复

使用道具 举报

17#
 楼主| 发表于 2020-12-30 13:35:40 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-30 14:23 编辑
2012ccharles 发表于 2020-12-30 13:07
谢谢楼主指导。
1.确认添加了“EVRootCA”注册表文件。
2.Grub2引导开机非常流畅。

你的反馈图文并茂,虽然看不出问题倒底在哪里,但是的确是很好的反馈。

以我对g4e有限的了解,我也不懂为什么会黑屏,实体机我没有碰到过黑屏的情况。我估计是graphicsmode -1 800引起的吧,g4e那个帖子,以及国外reboot.pro上面,似乎也没见到过引导黑屏的现象。有点奇怪。     


哦,我又看了下g4e那个帖子,确实有反馈黑屏的。
342楼:
http://wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4172409&fromuid=298214
508楼:http://wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4182397&fromuid=298214
回复

使用道具 举报

18#
 楼主| 发表于 2020-12-30 18:02:55 来自手机 | 显示全部楼层
2012ccharles 发表于 2020-12-30 17:34
谢谢。不管怎么说,能见到菜单了。

你的ram.vhd是否放在某个根目录下?vhd有多大?你的高位内存有多大?一般地高位内存=总内存-4GB估算。      
回复

使用道具 举报

19#
 楼主| 发表于 2020-12-30 19:30:31 来自手机 | 显示全部楼层
2012ccharles 发表于 2020-12-30 18:36
是的,ram.vhd放在(hd1,3)的根目录下,7.5G。高位内存=16G-4G=12G?刚才又试了一下,加载这个ram.vhd菜单 ...

你的高位内存看起来是足够的,如果map过程中出现out of memory一般地表示没有足够连续的内存块,可是为啥grub2都可以呢?奇怪的很。你在选择菜单的时候按c键进入命令行,输入displaymem,截屏看看。看看length,最大的那个倒底是多少。      
回复

使用道具 举报

20#
 楼主| 发表于 2020-12-30 20:23:27 来自手机 | 显示全部楼层
      实在是匪夷所思
回复

使用道具 举报

21#
 楼主| 发表于 2020-12-31 08:38:52 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-31 08:52 编辑
2011yaya2007777 发表于 2020-12-31 08:03
2012ccharles :
你在这个电脑上,启动过 grub2 没有?是否可以加载图像和中文字库?

他说grub2可以启动vhd-ramos,应该是加载了中文字库的。
set default=0
set fallback=1
set timeout=2
set pager=20
set grub_draw_border=1

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

loopback -m ramdisk/boot/grub/unicode.xz
loadfont (ramdisk)/grub2/fonts/unicode.pf2
set locale_dir=(ramdisk)/grub2/locale
set lang=zh_CN
terminal_output gfxterm

一楼的这个unicode.xz,里面就是字库。

        
回复

使用道具 举报

22#
 楼主| 发表于 2020-12-31 08:44:03 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-31 09:04 编辑
2012ccharles 发表于 2020-12-30 22:37
谢谢。

下载了下面图片中的文件,去txt扩展名解压后的BOOTX64.EFI,置于esp分区EFI\boot\中。
error: no such command

这是哪个命令拼写打错了的原因。注意下空格,不能用中文空格。

1、方法一:
title WIN10-SVBUS
debug 3
find --set-root /EFI/grub/ntfs_x64.efi
load /EFI/grub/ntfs_x64.efi
map --mem --top /ram.vhd (hd)
pause top 1
chainloader (hd-1)
pause top 2

2、方法二
选择g4e菜单的时候,按e键进入命令行,逐一输入下面的命令:
debug 3
find --set-root /EFI/grub/ntfs_x64.efi(这一句不一定必要)
load /EFI/grub/ntfs_x64.efi
find --set-root /ram.vhd
map --mem --top /ram.vhd (hd)
chainloader (hd-1)
boot
截图发上来,给yaya提供定位错误的依据。这样能够看到准确的错误信息。
注意大小写不能错,文件名字输入的时候可以用TAB键补全。







回复

使用道具 举报

23#
 楼主| 发表于 2020-12-31 10:24:37 | 显示全部楼层
wintoflash 发表于 2020-12-31 09:09
应该不是 UGA。
liuzhaoyzz 生成的 grub2 efi 应该没有添加 efi_uga 模块。

用的是grub2默认的那些模块,确实没有efi_uga模块。
F:\bak\grub2\grub2-latest2020-12-28\arch\x64\builtin.txt
acpi all_video blocklist boot cat chain configfile cpio echo efiload efi_gop exfat ext2 extcmd fat fb file font getkey gfxmenu gfxterm gfxterm_background gfxterm_menu gzio halt help hexdump iso9660 jpeg linux linuxefi loadenv loopback ls lzopio map minicmd newc normal ntboot ntfs part_gpt part_msdos png probe progress reboot regexp sbpolicy search tar terminal terminfo test tga udf vhd video video_colors video_fb videoinfo wimboot xzio crscreenshot
回复

使用道具 举报

24#
 楼主| 发表于 2020-12-31 16:10:00 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-31 16:37 编辑
2011yaya2007777 发表于 2020-12-31 15:33
liuzhaoyzz:你使用上面这个新版本帮忙测试一下,只测试一步,map  --mem /vhd  (hd)  ,这个vhd要大一些, ...

我的vhd都比较大,都是超过4GB的,用map  --mem --top测试可以吗?
你所说的快慢相比,是跟谁相比?跟哪个版本的G4E相比?
76楼,2020-12-31版本,我测试过了,可以成功启动。启动速度从0~100%,一个7GB的vhd,加载速度23秒,和2020-12-29日的没有什么很明显的变化。

和2020-12-15日的g4e相比,提高了31秒,2020-12-15日的加载用了56秒。

以上测试,都是基于同一个连续存放的vhd,放在ssd里面,里面有svbus驱动加持。用的手机秒表记录结果的。软件是StopWatch Timer+挺好用的,在办公室里面用是静音的,挺好的。

2020-12-30日分享给alacran的版本,无法启动,启动出错。



IMG_20201231_111440.jpg (31.67 KB, 下载次数: 212)

IMG_20201231_111440.jpg
回复

使用道具 举报

25#
 楼主| 发表于 2020-12-31 16:33:36 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-31 16:35 编辑
2011yaya2007777 发表于 2020-12-31 16:28
我已经修正了,请使用76#的版本测试。跟G4E比较。

哦,我的测试结果已经在楼上了。用的就是76楼的版本,2020-12-31日的版本。测试结果我编辑过了。
回复

使用道具 举报

26#
 楼主| 发表于 2020-12-31 16:57:56 | 显示全部楼层
2011yaya2007777 发表于 2020-12-31 16:51
那就是成功了。
alacran没有耐心等待,以为是死机了。
新版本鉴戒w大的思路,不采用读文件,而是读磁盘 ...

哦,对对对,我也是有点奇怪,为啥没有以前那个数字显示呢。是不是可以加个提示,不然加载vhd的时候别人还以为死机了,用那种带省略号的提示:
Loading xxx.vhd ...
没有显示进度,相对于提高了41%的加载时间,完全可以忽略不计。很棒,赞一个!

另外祝福大神们,Happy new year!@2011yaya2007777 @wintoflash @sunsea @alacran...
      
回复

使用道具 举报

27#
 楼主| 发表于 2020-12-31 22:19:10 来自手机 | 显示全部楼层
2012ccharles 发表于 2020-12-31 17:42
esp分区只有100m,放不下ram.vhd呀?

title WIN10-SVBUS no top
find --ignore-floppies --ignore-cd --set-root /EFI/grub/ntfs_x64.efi
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /ram.vhd
map --mem /ram.vhd (hd)
chainloader (hd-1)
前面要加一句find语句设定root目录啊,否则肯定会找不到文件。
回复

使用道具 举报

28#
 楼主| 发表于 2021-1-3 08:29:03 | 显示全部楼层
2011yaya2007777 发表于 2021-1-2 20:16
在菜单项首行增加   debug 3 ,增加调试信息,再分析。

939楼,failed to load virtual partition image的问题,我已经发了截图了啊。http://wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4204397&fromuid=298214
根据2011jianfaer的办法,我推测可能是因为vhd内部的引导文件不匹配,比如bootx64.efi可能是g4e的这样子的。如果是引导文件的问题,那就与g4e无关了。
回复

使用道具 举报

29#
 楼主| 发表于 2021-1-3 08:29:57 | 显示全部楼层
2011jianfaer 发表于 2021-1-2 21:40
我又详细看一遍教程,用了一键修复引导,重新启动居然进入了桌面,系统一切正常。感 谢大神们。

感谢你的反馈!
回复

使用道具 举报

30#
 楼主| 发表于 2021-2-10 19:19:16 | 显示全部楼层
mygamexxx 发表于 2021-2-10 17:01
win8.1,8G内存,按楼主的方法制作成功,但有一个小缺点,内存系统分辨率低,无法调节,与G4D启动有关,不 ...

你说的是g4e还是g4e?我没有碰到分辨率无法调节的问题啊。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-12 04:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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