无忧启动论坛

 找回密码
 注册
搜索
WEPE笔记本电脑手机维修小包 IT发烧友的必备工具最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站
楼主: wintoflash

[原创] GRUB2 UEFI 下的磁盘仿真

    [复制链接]
发表于 2019-11-3 18:53:04 | 显示全部楼层
wintoflash 发表于 2019-11-3 18:40
大概是这个意思,这样设计命令?
map --start=0x1234 --length=0x5678 --type=HD hd0
直接把vhd或img放 ...

系统如果不是放在vhd或img镜像里,而是散装在这片区域呢?

点评

这片区域是连续的啊,有自己的文件系统,相当于一个分区,不就等于一个不带分区表的img吗?  详情 回复 发表于 2019-11-3 18:56
回复

使用道具 举报

发表于 2019-11-3 18:55:02 | 显示全部楼层

哦,@lhb9900 的grubfm有此功能,很实用,使用中还未见异常,故有此想法
QQ截图20191103182556.png
QQ截图20191103182642.png

点评

他这个应该是指定深度的吧,比如 /*.wim /*/*.wim 这样。 如果目录嵌套得比较多,例如 /efi/microsoft/boot/wim/winpe.wim这样,就不好办了。 我以前尝试过遍历所有文件,遇到某些奇葩的ISO镜像(例如FreeBSD之类)  详情 回复 发表于 2019-11-3 19:05
回复

使用道具 举报

 楼主| 发表于 2019-11-3 18:56:31 | 显示全部楼层
ddsony 发表于 2019-11-3 18:53
系统如果不是放在vhd或img镜像里,而是散装在这片区域呢?

这片区域是连续的啊,有自己的文件系统,相当于一个分区,不就等于一个不带分区表的img吗?

点评

那就先这样设计,写成grub2的规范形式: --start=0x1234 --length=0x5678 --type=HD hd0 按照规范写法,用块表。 grub2为: (hd0)0x1234+0x5688  详情 回复 发表于 2019-11-3 19:22
回复

使用道具 举报

 楼主| 发表于 2019-11-3 19:05:34 | 显示全部楼层
ksafei 发表于 2019-11-3 18:55
哦,@lhb9900 的grubfm有此功能,很实用,使用中还未见异常,故有此想法

他这个应该是指定深度的吧,比如 /*.wim /*/*.wim 这样。
如果目录嵌套得比较多,例如 /efi/microsoft/boot/wim/winpe.wim这样,就不好办了。
我以前尝试过遍历所有文件,遇到某些奇葩的ISO镜像(例如FreeBSD之类),会死机。
回复

使用道具 举报

发表于 2019-11-3 19:13:24 | 显示全部楼层
挺好的,但是因为我发现直接引导wim也很方便就没再尝试UEFI磁盘仿真了
回复

使用道具 举报

发表于 2019-11-3 19:13:26 | 显示全部楼层
本帖最后由 求道者 于 2019-11-3 19:16 编辑

挺好的,但是因为我发现直接引导wim也很方便就没再尝试UEFI磁盘仿真了
主要是xorboot的垃圾兼容性把我搞怕了
建议debug完成后提交mod到上游

点评

ipxe wimboot的原理其实和这个差不多, 抄了不少他家的代码。 提交到上游是不可能了。我的这个分支改动太多。  详情 回复 发表于 2019-11-3 19:26
回复

使用道具 举报

发表于 2019-11-3 19:22:42 | 显示全部楼层
wintoflash 发表于 2019-11-3 18:56
这片区域是连续的啊,有自己的文件系统,相当于一个分区,不就等于一个不带分区表的img吗?

那就先这样设计,写成grub2的规范形式:
--start=0x1234 --length=0x5678 --type=HD hd0
按照规范写法,用块表。
grub2为: (hd0)0x1234+0x5688

点评

试了一下,可以直接用blocklist啊 [attachimg]404363[/attachimg] [attachimg]404364[/attachimg] [attachimg]404365[/attachimg]  详情 回复 发表于 2019-11-3 19:39
blocklist那一套东西一直没搞懂。 grub2应该是支持直接用blocklist当文件用的吧,比如我见过这种写法:  详情 回复 发表于 2019-11-3 19:30
回复

使用道具 举报

 楼主| 发表于 2019-11-3 19:26:25 | 显示全部楼层
求道者 发表于 2019-11-3 19:13
挺好的,但是因为我发现直接引导wim也很方便就没再尝试UEFI磁盘仿真了
主要是xorboot的垃圾兼容性把我搞怕 ...

ipxe wimboot的原理其实和这个差不多, 抄了不少他家的代码。
提交到上游是不可能了。我的这个分支改动太多。
回复

使用道具 举报

 楼主| 发表于 2019-11-3 19:30:30 | 显示全部楼层
ddsony 发表于 2019-11-3 19:22
那就先这样设计,写成grub2的规范形式:
--start=0x1234 --length=0x5678 --type=HD hd0
按照规范写法, ...

blocklist那一套东西一直没搞懂。
grub2应该是支持直接用blocklist当文件用的吧,比如我见过这种写法:
  1. loopback ElTorito (loop)228+380000;
  2. linux (ElTorito)/abr64ker.dat product=bootagent media_for_windows quiet;
  3. initrd (ElTorito)/abr64ram.dat (ElTorito)/dat8.dat;
复制代码

回复

使用道具 举报

 楼主| 发表于 2019-11-3 19:39:19 | 显示全部楼层
ddsony 发表于 2019-11-3 19:22
那就先这样设计,写成grub2的规范形式:
--start=0x1234 --length=0x5678 --type=HD hd0
按照规范写法, ...

试了一下,可以直接用blocklist啊
深度截图_选择区域_20191103193726.png
深度截图_选择区域_20191103193740.png
深度截图_选择区域_20191103193753.png

点评

你图3以这种虚拟盘的形式能顺利efi启动到PE桌面吗?  详情 回复 发表于 2019-11-3 20:42
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2019-12-12 02:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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