无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: pseudo
打印 上一主题 下一主题

ud.FAT法:把UD扩展区当作fat区

  [复制链接]
31#
发表于 2015-1-25 22:23:29 | 只看该作者
mdyblog 发表于 2015-1-25 21:59
不占用分区表的, 只是在文件的flag中做了个标记。
是 深度隐藏的。

信息还是存在分区表项的位置?
自动加载也不难的,可以查找UD内所有文件,自动挂载 .IMG后缀的(或者约定一个特别的后缀)。这样UD完全不用特别的操作。
回复

使用道具 举报

32#
发表于 2015-1-25 22:27:12 | 只看该作者
mdyblog 发表于 2015-1-25 22:06
》》我还是不太明白,实现你说的功能是不是要一个ud的windows驱动??
不是的。
是要对FBT这个软件进 ...

fbinst 和udm 还是有本质上的区别的,两者并不类似。
回复

使用道具 举报

33#
发表于 2015-1-25 22:32:39 | 只看该作者
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   






回复

使用道具 举报

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


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

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

使用道具 举报

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

呵呵,看你映射EFI什么的,可能是理解错你的意思了。
回复

使用道具 举报

36#
发表于 2015-1-25 22:39:09 | 只看该作者
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挂载出来,可以加载其中的外置。

这样是不是一样了?
回复

使用道具 举报

37#
发表于 2015-1-25 22:39:38 | 只看该作者
sp_star 发表于 2015-1-25 22:35
呵呵,看你映射EFI什么的,可能是理解错你的意思了。

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

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

使用道具 举报

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

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

grldr, menu.lst, TEST.IMG 直接放到标准文件系统不就完事了。
省事多了。随便一个软件都可以编辑修改访问。
回复

使用道具 举报

39#
发表于 2015-1-26 10:39:37 | 只看该作者
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不是菜单提示的最佳分辨率

回复

使用道具 举报

40#
发表于 2015-1-26 11:36:23 | 只看该作者
本帖最后由 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不是菜单提示的最佳分辨率
而是最安全的 分辨率。 分辨率设置错误 黑屏了,就按这个。


回复

使用道具 举报

41#
发表于 2015-1-26 11:49:25 | 只看该作者
本帖最后由 jianliulin 于 2015-1-26 21:08 编辑

P大,

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

3232+ 2 * 4096 /512 =3248

你上面怎么算得3240??





回复

使用道具 举报

42#
发表于 2015-1-26 11:51:09 | 只看该作者
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的那个帖子还提供了驱动级的加载。
回复

使用道具 举报

43#
 楼主| 发表于 2015-1-26 12:44:59 | 只看该作者
本帖最后由 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,一切就简单了。

点评

清楚的问题。 1.把整个扩展分区映射到mbr,没有问题。 2.预留空间让给fat表,也没问题 有疑问的问题。 3.因为ud要求是连续存放的,windows无法保证是连续存放,所以文件是还是由fbinsttool维护,是否是这样?  详情 回复 发表于 2015-1-26 13:26
回复

使用道具 举报

44#
发表于 2015-1-26 13:26:08 | 只看该作者
pseudo 发表于 2015-1-26 12:44
实例来了

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

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

有疑问的问题。
3.因为ud要求是连续存放的,windows无法保证是连续存放,所以文件是还是由fbinsttool维护,是否是这样???
回复

使用道具 举报

45#
发表于 2015-1-26 21:09:12 | 只看该作者

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


P大,

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

3232+ 2 * 4096 /512 =3248

你上面怎么算得3240??
回复

使用道具 举报

46#
 楼主| 发表于 2015-1-26 21:23:47 | 只看该作者
本帖最后由 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本身代码。
回复

使用道具 举报

47#
发表于 2015-1-26 21:27:27 | 只看该作者
老大们有新想法,很好,以后一定能搞出新玩意来。支持一下。
回复

使用道具 举报

48#
 楼主| 发表于 2015-1-26 22:23:30 | 只看该作者
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文件夹,这点要设法对付,别让它占开头位置抢生意。
回复

使用道具 举报

49#
发表于 2015-1-27 09:26:42 | 只看该作者
本帖最后由 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区文件系统。
回复

使用道具 举报

50#
发表于 2015-1-27 10:42:36 | 只看该作者
本帖最后由 tiansw1 于 2015-1-27 10:47 编辑

多揣个优盘而已,不要太难为fb了,毕竟它只是针对老机器开发的。{:soso_e113:}就像grldr一样,没有合法的身份,没有厂商在开发软硬件时会把它作为兼容测试对象,每有新东西问世,grldr就会跟着修改,适应了新的,往往就放弃了旧的,兼容性很难保证。
回复

使用道具 举报

51#
发表于 2015-1-27 12:02:21 | 只看该作者
本帖最后由 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

回复

使用道具 举报

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


新版 PECMD 直接内生支持了。
回复

使用道具 举报

53#
发表于 2015-1-27 13:12:16 | 只看该作者
mdyblog 发表于 2015-1-27 12:12
新版 PECMD 直接内置了。

好啊!这样方便多了。
回复

使用道具 举报

54#
 楼主| 发表于 2015-1-27 21:12:05 | 只看该作者
jianliulin 发表于 2015-1-27 09:26
ud是fbinst万能启动的一个副产品,fbisnt v1.2的时候没有ud的。当引导成功grldr后fbinst的使命就完成了,剩 ...

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

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

点评

有分区表的可以用分区表项法来实现,没有分区表的可以直接往ud中丢“分区文件”。 用文件的形式更方便,比如可以弄很多个“分区文件”,想用哪个就用哪个,pecmd 现在可以根据ud的文件名来选择要挂着哪个“分区文  详情 回复 发表于 2015-1-28 08:05
請問你最新的ope在那下。一直用13年版本,很久沒來。這幾天碰到筆記本華碩U啓不成功,卡在系統界面  详情 回复 发表于 2015-1-27 23:04
回复

使用道具 举报

55#
发表于 2015-1-27 23:04:28 | 只看该作者
pseudo 发表于 2015-1-27 21:12
ud扩展区相应分区表项可以有几种状态,例如
无分区表项
有正常分区表项

請問你最新的ope在那下。一直用13年版本,很久沒來。這幾天碰到筆記本華碩U啓不成功,卡在系統界面
回复

使用道具 举报

56#
发表于 2015-1-28 08:05:43 | 只看该作者
pseudo 发表于 2015-1-27 21:12
ud扩展区相应分区表项可以有几种状态,例如
无分区表项
有正常分区表项

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

用文件的形式更方便,比如可以弄很多个“分区文件”,想用哪个就用哪个,pecmd 现在可以根据ud的文件名来选择要挂着哪个“分区文件” ,如果ud.fat只能有一个“分区文件”,
回复

使用道具 举报

57#
 楼主| 发表于 2015-1-28 13:30:54 | 只看该作者
潜水者 发表于 2015-1-27 23:04
請問你最新的ope在那下。一直用13年版本,很久沒來。這幾天碰到筆記本華碩U啓不成功,卡在系統界面

这里2493楼 有一个。

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

尤其是,你把grldr+0pe.iso两文件拖入ud,开始提示时按空格,应该能进桌面,中途不会卡住。

点评

谢了。我就是把那两个拖进ud。一直都是没按什么就让他进入系统  详情 回复 发表于 2015-1-28 22:51
回复

使用道具 举报

58#
 楼主| 发表于 2015-1-28 14:41:09 | 只看该作者
jianliulin 发表于 2015-1-28 08:05
有分区表的可以用分区表项法来实现,没有分区表的可以直接往ud中丢“分区文件”。

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

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

那就放弃ud文件系统吧。

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

点评

写好了,一个cmd脚本,配合pecmd2012(用cli版)和fbinst plus:  详情 回复 发表于 2015-2-10 13:27
我弄。  详情 回复 发表于 2015-2-9 17:39
可以用PECMD2012 建一个 FAT的IMG文件 efi.img  详情 回复 发表于 2015-1-28 21:35
回复

使用道具 举报

59#
发表于 2015-1-28 21:35:15 | 只看该作者
本帖最后由 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        建分区表项:



回复

使用道具 举报

60#
发表于 2015-1-28 22:51:06 | 只看该作者
pseudo 发表于 2015-1-28 13:30
这里2493楼 有一个。

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

谢了。我就是把那两个拖进ud。一直都是没按什么就让他进入系统
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-4 06:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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