无忧启动论坛

标题: ud.FAT法:把UD扩展区当作fat区 [打印本页]

作者: pseudo    时间: 2015-1-23 21:33
标题: ud.FAT法:把UD扩展区当作fat区
本帖最后由 pseudo 于 2015-1-23 21:49 编辑

如果能把UD扩展区当作fat16/32区分配盘符,用windows资源管理器来访问(即使只读),当然方便。那样小gho文件、散开的外置工具放入ud就方便读取了。
障碍之一,ud扩展区无对应分区表项,或者不是第一个分区表项,windows不会自动分配盘符。
这个好办,pecmd2012就有把盘上某些扇区映射成一个盘的功能。
障碍之二,即使把ud扩展区直接映射成一个分区,这个分区也因无文件分配表(File Allocation Table,FAT),windows资源管理器读不懂它。
在不提供专门的ud文件系统驱动程序、不像udm、multimbr那样对ud做大动作前提下,构造FAT成为关键。

下面是思路,有待实证:
1、fbinsttool格式化ud时,问用户是否为ud扩展区生成FAT,如果“是”,就在ud扩展区写入一个名为ud.FAT(或者一个固定、特定、恰当的其它名字)的适当大小文件。
对于ud而言,ud.FAT只是ud扩展区文件之一,此法只需增加一个文件到ud,ud的结构没大变动。
2、ud.FAT作为ud扩展区第一个文件,占据ud扩展区开头位置,往ud扩展区加入其它文件时,fbinsttool须确保它们总是位于ud.FAT之后。整理ud碎片时,fbinsttool确保ud.FAT保持在ud扩展区开头。
3、整个ud扩展区被当作无分区表项的一个fat16/32分区,ud.FAT占据空间恰好对应分区头部,内容含fat16/32分区的分区引导记录、文件分配表等,ud扩展区其它文件内容占据的空间对应fat16/32分区内相应文件内容占据的空间。ud扩展区其它文件有双重身份:既是普通ud扩展区文件,在ud头部有文件登记信息;又是fat16/32分区普通文件,在fat16/32分区头部即ud.FAT里有文件登记信息。ud.FAT有双重身份:既是普通ud扩展区文件,在ud头部有文件登记信息;又是fat16/32分区头部。
4、往ud扩展区加入其它文件、整理碎片时,ud.FAT内容被相应同步修改。

作者: pseudo    时间: 2015-1-23 21:33
本帖最后由 pseudo 于 2015-1-23 21:49 编辑

待核实的地方:fat16/32分区的文件结束标志跟ud扩展区文件结束标志一致?
作者: pseudo    时间: 2015-1-23 21:34
本帖最后由 pseudo 于 2015-1-23 23:23 编辑

构造测试例方法之一:
1、fbinsttool格u盘弄出ud扩展区,放0pe的grldr入ud(非ud扩展区)。
2、找出ud扩展区的起始扇区、大小。按起始扇区、大小建立分区(有正常分区表项)、格为fat32,找出fat32分区头部大小。这步稍难。
3、往ud扩展区放一个名为ud.fat的文件,大小等于fat32分区头部大小(用fbinsttool的“查看mbr"功能检查)。再往ud放入0pe.iso。这步目的是让ud登记ud.fat和0pe.iso。
4、重新格式化fat32分区(上一步放入ud.fat破坏了fat32分区头部,这里重格可以恢复),用diskgenius或资源管理器加入0pe.iso(将与ud的0pe.iso占据相同空间)。这步目的是让fat32分区登记0pe.iso。
测试:
1、u盘启动进0pe,用diskgenius看u盘有无0pe.iso文件,有则成功。
2、清除ud扩展区对应分区表项,u盘启动进0pe,用pecmd2012映射ud扩展区、分配盘符,用资源管理器看到(ud扩展区上的)0pe.iso则成功。

此测试例用来验证可行性。看着复杂,以后做进工具里就简单了:
1、格ud时问是否为ud扩展区生成FAT,回答“是”。
2、往ud拖入两个文件grldr+0pe.iso,还可以拖入其它东西,收工
u启进pe后,自动或手动调用pecmd2012为ud扩展区分配盘符,就可以在资源管理器里看到原ud扩展区的东西了。如果不分配盘符,ud里的东西就看不见。呵呵。

另外,启动时可以用grub4dos映射ud扩展区为(hd0,0),然后散开放置在ud的linux、普通pe(fbinsttool可以看到setupldr.bin/bootmgr)有望能启动。


我只提供思路,纸上谈兵。
作者: sp_star    时间: 2015-1-23 21:50
P大这个办法和M大的UDm差不多啊!
作者: 邪恶海盗    时间: 2015-1-23 22:52
看起来是针对uefi的某种解决方案,太高深了,盗哥前排围观中…
作者: zds1210    时间: 2015-1-23 23:17
本帖最后由 zds1210 于 2015-1-23 23:20 编辑

不错的方案,最好能搞出UD驱动,就很好了。嗯。
UD区外置加载,UD区PE内核要打包,这都是UD与量产PE最大的区别,搞得大家很头大。如果有这东西出来,就很好
说到UD解决efi启动 问题,UD分区表项、UD三分区、UD可加见fat的efi,都很好的解决了问题。
作者: sp_star    时间: 2015-1-23 23:23
pseudo 发表于 2015-1-23 21:34
构造测试例方法之一:
1、fbinsttool格u盘弄出ud扩展区,放0pe的grldr入ud(非ud扩展区)。
2、找出ud扩 ...

我觉得复杂了,似乎没必要。不必通过ud管理img内部内容,就简单多了。
1. 一个img文件放到扩展区,扩展区没有其他文件。
2. grldr启动首先map这个文件,然后随意.
3. windows/pe用扇区映射访问这个img文件内部的内容。

作者: zds1210    时间: 2015-1-24 12:38
期待P大的好消息。希望一個量產PE,直接放到uD區就能實現內核散開的PE和外置加載,不要做過多的設計。
作者: jianliulin    时间: 2015-1-24 13:56
本帖最后由 jianliulin 于 2015-1-24 14:04 编辑

新版fbinstTool 已经可以把ud中的“分区”文件挂到分区表,也可以随意排列各个分区的顺序,只要“分区”文件是第一个添加的,那它永远不会被碎片整理移动位置。

fbinsttool 早已经实现了P大提出的功能,就是不知道有没有人在用。
作者: sp_star    时间: 2015-1-24 15:32
jianliulin 发表于 2015-1-24 13:56
新版fbinstTool 已经可以把ud中的“分区”文件挂到分区表,也可以随意排列各个分区的顺序,只要“分区”文 ...

挂到分区表就不是深度隐藏了。
我理解P大的意思是不加到分区表,而是通过pecmd2012的扇区映射来访问img内部的内容。这样需要时挂载,平时仍然是深度隐藏的。
作者: jianliulin    时间: 2015-1-24 16:11
只要把分区格式的文件丢到ud,就是深度隐藏了
作者: zds1210    时间: 2015-1-24 21:09
jianliulin 发表于 2015-1-24 13:56
新版fbinstTool 已经可以把ud中的“分区”文件挂到分区表,也可以随意排列各个分区的顺序,只要“分区”文 ...

现在UD三分区法,感觉efi兼容性强一些,J大为什么不更新fbinstool支持一下?
作者: mdyblog    时间: 2015-1-25 07:44
本帖最后由 mdyblog 于 2015-1-25 15:22 编辑
jianliulin 发表于 2015-1-24 13:56
新版fbinstTool 已经可以把ud中的“分区”文件挂到分区表,也可以随意排列各个分区的顺序,只要“分区”文 ...


前面J大回复说不会C, 所以 fbinst.exe没有同步更新。
能麻烦提供一些 怎么找到这个 EFI-IMG 的位置和大小的 说明。
没  “挂到分区表”, 怎么找?
挂载了,怎么找?
“挂到分区表” 与否 有什么标志?

就是 是否映射 “挂到分区表”, 都能找到  “EFI-IMG 的位置和大小”。

我来给大家 写个小程序,在PE中挂在这个IMG, 大家就有口福了,
作者: sp_star    时间: 2015-1-25 08:58
其实挂载的方法已经有了,只是大家可能没注意:
http://bbs.wuyou.net/forum.php?m ... p;extra=&page=1
还有最后的小程序。都是根据img文件的文件名查找。

最好ud能稍作修改,将分区信息写到固定扇区,pecmd直接读取就可以挂载了,这样就不用小程序了。也不依赖文件名。
作者: jianliulin    时间: 2015-1-25 12:25
本帖最后由 jianliulin 于 2015-1-25 12:32 编辑
mdyblog 发表于 2015-1-25 07:44
前面J大回复说不会C, 所以 fbinst.exe没有同步更新。
能麻烦提供一些 怎么找到这个 EFI-IMG 的位置和 ...



ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

struct fbm_file
{
    uchar size; 记录着当前是结构体的大小(含name),当size等于0则表示到了文件列表的结尾。
    uchar flag;0:可能是主分区文件,也可能是扩展分区文件。 1:为普通的扩展分区文件。  4:已经映射为mbr的第一个分区。  8:已经映射为mbr的第二个分区。  16:已经映射为mbr第三个分区。  32:已经映射为mbr第四个分区
    uchar4 data_start; 文件的起始扇区。
    uchar4 data_size; 文件的大小(字节数),不能超过4G
    time_t data_time; 文件的修改日期,unixdate 格式
    char name[0]; 文件名,原来fbinst.exe 是以ansi编码,目前fbinsttool 是utf-8编码。
} PACK;


ud从第69扇区开始是文件件列表,最大896为个扇区,binsttool 默认也是设置为896个扇区。每个扇区最后2个字节是fbinst内部使用,所以读取文件列表时候要剔除这2个字符。

当文件挂在到mbr时候,flag 会是 4 ,8, 16, 32 这几个数字之一,如果是1则是没有挂载,fbt判断一个文件是否是分区文件的方法是判断文件第一个扇区的第一字符是否是
0xEB 这个跳转符号,最后两个字节是否是0xAA55 ,文件大小是否大于30M。


另外:
要是能在pecmd中添加,通过文件名就能直接把ud中的文件读取到内存里面执行,不需要目前先用fbinst.exe导出到临时目录,再执行。mdyblog老大,你干这事你是天然的人选,
pe可以没有fbinst.exe 但绝对不可能没有pecmd.exe




作者: 邪恶海盗    时间: 2015-1-25 12:53
本帖最后由 2010邪恶海盗 于 2015-1-25 12:56 编辑
jianliulin 发表于 2015-1-25 12:25
ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

str ...


都是高手啊,说实话,fbinsttool使u盘启动的制作和修改方便了不少,自从用过fbinsttool以后我就没用其他软件写u盘pe了
作者: mdyblog    时间: 2015-1-25 14:38
jianliulin 发表于 2015-1-25 12:25
ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

str ...

>>char name[0]; 文件名,原来fbinst.exe 是以ansi编码,目前fbinsttool 是utf-8编码。
请问, 是什么编码, 是否什么地方存放了标志。  免得搞错了。

作者: jianliulin    时间: 2015-1-25 14:48
没有标志,建议用utf-8,
作者: mdyblog    时间: 2015-1-25 15:06
本帖最后由 mdyblog 于 2015-1-25 15:15 编辑
jianliulin 发表于 2015-1-25 12:25
ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

str ...

》》当文件挂在到mbr时候,flag 会是 4 ,8, 16, 32 这几个数字之一
此时, 已经在分区表中了, 不需要另外在挂载了。


》》
flag 如果是1则是没有挂载,也就是没有这样一种  “带标标深度隐藏状态”:  文件挂在到mbr, 大是有标识, 说这个 就是 需要映射的 文件,
建议加个, 65~127 为 文件的分区序号, 65为第一分区,66为第二分区。。。 127为第63分区可以是ISO(虽然不能作EFI,但可以作为外置)。

现在没有标识, 所以也无法挂载了。
至于通过内容判断,  对windows挂载  帮助不大。
很多 IMG 有这种内容,  但并不需要挂载。
而 最重要的  外置的IMG(不是EFI-IMG), 不一定有这个内容标志 (没有也是合法的)。  
还有ISO,  压根没有这个内容,前面都0x00.



---下面是 取消分区映射后 的数据
0x13 0x00 0xC4 0x03 0x00 0x00 0x13 0x00 0x00 0x00 0x54 0x90 0xC4 0x54 0x66 0x62
0x2E 0x63 0x66 0x67 0x00 0x13 0x00 0xC5 0x03 0x00 0x00 0x00 0x02 0x00 0x00 0x54
0x90 0xC4 0x54 0x6D 0x62 0x72 0x2E 0x70 0x74 0x00
0x14 0x01   0x00 0x40 0x00 0x00   0x00 0x00 0xF0 0x7F 0x6C 0x90 0xC4 0x54 0x65 0x66 0x69 0x2E 0x69 0x6D 0x67 0x00       0x00
---- ----   -------------------   -------------------
flag=0x01








作者: pseudo    时间: 2015-1-25 15:08
本帖最后由 pseudo 于 2015-1-25 15:51 编辑

@jianliulin
分区表项法分配盘符例如U:后,windows资源管理器能从U:盘看到(ud)/efi.img里包含的内容,例如看到U:\EFI\boot\bootx64.efi。

但这里不同。

这里为整个ud扩展区分配盘符,例如U:,然后,windows资源管理器能从U:盘看到ud扩展区内所有文件(除ud.fat之外),例如看到U:\efi.img。
即ud扩展区内所有目录、文件(除ud.fat外),既能被fbinsttool看到,也能被windows资源管理器直接(不经fbinst、pecmd)看到。

这样,你可以把整个外置工具petools目录用fbinsttool拖入ud,然后在pe里分配盘符,然后windows资源管理器就能直接看到、运行petools目录下的所有外置工具。

至于ud扩展区(上述U:盘对应的fat分区)在分区表中的登记信息,可以让它在分区表中显式存在,好处之一是可以直接支持uefi启动——8pe散开放入ud也100%支持uefi启动了
也可以抹去,达到深藏目的,那样ud架构完全不受影响,代价只是增加一个ud.fat文件并维护之。

在windows看来,U:盘---->fat分区(ud扩展区)=分区头部+其它文件+(u:盘的)剩余空间
在fbinsttool看来,                         ud扩展区=ud.fat     +其它文件+(ud扩展区的)剩余空间
作者: mdyblog    时间: 2015-1-25 15:17
jianliulin 发表于 2015-1-25 12:25
ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

str ...


那个MBR.pt
干什么的?
能用来存放 用户数据吗?
作者: jianliulin    时间: 2015-1-25 15:34
本帖最后由 jianliulin 于 2015-1-25 15:36 编辑
mdyblog 发表于 2015-1-25 15:17
那个MBR.pt
干什么的?
能用来存放 用户数据吗?


是0扇区的内容,错误强行格式化时候的后悔药,可以随意删除

作者: mdyblog    时间: 2015-1-25 15:46
jianliulin 发表于 2015-1-25 12:25
ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

str ...

》》
另外:
要是能在pecmd中添加,通过文件名就能直接把ud中的文件读取到内存里面执行,不需要目前先用fbinst.exe导出到临时目录,再执行。
--------------
对单个普通执行文件,PECMD 倒是可以 用 幽灵模式 EXEC. 不需要 临时文件,直接在内存中运行。比如 CALC.EXE

但是对 特别文件, 日那个WINRAR自解压文件, 程序运行后 要找 自己的宿主 文件,寻找待解压 数据。   
有些 被特别压缩国的文件,也不能 幽灵模式 EXEC。 会失败的。



有些 程序 内部重定位符号被 清除了, 无法在内存中展开,故也不能  幽灵模式 EXEC。  


还有的程序需要数据的。 可能数据是大头。

还有的程序是许多个文件, 如QQ, word。



作者: mdyblog    时间: 2015-1-25 18:02
本帖最后由 mdyblog 于 2015-1-25 21:47 编辑
jianliulin 发表于 2015-1-25 12:25
ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

str ...

弄出来了。
MAPUP挂载UD外置
支持深度隐藏

文件: MAPUD.WCS  (MAPUP挂载UD外置.zip 中

下面说说深度隐藏的制作和PE中的挂载。

方案用法
1) UD 格式化盘
2) 右键,创建EFI.IMG(名称随意)
3) 如果需要, 右键,创建外置EXT.IMG(名称随意)
4) 还可创建其它,可以创建4个。  后面放入其它普通文件。
5) 在EFI.IMG 上右键,【隐射UFI分区】
6) 如果需要,其他IMG也是【隐射UFI分区】
7) PECMD part -gui , 手动改变上面隐射的分区的分区类型为0。就变成深度隐藏的了。如果不会,直接删除也可以。效果如图:

8) PECMD.INI :  LOAD MAPUD.WCS  *
9) 如果要恢复分区,可见,直接将分区类型改为0x1E/0x1B/0x0E/0x0B/0x16/0x06均可。
手动执行,效果如图:


可以直接 添加/维护文件。 也可以重新格式化。

MAPUP.WCS用法:
PECMD LOAD  MAPUP.WCS   [-w]   磁盘文件件名或磁盘号或*
-w:可写
*查询全部磁盘并加载
磁盘号为 0~N
磁盘文件件名为 \\.\PhysicalDrive0~N




MAPUP挂载UD外置.zip

23.99 KB, 下载次数: 16, 下载积分: 无忧币 -2


作者: jianliulin    时间: 2015-1-25 18:27
这是已经map的情况,能否添加根据ud文件文件名来挂在
作者: sp_star    时间: 2015-1-25 19:30
mdyblog 发表于 2015-1-25 18:02
弄出来了。
MAPUP挂载UD外置支持深度隐藏
文件: MAPUD.WCS  (MAPUP挂载UD外置.zip 中)

占用分区表的方式依赖fbinsttool的操作,感觉还是查找文件名的方式比较好,这样也不用占用分区表。
比如扩展一下命令:
MOUN -ud -w TEST.IMG Z:
作者: jianliulin    时间: 2015-1-25 21:53
pseudo 发表于 2015-1-25 15:08
@jianliulin
分区表项法分配盘符例如U:后,windows资源管理器能从U:盘看到(ud)/efi.img里包含的内容,例如 ...

我还是不太明白,实现你说的功能是不是要一个ud的windows驱动??
作者: mdyblog    时间: 2015-1-25 21:56
本帖最后由 mdyblog 于 2015-1-25 22:14 编辑
jianliulin 发表于 2015-1-25 18:27
这是已经map的情况,能否添加根据ud文件文件名来挂在

1:
这里 实际没有map。
因为  已经用分区软件从分区表中清除掉了。

用FBT隐射一下, 只是做个标记而已, 标识这个文件,  在PE启动时需要  加载到盘符。
做了标识后, 再 用分区软件 从分区表中清除掉了。
从实现 深度隐藏。---- 参见上面的分表, 分区表中只有一个 用户区。
如图: 分区表中,只有用户区 的分区表。




2: 我认为, 对PE启动来时, 这个才是适用的。
      这样就不用指定文件名了,而实现全自动的。 UD盘甚至好了就可以了。
      PE自动加载。



3:
至于根据文件加载, 早就实现了,PECMD的下载包中就有。
这个需要 固定文件名特征, 指定特征文件名的文件被自动加载。



作者: mdyblog    时间: 2015-1-25 21:59
本帖最后由 mdyblog 于 2015-1-25 22:11 编辑
sp_star 发表于 2015-1-25 19:30
占用分区表的方式依赖fbinsttool的操作,感觉还是查找文件名的方式比较好,这样也不用占用分区表。
比如 ...

不占用分区表的, 只是在文件的flag中做了个标记。
是 深度隐藏的。

加载的时候, 也是 不需要 分区表界入的。如图: 分区表中,只有用户区 的分区表。


》》依赖fbinsttool
除了格式化,拖入文件IMG外的文件。
其实 不以来 FBT了。
一切 都可以小软件搞定。 包括 打上标记, 清除标记, 软加载,硬加载。


只是 有现成的FBT,为什么还有再去造个功能一样的轮子呢。


做目前没有的功能——启动时的自动加载。






作者: mdyblog    时间: 2015-1-25 22:06
本帖最后由 mdyblog 于 2015-1-25 22:12 编辑
jianliulin 发表于 2015-1-25 21:53
我还是不太明白,实现你说的功能是不是要一个ud的windows驱动??


》》我还是不太明白,实现你说的功能是不是要一个ud的windows驱动??
不是的。
是要对FBT这个软件进行深度的 改造, 使得 FBT支持标准文件系统——这样windows就能认。
差不多UD变成简化的UDm了(同是又完全兼容UD)。
目前还只是P大的一个构思。
作者: sp_star    时间: 2015-1-25 22:23
mdyblog 发表于 2015-1-25 21:59
不占用分区表的, 只是在文件的flag中做了个标记。
是 深度隐藏的。

信息还是存在分区表项的位置?
自动加载也不难的,可以查找UD内所有文件,自动挂载 .IMG后缀的(或者约定一个特别的后缀)。这样UD完全不用特别的操作。
作者: jianliulin    时间: 2015-1-25 22:27
mdyblog 发表于 2015-1-25 22:06
》》我还是不太明白,实现你说的功能是不是要一个ud的windows驱动??
不是的。
是要对FBT这个软件进 ...

fbinst 和udm 还是有本质上的区别的,两者并不类似。
作者: mdyblog    时间: 2015-1-25 22:32
sp_star 发表于 2015-1-25 22:23
信息还是存在分区表项的位置?
自动加载也不难的,可以查找UD内所有文件,自动挂载 .IMG后缀的(或者约定 ...

用PECMD PART -gui
删除 该分区表后, 哪儿是全0了。 那儿没有分区信息了。

下面是【导出】的分区表:
磁盘:1
  磁盘信息 磁盘号   大小(字节)         柱面数 磁头数 扇数 扇区 媒体     签名 总线
              1    63786975232           7754    255   63  512   12 D63D1E4D  7 MBR F
  字符说明 激活 __本分区起始__ 分区 __本分区结束__ _______本分区______ ______本分区_______
  激活为0x80    磁头_扇区_柱面 类型 磁头_扇区_柱面 _____起始扇区号____ _____扇区总数______
  主分区1: 0x80 0x6D 0xB0 0x7E 0x0C 0xFC 0xB2 0x4A 0x00 0x80 0x9C 0x00 0x00 0x80 0xD0 0x06
  主分区2: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  主分区3: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  主分区4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  标志   : 0x55 0xAA
  全部分区: 1   -2  -3  -4
  分区  类型 激活(1) 起始(字节)     长度(字节)    隐藏扇区     结尾(字节) 物理# 盘符
     1  0x0C   1     5251268608    58535706624    10256384    63786975232    1   
    -2  0x00   0              0              0           0              0    2   
    -3  0x00   0              0              0           0              0    3   
    -4  0x00   0              0              0           0              0    4   







作者: mdyblog    时间: 2015-1-25 22:34
本帖最后由 mdyblog 于 2015-1-25 22:37 编辑
jianliulin 发表于 2015-1-25 22:27
fbinst 和udm 还是有本质上的区别的,两者并不类似。


最根本的区别是, UDM有标准文件系统。
P大的方法,就是让 UD支持标准文件系统。
从这个意义上说, 如果那样做,就变成了一个简化的UDm。

而一旦 用上了 标准文件系统, 就会发现  “UD文件系统” 变成多于的了。
  正是这个原因, UDm中没有实现UD文件系统支持。

作者: sp_star    时间: 2015-1-25 22:35
mdyblog 发表于 2015-1-25 22:32
用PECMD PART -gui
删除 该分区表后, 哪儿是全0了。 那儿没有分区信息了。

呵呵,看你映射EFI什么的,可能是理解错你的意思了。
作者: sp_star    时间: 2015-1-25 22:39
jianliulin 发表于 2015-1-25 22:27
fbinst 和udm 还是有本质上的区别的,两者并不类似。

从使用的角度说,可以做到一致:
ud区的约定:只放3个文件grldr, menu.lst, TEST.IMG,PE包括外置的所有内容都在TEST.IMG中。
启动: 将TEST.IMG map成(fd0)之类的,启动其中的PE
修改:主机上将TEST.IMG挂载出来,直接修改里面的内容,不要用到fbinsttool
PE: 启动后将TEST.IMG挂载出来,可以加载其中的外置。

这样是不是一样了?

作者: mdyblog    时间: 2015-1-25 22:39
sp_star 发表于 2015-1-25 22:35
呵呵,看你映射EFI什么的,可能是理解错你的意思了。

那个, 只是用来打个 标记标记——PE启动时较加载我哦!

当然可以自己写软件做; 用FBT现成的也可以,反正设置一次就完了。

作者: mdyblog    时间: 2015-1-25 22:42
sp_star 发表于 2015-1-25 22:39
从使用的角度说,可以做到一致:
ud区的约定:只放3个文件grldr, menu.lst, TEST.IMG,PE包括外置的所有 ...

而一旦 用上了 标准文件系统, 就会发现  “UD文件系统” 变成多于的了。

grldr, menu.lst, TEST.IMG 直接放到标准文件系统不就完事了。
省事多了。随便一个软件都可以编辑修改访问。
作者: jianliulin    时间: 2015-1-26 10:39
mdyblog 发表于 2015-1-25 22:32
用PECMD PART -gui
删除 该分区表后, 哪儿是全0了。 那儿没有分区信息了。



1. pecmd 能否实现, MOUN -ud -w TEST.IMG Z:  命令把ud中test.img 映射成为Z: 盘 ? test.img 是用户指定的,现在很多外置都用petool 这样的目录,用户可以选择要挂什么,不挂什么,在pe中指定比在ud中指定更合理。



2. pecmd 按Ctrl +Alt +A 分辨率变成800x600不是菜单提示的最佳分辨率


作者: mdyblog    时间: 2015-1-26 11:36
本帖最后由 mdyblog 于 2015-1-26 13:26 编辑
jianliulin 发表于 2015-1-26 10:39
1. pecmd 能否实现, MOUN -ud -w TEST.IMG Z:  命令把ud中test.img 映射成为Z: 盘 ? test.img 是用 ...


1:
》》 pecmd 能否实现, MOUN -ud -w TEST.IMG Z:  命令把ud中test.img 映射成为Z: 盘 ? test.img 是用户指定的,现在很多外置都用petool 这样的目录,用户可以选择要挂什么,不挂什么,在pe中指定比在ud中指定更合理
---
这个其实 有了, 不是 MOUN -ud. 而是 PECMD的一个支持包——UDM-UD-U+-IMG-ISO-等的统一加载,
对UD的加载,用的文件名, 用的fbinst.exe 来列出文件信息。
用法:
手动(只)加载UD:
EXEC =!"%MyName%" LOAD UDm+fixdrv.wcs  LoadUD [(可含通配符)文件名] [磁盘列表] ["D E F ..."] [-w]
省略 文件名 就是 *OnLd.I*
省略 磁盘列表 就是 所有硬盘
磁盘列表: 0 1 2 3 4 ...



------
至于 "MOUN -ud " 看看是否要内置,怎么内置(那些接口)。



》》2. pecmd 按Ctrl +Alt +A 分辨率变成800x600不是菜单提示的最佳分辨率
----
(1) PECMD-PE 默认 快捷键
Ctrl +Alt +A   ----------- 分辨率变成800x600
可以在PECMD.INI中改,随后四都可以改快捷键

(2)
800x600不是菜单提示的最佳分辨率
而是最安全的 分辨率。 分辨率设置错误 黑屏了,就按这个。



作者: jianliulin    时间: 2015-1-26 11:49
本帖最后由 jianliulin 于 2015-1-26 21:08 编辑

P大,

[root directory sector] + [root directort cluster]*[cluster size]/512  

3232+ 2 * 4096 /512 =3248

你上面怎么算得3240??






作者: sp_star    时间: 2015-1-26 11:51
jianliulin 发表于 2015-1-26 10:39
1. pecmd 能否实现, MOUN -ud -w TEST.IMG Z:  命令把ud中test.img 映射成为Z: 盘 ? test.img 是用 ...

现在其实也是能实现的,主要是依赖一条PECMD命令: (需要安装imdisk)
RAMD ImDisk*&V*2097280s*5734529s*0*\\.\PhysicalDrive0  -a  -o hd -m Z:      //扇区映射
只要能导出分区的开始扇区和长度,就能将其挂载到盘符。不管这个分区是用什么方式隐藏的,甚至根本就没有这个分区,先挂载出来,再去格式化,也一样能用。
如果fbinst能导出这些信息,配合pecmd就能实现。sunsea的那个帖子还提供了驱动级的加载。
作者: pseudo    时间: 2015-1-26 12:44
本帖最后由 pseudo 于 2015-1-26 12:59 编辑

实例来了

1、fbinsttool的“启动设置”-“查看MBR”:
primary data size: 16384
extended data size: 1638400
以后加入文件,还将看到
files:
  0   "fb.cfg" 964 19
  0   "grldr" 965 299775
  0*  1553 0x39EF
  1e  "ud.fat" 16384 1658880
  1e  "0PE.ISO" 19624 ...

2、利用上述数据,用diskgenius建立fat32分区:从绝对16384扇区开始,大小1638400扇区


注意不要勾对齐,否则弄成4k对齐之类就跟ud不同了,ud仅512字节对齐。

按上图数据计算ud.fat大小=[starting sector]+[root directory sector] + [root directort cluster]*[cluster size]/512
=3240(sectors)=1620(KB)=1658880(bytes),弄一个ud.fat文件。弄完要重新格式化fat32分区,目的是间接往ud.fat写入正确内容。

3、绝对扇区16384至19624共3240扇区为fat32分区头部,让其空间对应ud扩展区里的ud.fat文件
fat32分区上0pe.iso从绝对19624扇区(16384+3240)开始,跟fbinsttool的“启动设置”-“查看MBR”看到的起点一致

最终要达到资源管理器可以看到原来fbinsttool才能看到的0pe.iso文件的效果——fbinsttool所见(除ud.fat外的ud扩展区文件)即资源管理器所得。
不需要像udm那样动ud架构,不需要驱动,只需增加一个ud.fat文件,并写入、维护适当内容。

上面没有直接写ud.fat文件内容,是通过格式化fat32分区、往分区放文件来影响分区头部(对应ud.fat文件空间),来间接写入ud.fat。
一旦把写入、维护ud.fat内容的功能做入fbinsttool,一切就简单了。

作者: jianliulin    时间: 2015-1-26 13:26
pseudo 发表于 2015-1-26 12:44
实例来了

1、fbinsttool的“启动设置”-“查看MBR”:

清楚的问题。
1.把整个扩展分区映射到mbr,没有问题。
2.预留空间让给fat表,也没问题

有疑问的问题。
3.因为ud要求是连续存放的,windows无法保证是连续存放,所以文件是还是由fbinsttool维护,是否是这样???
作者: jianliulin    时间: 2015-1-26 21:09

本帖最后由 jianliulin 于 2015-1-26 21:08 编辑


P大,

[root directory sector] + [root directort cluster]*[cluster size]/512  

3232+ 2 * 4096 /512 =3248

你上面怎么算得3240??

作者: pseudo    时间: 2015-1-26 21:23
本帖最后由 pseudo 于 2015-1-26 21:29 编辑
jianliulin 发表于 2015-1-26 13:26
清楚的问题。
1.把整个扩展分区映射到mbr,没有问题。
2.预留空间让给fat表,也没问题


window不会也不用照顾fbinsttool,windows下弄“乱"了也没多大问题,暂时不影响windows下使用。
但一旦启动fbinsttool,就要检查、修复不当之处,维护好ud的文件列表和ud.fat文件内容,有碎片就提示或默认直接整理碎片。
既可以在fbinsttool下做好到windows下用,也可以在windows下做拷贝等操作,待以后进fbinsttool时再把ud协调好。

打个比方,fat32区下文件都有双重国籍,既在国外有护照,也在国内有档案。
国外的是临时的,国内的是永久的。两者可能暂时有不一致,回国后由fbinsttool负责统统理顺。

另外ud.fat文件也可考虑不在fbinsttool里显示出来,就像fb.cfg那样隐藏,或者干脆在ud扩展区前预留空间,不以文件形式出现,但那样要动fbinst本身代码。
作者: zds1210    时间: 2015-1-26 21:27
老大们有新想法,很好,以后一定能搞出新玩意来。支持一下。

作者: pseudo    时间: 2015-1-26 22:23
jianliulin 发表于 2015-1-26 11:49
P大,

[root directory sector] + [root directort cluster]*[cluster size]/512  

呵呵,杜撰的式子,还不能自圆。
难道这样:
ud.fat大小=[starting sector]+[Data start sector] + [cluster size]/512
=3240(sectors)=1620(KB)=1658880(bytes)
吗? 加[cluster size]/512表示从下一cluster开始?

实际上我是往fat32分区加文件,看最先加入文件的起始扇区。
不过win8下一旦分配盘符,让资源管理器看见该区,马上就会自动创建一个System Volume Information文件夹,这点要设法对付,别让它占开头位置抢生意。

作者: jianliulin    时间: 2015-1-27 09:26
本帖最后由 jianliulin 于 2015-1-27 10:40 编辑

ud是fbinst万能启动的一个副产品,fbisnt v1.2的时候没有ud的。当引导成功grldr后fbinst的使命就完成了,剩下的就是grldr的职权范围了。如果让fat32和ud重叠,那和不需要扩展分区,直接用fat32替代,区别不大。在扩展分区上建立fat文件系统那这个fat分区(A区)也必须在mbr分区表中的第一项,否则uefi不认,如果占用了第一项,那原来普通数据分区(B区)就会被隐藏,A区就变成了普通数据区。唯一的好处就是可以通过ud里的文件列表,快速创建A区文件系统。
作者: tiansw1    时间: 2015-1-27 10:42
本帖最后由 tiansw1 于 2015-1-27 10:47 编辑

多揣个优盘而已,不要太难为fb了,毕竟它只是针对老机器开发的。{:soso_e113:}就像grldr一样,没有合法的身份,没有厂商在开发软硬件时会把它作为兼容测试对象,每有新东西问世,grldr就会跟着修改,适应了新的,往往就放弃了旧的,兼容性很难保证。
作者: mdyblog    时间: 2015-1-27 12:02
本帖最后由 mdyblog 于 2015-1-27 12:09 编辑

jianliulin 发表于 2015-1-25 12:25
ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

str ...


   PECMD2012V88.05.47 对UD的直接支持


1:UD文件列表
MOUN -udm listud  [-ret:] 返名 [-udmask: flag掩码] 设备名 [通配符]      //返回详细UD文件列表

如:
MOUN -udm  listud  &V  \\.\PhysicalDrive1 ""  
MESS. %&V%


2:直接加载UD中的文件
MOUN -udm -udfs  [-udm-] [-w]  [-udid: UDx编号] [-udmask: 掩码] [-udimg: 文件] 设备名 [盘符表]
可以根据 flag掩码 或 文件名加载

UDx编号 为匹配 中的 序号, 从1开始

如:
moun  -udm -udfs  -w -udm-  -udimg: EXT*.IMG   \\.\PhysicalDrive1  R-  //加载EXT*.IMG

moun  -udm -udfs  -w -udm-  -udmask: *    \\.\PhysicalDrive1  R-   //加载有映射标记的文件

moun  -udm -udfs  -w -udm-  -udmask: *  -udid:  1   \\.\PhysicalDrive1  R-   //只加载第一个

moun  -udm -udfs  -w -udm-  -udmask: *  -udimg: EXT*.IMG   \\.\PhysicalDrive1  R-  //加载有映射标记的EXT*.IMG


3:直接运行UD中的文件
EXEC --exe:ud:UD文件名:UD内部文件名   命令行及参数

UD文件名: 磁盘或UD格式镜像


如:
EXEC  -exe:ud:\\.\PhysicalDrive1:calc.exe"  =calc
EXEC  -exe:"ud:\\.\PhysicalDrive1:My calc.exe"  =calc   11 222 333
EXEC  -exe:"ud:D:\abc.fba:My calc.exe"  =calc   11 222 333


作者: mdyblog    时间: 2015-1-27 12:12
本帖最后由 mdyblog 于 2015-1-28 05:44 编辑
sp_star 发表于 2015-1-26 11:51
现在其实也是能实现的,主要是依赖一条PECMD命令: (需要安装imdisk)
RAMD ImDisk*&V*2097280s*5734529 ...


新版 PECMD 直接内生支持了。
作者: sp_star    时间: 2015-1-27 13:12
mdyblog 发表于 2015-1-27 12:12
新版 PECMD 直接内置了。

好啊!这样方便多了。
作者: pseudo    时间: 2015-1-27 21:12
jianliulin 发表于 2015-1-27 09:26
ud是fbinst万能启动的一个副产品,fbisnt v1.2的时候没有ud的。当引导成功grldr后fbinst的使命就完成了,剩 ...

ud扩展区相应分区表项可以有几种状态,例如
无分区表项
有正常分区表项
有类型为0,其它正常的分区表项
此外,还有是否第一项。

有正常分区表项可以支持uefi启动。无分区表项也是一种重要应用,除了uefi启动,其它方面都很好用,只需为ud扩展区文件生成一个对应分区头部的含文件列表的ud.fat文件。

作者: 潜水者    时间: 2015-1-27 23:04
pseudo 发表于 2015-1-27 21:12
ud扩展区相应分区表项可以有几种状态,例如
无分区表项
有正常分区表项

請問你最新的ope在那下。一直用13年版本,很久沒來。這幾天碰到筆記本華碩U啓不成功,卡在系統界面
作者: jianliulin    时间: 2015-1-28 08:05
pseudo 发表于 2015-1-27 21:12
ud扩展区相应分区表项可以有几种状态,例如
无分区表项
有正常分区表项

有分区表的可以用分区表项法来实现,没有分区表的可以直接往ud中丢“分区文件”。

用文件的形式更方便,比如可以弄很多个“分区文件”,想用哪个就用哪个,pecmd 现在可以根据ud的文件名来选择要挂着哪个“分区文件” ,如果ud.fat只能有一个“分区文件”,
作者: pseudo    时间: 2015-1-28 13:30
潜水者 发表于 2015-1-27 23:04
請問你最新的ope在那下。一直用13年版本,很久沒來。這幾天碰到筆記本華碩U啓不成功,卡在系統界面

这里2493楼 有一个。

就算13年版本应该也有办法启动成功。
开始时有读秒提示,提示有按空格、按回车等花样,您可能没试过。
如果中途卡住,开始时可以玩些花样,一般就好了。

尤其是,你把grldr+0pe.iso两文件拖入ud,开始提示时按空格,应该能进桌面,中途不会卡住。
作者: pseudo    时间: 2015-1-28 14:41
jianliulin 发表于 2015-1-28 08:05
有分区表的可以用分区表项法来实现,没有分区表的可以直接往ud中丢“分区文件”。

用文件的形式更方便 ...

不支持这种双国籍,ud文件系统暂时看不到发展方向了。

那就放弃ud文件系统吧。

谁做个功能:
1、为ud扩展区分配盘符,我们以后把ud扩展区当作一个深度隐藏区来用。
有盘符就可以随意格式化、放文件(可大于4G),直接资源管理器管理ud扩展区。启动时grldr把ud扩展区map一下,是可以看到所放文件的。
2、为ud扩展区建分区表项
方便uefi启动

作者: mdyblog    时间: 2015-1-28 21:35
本帖最后由 mdyblog 于 2015-1-28 21:36 编辑
pseudo 发表于 2015-1-28 14:41
不支持这种双国籍,ud文件系统暂时看不到发展方向了。

那就放弃ud文件系统吧。


可以用PECMD2012

建一个 FAT的IMG文件 efi.img  <4G
改名为ud1.fat

再用 pecmd  moun -udm -udfs  -udimg:  ud1.fat      软加载。

为...建分区表项: 可以把mbrostool 的功能移过来,  可以 加个开关  -mh
pecmd  moun -udm -udfs  -udimg:  ud1.fat   -mh        建分区表项:




作者: 潜水者    时间: 2015-1-28 22:51
pseudo 发表于 2015-1-28 13:30
这里2493楼 有一个。

就算13年版本应该也有办法启动成功。

谢了。我就是把那两个拖进ud。一直都是没按什么就让他进入系统
作者: 阿弥陀佛    时间: 2015-1-29 00:43
既然UD扩展分区看不到发展方向,不如就舍弃吧。每次仅建立UD主分区。那不就没那么多事了吗
作者: pseudo    时间: 2015-1-29 11:56
本帖最后由 pseudo 于 2015-1-29 11:59 编辑
mdyblog 发表于 2015-1-28 21:35
可以用PECMD2012

建一个 FAT的IMG文件 efi.img


这样这个efi.img仍有ud身份,且受限于4g,不能利用整个ud扩展区。

放弃ud文件系统,只把fbinsttool作为分区工具,划分出ud扩展区,然后不用fbinsttool管理该区,用别的工具(需要这种小工具)为ud扩展区分配盘符,然后用资源管理器直接管理,爱格成fat还是exfat、ntfs、ext2、hpfs随意,文件可以不受4g限制,把ud扩展区当作一个深度隐藏区来用,ud扩展区空间得到充分利用。

就是说,ud扩展区上的东西只有一种身份(那就不限于4G了),fbinsttool彻底放弃对其管理。
作者: 2010RENDQ    时间: 2015-2-1 11:49
此帖怎么沉了?期望有工具出来,让我们傻瓜化制作
作者: qqw123    时间: 2015-2-1 12:23

作者: 意玺世修    时间: 2015-2-8 08:29
jianliulin 发表于 2015-1-25 12:25
ud的文件列表是以一个个保存着文件信息(大小、名称等)结构体排列组成,以下是结构体的声明,

str ...

哪里呢小程序啊
作者: sunsea    时间: 2015-2-8 10:40
直接映射然后用windows的格式化功能格式化,然后修改ud文件分配表即可
作者: zds1210    时间: 2015-2-9 11:51
本帖最后由 zds1210 于 2015-2-9 11:53 编辑

为了挽救UD,大家一直在努力。
但这种PE内核打包整体启动,貌似也是造成兼容性问题的重要原因。
个人感觉还是简化型UD三分区或分区表项好,UD区就放一个grldr,其它放到高端区或映射的img中。
作者: sunsea    时间: 2015-2-9 17:39
pseudo 发表于 2015-1-28 14:41
不支持这种双国籍,ud文件系统暂时看不到发展方向了。

那就放弃ud文件系统吧。

我弄。
作者: sunsea    时间: 2015-2-10 13:27
本帖最后由 sunsea 于 2015-2-10 23:05 编辑
pseudo 发表于 2015-1-28 14:41
不支持这种双国籍,ud文件系统暂时看不到发展方向了。

那就放弃ud文件系统吧。


写好了,一个cmd脚本,配合pecmd2012(用cli版)和fbinst plus:
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. color 0a
  4. title ud.FAT制作工具 by sunsea
  5. echo ud.FAT制作工具
  6. echo.
  7. echo 1.全新制作
  8. echo 2.挂载盘符
  9. echo 3.制作分区表项
  10. echo 4.退出
  11. echo.
  12. set /p choice=请输入序号:
  13. if "%choice%"=="1" goto 1
  14. if "%choice%"=="2" goto 2
  15. if "%choice%"=="3" goto 3
  16. exit

  17. :1
  18. echo 请输入磁盘编号(别选错了!):
  19. fbinst.exe --hdlist "No.%%N %%I %%P"
  20. set /p choice=请输入磁盘编号(别选错了!如果列表为空请自觉退出):
  21. cls
  22. echo.
  23. echo 注意:您的U盘上的数据将在制作过程中彻底丢失!如果您没备份好请自觉退出
  24. pause
  25. set /p size=请输入UD区大小,单位为MB:
  26. set /p primarysize=请输入UD的主分区大小,单位为MB:
  27. set /p grldrfile=请输入你的引导器的路径:
  28. set /a size=%size%*1024*2
  29. set /a primarysize=%primarysize%*1024*2
  30. set /a extended=%size%-%primarysize%+6
  31. fbinst.exe (hd%choice%) format -f --fat32 -a --unit-size 8 -p %primarysize% -e %extended% -l 50
  32. fbinst.exe (hd%choice%) add grldr %grldrfile%
  33. set tempfilename=%random%
  34. set /a extstartsector=64+50+%primarysize%+3
  35. set /a extlengthsector=%extended%-6
  36. echo %extstartsector%s*%extlengthsector%s>"%TEMP%\%tempfilename%.txt"
  37. echo 不要往UD内添加其他文件或者进行碎片整理了!>"%TEMP%\警告.txt"
  38. fbinst.exe (hd%choice%) add extinfo.txt "%TEMP%\%tempfilename%.txt"
  39. fbinst.exe (hd%choice%) add 警告wanring.txt "%TEMP%\警告.txt"
  40. set udFATLength=
  41. if 8388608 LSS %extlengthsector% (set udFATLength=4294967295) else (set /a udFATLength=%extlengthsector%*512)
  42. fbinst.exe (hd%choice%) resize ud.FAT %udFATLength% -e
  43. PECMD.EXE RAMD ImDisk*V*%extstartsector%s*%extlengthsector%s*1*\\.\PhysicalDrive%choice% -a -o hd -m O:
  44. echo.
  45. set /p fs=请输入ud.FAT的文件系统名字(比如FAT32或者NTFS):
  46. format O: /fs:%fs% /q /v:udFAT
  47. echo.
  48. echo ud.FAT已经制作完毕!
  49. set /p exp=需要explorer游览吗?(y/n):
  50. if "%exp%"=="y" start /wait explorer O:
  51. echo 卸载。
  52. PECMD.EXE RAMD ImDisk* -D -m O:
  53. pause
  54. exit

  55. :2
  56. echo 请输入磁盘编号(别选错了!):
  57. fbinst.exe --hdlist "No.%%N %%I %%P" --ALL --UD
  58. set /p choice=请输入磁盘编号(别选错了!如果列表为空请自觉退出):
  59. cls
  60. fbinst.exe (hd%choice%) export extinfo.txt "%TEMP%\extinfo.txt"
  61. for /f "usebackq" %%a in ("%TEMP%\extinfo.txt") do set extinfo=%%a
  62. set /p mp=请输入挂载盘符:
  63. PECMD.EXE RAMD ImDisk*V*%extinfo%*1*\\.\PhysicalDrive%choice% -a -o hd -m %mp%:
  64. echo 挂载完毕!
  65. set /p exp=需要explorer游览吗?(y/n):
  66. if "%exp%"=="y" start /wait explorer %mp%:
  67. pause
  68. echo 卸载。
  69. PECMD.EXE RAMD ImDisk* -D -m O:
  70. exit

  71. :3
  72. echo 请输入磁盘编号(别选错了!):
  73. fbinst.exe --hdlist "No.%%N %%I %%P" --ALL --UD
  74. set /p choice=请输入磁盘编号(别选错了!如果列表为空请自觉退出):
  75. cls
  76. fbinst.exe (hd%choice%) export extinfo.txt "%TEMP%\extinfo.txt"
  77. for /f "usebackq" %%a in ("%TEMP%\extinfo.txt") do set extinfo=%%a
  78. set extinfo=%extinfo:*=,%
  79. set i=0
  80. for /f "delims=," %%a in ("%extinfo%") do (echo %%a>"%TEMP%\extinfo!i!.txt"&set /a i=!a!+1)
  81. for /f "usebackq" %%a in ("%TEMP%\extinfo0.txt") do set /a extstart=%%a
  82. for /f "usebackq" %%a in ("%TEMP%\extinfo1.txt") do set /a extlength=%%a
  83. rem 其实WIndows不管分区ID,只要是07或者0B都看得见且能用
  84. PECMD.EXE TEAM CALC #extstartbyte=%extstart%|CALC #extlengthbyte=%extlength%|PART -raw %choice%#4 %%extstartbyte%% %%extlengthbyte%%
  85. echo 生成完毕。
  86. pause
复制代码

作者: zds1210    时间: 2015-2-10 13:38
看了老大的帖子,还是不明白到底要把UD扩展区弄成什么样子?老大们能不能说清楚一些。
作者: sunsea    时间: 2015-2-10 17:57
mdyblog 发表于 2015-1-25 21:59
不占用分区表的, 只是在文件的flag中做了个标记。
是 深度隐藏的。


启动时自动加载,就有看需要提前到什么地步了,是提前于native的话我有驱动,提前于shell的话就一堆方案了
作者: pseudo    时间: 2015-2-10 18:56
本帖最后由 pseudo 于 2015-2-10 19:02 编辑

@sunsea
辛苦了。

想更方便:1产生了 (ud)/extinfo.txt文件,能否不要此文件,仍实现2、3。
pecmd能否不限于2012版。

另外,如果输入的序号是5或其它,可能会等效于1,有点风险。
作者: sunsea    时间: 2015-2-10 22:37
pseudo 发表于 2015-2-10 18:56
@sunsea
辛苦了。


extinfo.txt是留给grldr内的加载程序和编辑程序用的
作者: sunsea    时间: 2015-2-10 22:48
pseudo 发表于 2015-2-10 18:56
@sunsea
辛苦了。


extinfo.txt内有分区的偏移和长度,格式如下:
起始扇区号s*以扇区计量的分区长度s

到时直接读该文件即可
作者: sunsea    时间: 2015-2-10 23:02
pseudo 发表于 2015-2-10 18:56
@sunsea
辛苦了。


pecmd去不掉,扇区映射和分区表修改实在很方便
作者: mdyblog    时间: 2015-2-21 18:15
MBROSTOOL
已经实现了  UD扩展区  MAP成一个硬盘分区出来。
PECMD也实现了。
grldr也实现了。(包内有), 如果用默认的 grldr, 需要调用包内的 ldudpe来map UD。
还可以锁住UD区,防止fbt  fbi  等破坏。
现在 可以直接启动PE, 并在PE中加载 UD到盘符(Z:),访问外置。

效果:
6269#


PECMD.EXE (88.05.52)  UDM+FIXDRV.WCS 也支持 UDEXt

PE启动时, 自动加载  UDEXt效果图:


作者: zds1210    时间: 2015-2-22 00:38
mdyblog 发表于 2015-2-21 18:15
MBROSTOOL
已经实现了  UD扩展区  MAP成一个硬盘分区出来。
PECMD也实现了。


你这项把UD扩展区map成一个盘,能不能在原版的UD中使用?
能的话,又要怎么使用?
作者: mdyblog    时间: 2015-2-22 08:24
本帖最后由 mdyblog 于 2015-2-22 08:27 编辑
zds1210 发表于 2015-2-22 00:38
你这项把UD扩展区map成一个盘,能不能在原版的UD中使用?
能的话,又要怎么使用?


》》你这项把UD扩展区map成一个盘,能不能在原版的UD中使用?
能的话,又要怎么使用?
---------------------
1) 原版的UD 可以访问 主数据区,随便 编辑都可以。
2) 扩展区,只能查看允许看的那部分文件,不能编辑-----锁住了。
     ---目前,“查看允许看的那部分文件”,那部分界面还没写(接口设计好了),只是锁住了。目前投石问路,看大家的反映,喜欢,且我有时间就接着写。
     我想,“查看允许看的那部分文件”,没几个吧。就是几个重要的IMG。

3) BIOS启动时map成(hd0,0), 后面是透明的了。
4)    PE启动时, PECMD直接加载到盘符,  后面是透明的了。

作者: sunsea    时间: 2015-2-22 10:33
mdyblog 发表于 2015-2-21 18:15
MBROSTOOL
已经实现了  UD扩展区  MAP成一个硬盘分区出来。
PECMD也实现了。

原版ud?拓展区是按本楼的fat法吧?
作者: mdyblog    时间: 2015-2-22 12:59
zds1210 发表于 2015-2-22 00:38
你这项把UD扩展区map成一个盘,能不能在原版的UD中使用?
能的话,又要怎么使用?

贴张图吧!

作者: mdyblog    时间: 2015-2-22 13:00
本帖最后由 mdyblog 于 2015-2-22 13:04 编辑
sunsea 发表于 2015-2-22 10:33
原版ud?拓展区是按本楼的fat法吧?


原版ud
FbinstTool 1.607.2015.0119.EXE  其它版本也可以。

可能差不多吧。
没有 ud.FAT
扩展区不需要一个文件(或尸体)。

作者: sunsea    时间: 2015-2-22 16:21
mdyblog 发表于 2015-2-22 13:00
原版ud
FbinstTool 1.607.2015.0119.EXE  其它版本也可以。

恩。
我那个脚本其实也不需要,不过是占位罢了
作者: ali88home    时间: 2015-2-24 18:26
后学这样一个想法,不知可通也?

把可见分区建立在最前面,UD建立在中端深度隐藏,由UD建立出来的分区表项分区,自然变成最后隐藏分区+v2

如此数据由最后往前面推计算,后学认为grub4dos应该可以在中端启动才是。

NTFS+UD+V2=三分区
作者: pseudo    时间: 2015-2-25 15:52
嗯,请J大看看能否做个调整:格盘时,允许选择ud扩展区起点——起点可以像原来那样紧接(8M)ud区,也可以往后平移到某处(可简单地让ud扩展区充满u盘后端)。
这可能需要修正某些fbinstplus、fbinsttool代码。但从概念上说,变动将很有限,比较可行。

变动之后,fbinsttool照常管理ud区和ud扩展区,用户习惯完全不变。

变动之后,u盘可以做成单分区表项结构:
(8M)ud区(不可见)+普通区(分区表项排第一,自然可见)+ud扩展区(不可见)
分区表项法映射ud扩展区的efi.img后,ufi区对应第二分区表项,自然对windows隐藏。
由于保持了第一分区表项对应低端分区,可极大提高efi启动成功率。

缺点是ud扩展区靠后可能BIOS启动时影响读盘,这由用户了解利弊后自己设法应对就是了。
作者: mdyblog    时间: 2015-2-25 20:40
本帖最后由 mdyblog 于 2015-2-25 20:43 编辑
pseudo 发表于 2015-2-25 15:52
嗯,请J大看看能否做个调整:格盘时,允许选择ud扩展区起点——起点可以像原来那样紧接(8M)ud区,也可以往 ...


MBROSTool -16 已经支持了---高端隐藏。


同时支持 扩展同步到UD目录。

MBROSTool5.3-16B-支持UD扩展区.7z

支持同步 UD扩展区的文件 到 UD目录。 FBInstTool 等也可以看到这个文件。
udext.exp中保存   UD扩展区的文件 需要输出到 UD的文件名 列表。UTF8编码。
选【同步到UD目录】,就会 同步到UD目录,并报告结果。



同步后的报告:




对于那些在UD中无效的文件,会提示滴。



作者: pseudo    时间: 2015-2-25 23:47
没有udext.exp文件时,等效于有一个包含UD扩展区所有文件列表的udext.exp文件?
“同步到UD目录”反过来也行?
作者: mdyblog    时间: 2015-2-26 00:14
pseudo 发表于 2015-2-25 23:47
没有udext.exp文件时,等效于有一个包含UD扩展区所有文件列表的udext.exp文件?
“同步到UD目录”反过来也 ...


1: >>没有udext.exp文件时,等效于有一个包含UD扩展区所有文件列表的udext.exp文件?
需要输出的文件,其实很少。大概就efi.img.
其它,输出,还真没看到有什么实际的用途。

1)BIOS启动阶段:
现在UD启动后,直接看到的目录就是(hd0,0),  就是UD扩展区本身,不在是(ud).
在bios启动阶段,用户  不用 (ud) 了,直接用(hd0,0)。什么文件都看的清清楚楚。
相当于一个扩展的(udext).

2)windows阶段:也是直接访问 UD扩展区本身, 自动记载到盘符。


现在UD主区,就放个引导文件,和 udext.exp.


2: “同步到UD目录”反过来也行?
现在没有这个必要。
1) 操作主要在 扩展区的文件系统上。文件直接拷过来就可以了。
对于需要输出到UD的文件,碎片整理下,在点下 “同步到UD目录”就可以了。
事实上,需要导出的IMG文件,一般创建后就不动了,所以“同步到UD”一次后, 再也不需要 “同步到UD”了。

2) UD扩展区被锁住了, FBtool不能创建会修改文件。所以, 自然就没有 UD-->文件系统 这回事。
再说,那样也太费劲了,直接拷贝过去就完了,干嘛 非得绕过圈子,绕UD,创建,在导过来?

扩展区的操作 是“以文件系统上操作为主”,需要才同步到UD。



作者: yhhxlp    时间: 2015-3-15 21:32
是把整个ud区当作fat分区吗?




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3