无忧启动论坛

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

[分享] 用imdisk替代firadisk,制作ramos,强于vsuite

  [复制链接]
跳转到指定楼层
1#
发表于 2011-12-30 23:37:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
用imdisk替代firadisk,制作ramos,强于vsuite

已成功,筒子们,膜拜吧!!!
看视频 xp-测试 视频.part1.rar (292.97 KB, 下载次数: 349) xp-测试 视频.part2.rar (292.97 KB, 下载次数: 347) xp-测试 视频.part3.rar (292.97 KB, 下载次数: 352) xp-测试 视频.part4.rar (261.23 KB, 下载次数: 372)


优点:
1.动态扩容!!
2. img映像的定位很好解决!通过文件路径定位,通用性强(vsuite的img文件位置固定,不好移动,换一台机可能出现问题,没有通用性)

方法:
需要:正在使用的xp,
1.安装imdisk
2.导入注册表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ImDisk]
"Start"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk\Parameters]
"DriveLetter0"="i"
"FileName0"="\\??\\D:\\imdisk.IMG"
"Flags0"=dword:00000200
"LoadDevices"=dword:00000001

3.制作img:D:\imdisk.IMG ,这是重点!!
img 要同时兼容 grub 和 imdisk
① grub map  需要能成功
② imdisik 能识别,能开机时自动加载 (用imdisk创建的img符合要求,但是grub无法map成功)
改注册表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk\Parameters]
"DriveLetter0"="C"
然后改盘符SYSTEM中“MountedDevices”,C和 I 对调

4.grub菜单,

title imdisk.IMG
find --set-root /imdisk.IMG
map (hd0) (hd1)
map /imdisk.IMG (hd0)
map --hook
chainloader (hd0,0)/ntldr

启动即可!!!


目前主要是要找出 兼容的img格式,如果找不出,只能跟用两份img,一份grub用,一份imdisk用 ,
      有兴趣的可以试试各种创建img的软件,找到兼容的img

最新成果: imdisk 支持分区格式映像

但是grub  map分区格式的img会出问题 ,好像要加一条什么命令才可以,忘了,谁知道的,指点下!!



[ 本帖最后由 2011dingfei 于 2012-1-2 20:45 编辑 ]
推荐
发表于 2011-12-31 13:38:46 | 只看该作者
swapadd.exe 这个东西,哪里有啊?
回复

使用道具 举报

推荐
 楼主| 发表于 2011-12-31 13:23:04 | 只看该作者
对了,方法就是:改注册表,让imdisk提早启动。
你测试一下,能不能设置虚拟内存到那个盘上,也就是说:让imdisk启动时间早于系统建立虚拟内存文件的时间
如果能成功,那么就可以实现imdisk加载系统盘,
回复

使用道具 举报

推荐
发表于 2011-12-31 12:05:29 | 只看该作者
方法呀,快点....

---------
google了一下.imdisk官方网站上提供的swapadd应该可以设置虚拟内存.
swapadd 页面文件(完整路径 最小值 最大值
swapadd.exe c:\pagefile.sys 128M 256M

---------
你说的修改服务启动顺序是这个吗? http://bbs.wuyou.net/forum.php?mod=viewthread&tid=186504&
http://support.microsoft.com/kb/115486/zh-cn
楼主在不在呀. 赶紧的把方法告诉我呀.

---------
楼主是已经测试了吗? 为什么我用注册表加载开机就要重新格式化.而用右键或者是控制面版却可以加载.

---------
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=106314
这里说imdisk  当镜像不是一个分区文件而是整个硬盘时要用到 -b 参数.我觉得可能是用楼主提供的注册表不会调用这个参数.因为我的IMG是硬盘映像.

---------
失败了 imdisk不能在注册表加载时设置偏移量参数

[ 本帖最后由 loveqianool 于 2012-10-3 02:13 编辑 ]
回复

使用道具 举报

推荐
 楼主| 发表于 2011-12-31 15:08:49 | 只看该作者

回复 #2 loveqianool 的帖子

回复 #2 loveqianool 的帖子

要方法,只是理论上可行,我还没有测试,最近期末考试,忙
先看看这个http://bbs.wuyou.net/viewthread. ... p;extra=&page=1
我的方法:
1.一个正在使用的xp系统
2.创建img,如:D:\ramos.IMG
3.导入注册表,使得imdisk开机时自动加载img为内存盘

  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ImDisk]
  3. "Start"=dword:00000001

  4. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk\Parameters]
  5. "DriveLetter0"="S"
  6. "FileName0"="\\??\\D:\\ramos.IMG"
  7. "Flags0"=dword:00000200
  8. "LoadDevices"=dword:00000001
复制代码

4.安装imdisk ,此时D:\ramos.IMG被自动加载到内存盘,盘符为S
5.修改注册表,改盘符,s和C对调
6.改注册表,让imdisk和 firadisk、vsuite等驱动一样的早启动,或更早
7,重启,进入另一个系统,如PE
8.把xp拷贝入D:\ramos.IMG
9,通过grub启动ramos
菜单:

  1. title imdisk ramdisk
  2. find --set-root /ramos.IMG
  3. map (hd0) (hd1)
  4. map /ramos.IMG (hd0)
  5. map --hook
  6. chainloader (hd0,0)/ntldr
复制代码

10.ok,成功

[ 本帖最后由 2011dingfei 于 2011-12-31 15:13 编辑 ]
回复

使用道具 举报

32#
发表于 2023-11-6 14:33:08 | 只看该作者
谢谢分享
回复

使用道具 举报

31#
发表于 2015-1-28 14:09:25 | 只看该作者
楼主纠结于 imdisk 不能识别带分区表的硬盘映像。可是,grub4dos 早就有三重 mbr 这种技术,尤其是后来发展出的 fbinst 和 multimbr,都是一个 “两栖类” 映像格式,既可以当作硬盘,也可以当作软盘。所谓硬盘,就是指带有分区表;所谓软盘,就是指不带分区表。

具体的技术很简单,MBR 上既有分区表,也有 FAT 文件系统的 BPB 表。这就是双重格式。但这种技术只能用于 FAT 格式,无法用于 NTFS 格式。

回复

使用道具 举报

30#
发表于 2015-1-28 12:52:27 | 只看该作者
x9tian 发表于 2015-1-28 10:36
map --mem (hd06)+1 (hd0) 后,g4d 有保存分区表的命令没有
dd  if    命令 写到文件  是写map第一个扇 ...

新版GRUB4DOS已经支持将分区镜像当成硬盘启动了,请自己去看下MAP命令的参数
回复

使用道具 举报

29#
发表于 2015-1-28 10:36:19 来自手机 | 只看该作者
不点 发表于 2012-1-1 22:06
抱歉,看错了。

你是要 map 一个不含分区表的 IMG 为硬盘。目前这是没能实现的。必须使用 --mem 才可以 ...

map --mem (hd06)+1 (hd0) 后,g4d 有保存分区表的命令没有
dd  if    命令 写到文件  是写map第一个扇区吗
点大能写个试例么
回复

使用道具 举报

28#
发表于 2014-12-26 22:15:40 | 只看该作者
可惜了,虽然版本高了,但IMDISK的注册表加载还是没公开新的信息,会看源码一点也不出个教程出来
回复

使用道具 举报

27#
发表于 2014-8-4 16:02:43 | 只看该作者
帮楼主顶下,帮楼主顶下
回复

使用道具 举报

26#
发表于 2014-6-27 14:23:16 | 只看该作者
测试过W81么?
回复

使用道具 举报

25#
发表于 2012-5-15 21:05:00 | 只看该作者
怎么实现imdisk开机win7创建Y盘格式化好了的,imdisk -a -s 600M -m Y: -p "/FS:NTFS /C /Y /Q" 命令能成功创建Y盘,但还要手工格式化,想开机就创建好一个内存盘总是不行,PE的可以,但win7我也是管理员权限还是要手工格式化
回复

使用道具 举报

24#
发表于 2012-5-8 11:40:39 | 只看该作者
4#楼 我给你发个swapadd的下载地址

http://www.ltr-data.se/files/swapadd.zip
回复

使用道具 举报

23#
发表于 2012-4-1 19:58:59 | 只看该作者

请问IMDISK的RAMOS

如果是WIN7,是不是修改menu.lst就可以了??????????????能不能直接在F驱动的RAMOS中安装IMDISK。。。。再备份,,,,再修改menu.lst
回复

使用道具 举报

22#
发表于 2012-1-4 08:32:23 | 只看该作者
原帖由 2011dingfei 于 2012-1-3 22:12 发表
可以设置啊!我就可以直接设置虚拟内存文件到imdisk! 要导入我的注册表


我的是2003,没有XP
可能你的注册表不适合2003

关键是安装后,注册表里面没有像其它工具那样,出现内存盘符(如,R,Y,X等)

V驱动,那个镜像不方便.F驱动,还没用过

目前,觉得还是MS的东西最方便了.
现在制作方便,一个工具,自动完成.
IMG的,放硬盘比较方便,
WIM的,硬盘,U盘,光盘都可以.
回复

使用道具 举报

21#
发表于 2012-1-3 22:27:29 | 只看该作者
Flags0"=dword:00000200这个标志值表示将镜像复制到内存再挂载

这个img好像特殊,用其它方式创建img再加载到内存是 ?号盘,两个img确实有点不方便。
另外,好象复制到内存用的时间比加载普通img时间长一些。

[ 本帖最后由 2011mking 于 2012-1-3 22:37 编辑 ]
回复

使用道具 举报

20#
 楼主| 发表于 2012-1-3 22:12:19 | 只看该作者

回复 #18 dvd008 的帖子

可以设置啊!我就可以直接设置虚拟内存文件到imdisk! 要导入我的注册表
回复

使用道具 举报

19#
发表于 2012-1-3 16:37:19 | 只看该作者

回复 #10 2011dingfei 的帖子

要么你直接MAP --MEM试试
回复

使用道具 举报

18#
发表于 2012-1-3 10:18:04 | 只看该作者
内存盘,为什么我安装后,注册表并没有那个盘符(我设置为Y,因此没有办法C---Y对调)
不做这个, 看见WINDOWS启动画面后,蓝屏,自动重启.

页面文件,好像没有办法成功设置在IMDISK的虚拟盘

目前,有3个软件的虚拟盘,支持页面文件.最好的是V那个软件.
回复

使用道具 举报

17#
发表于 2012-1-3 05:55:43 | 只看该作者
支持尝试                                  .
回复

使用道具 举报

16#
 楼主| 发表于 2012-1-2 23:21:46 | 只看该作者

回复 #15 bardlet 的帖子

找到兼容的img
或者开发一个grub外部命令什么的
回复

使用道具 举报

15#
发表于 2012-1-2 22:31:20 | 只看该作者
只能用两份img,一份grub用,一份imdisk用
这也太不爽了
回复

使用道具 举报

14#
 楼主| 发表于 2012-1-2 13:37:57 | 只看该作者
x,找到源代码了,似乎不支持硬盘镜像啊!

/// Read-only device
#define IMDISK_OPTION_RO                0x00000001

/// Check if flags specifies read-only
#define IMDISK_READONLY(x)              ((ULONG)(x) & 0x00000001)

/// Removable, hot-plug, device
#define IMDISK_OPTION_REMOVABLE         0x00000002

/// Check if flags specifies removable
#define IMDISK_REMOVABLE(x)             ((ULONG)(x) & 0x00000002)

/// Device type is virtual harddisk partition
#define IMDISK_DEVICE_TYPE_HD           0x00000010
/// Device type is virtual floppy drive
#define IMDISK_DEVICE_TYPE_FD           0x00000020
/// Device type is virtual CD/DVD-ROM drive
#define IMDISK_DEVICE_TYPE_CD           0x00000030

/// Extracts the IMDISK_DEVICE_TYPE_xxx from flags
#define IMDISK_DEVICE_TYPE(x)           ((ULONG)(x) & 0x000000F0)

/// Virtual disk is backed by image file
#define IMDISK_TYPE_FILE                0x00000100
/// Virtual disk is backed by virtual memory
#define IMDISK_TYPE_VM                  0x00000200
/// Virtual disk is backed by proxy connection
#define IMDISK_TYPE_PROXY               0x00000300

/// Extracts the IMDISK_TYPE_xxx from flags
#define IMDISK_TYPE(x)                  ((ULONG)(x) & 0x00000F00)

/// Proxy connection is direct-type
#define IMDISK_PROXY_TYPE_DIRECT        0x00000000
/// Proxy connection is over serial line
#define IMDISK_PROXY_TYPE_COMM          0x00001000
/// Proxy connection is over TCP/IP
#define IMDISK_PROXY_TYPE_TCP           0x00002000
/// Proxy connection uses shared memory
#define IMDISK_PROXY_TYPE_SHM           0x00003000

/// Extracts the IMDISK_PROXY_TYPE_xxx from flags
#define IMDISK_PROXY_TYPE(x)            ((ULONG)(x) & 0x0000F000)

/// Extracts the IMDISK_PROXY_TYPE_xxx from flags
#define IMDISK_IMAGE_MODIFIED           0x00010000

/// Specify as device number to automatically select first free.
#define IMDISK_AUTO_DEVICE_NUMBER       ((ULONG)-1)

[ 本帖最后由 2011dingfei 于 2012-1-2 13:39 编辑 ]
回复

使用道具 举报

13#
 楼主| 发表于 2012-1-2 12:05:15 | 只看该作者

回复 #11 dvd008 的帖子

我可以成功,我用的是imdisk 1.42版本
你开机自动加载了内存盘吗
可以加Q聊 913015993

[ 本帖最后由 2011dingfei 于 2012-1-2 12:06 编辑 ]
回复

使用道具 举报

12#
 楼主| 发表于 2012-1-2 12:04:06 | 只看该作者

回复 #7 不点 的帖子

不点兄
我查了命令,imdisk可以用命令
-b offset
  -v partition
加载硬盘映像
但是注册表中该怎么写呢?

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ImDisk]
"Start"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ImDisk\Parameters]
"DriveLetter0"="S"
"FileName0"="\\??\\D:\\ramos.IMG"
"Flags0"=dword:00000200
"LoadDevices"=dword:00000001

这里的怎么加上 -b offset  参数呢??
回复

使用道具 举报

11#
发表于 2012-1-2 11:54:48 | 只看该作者
没成功. 注册表没有内存盘的盘符

貌似页面文件设置不成功.但是VS的可以.
回复

使用道具 举报

10#
 楼主| 发表于 2012-1-2 11:54:45 | 只看该作者

回复 #6 不点 的帖子

imdisk我测试不能加载硬盘映像

map (hd0,6)+1 (hd0) 是把分区映射为硬盘吗?
那我可不可以把把分区格式img 先映射为一个分区,再映射为硬盘呢?

目前只有两个途径:1.让imdisk支持开机自动加载硬盘映像
                               2. 让grub 支持map   分区映像
回复

使用道具 举报

9#
 楼主| 发表于 2012-1-2 11:50:45 | 只看该作者

回复 #8 dvd008 的帖子

页面文件可以直接在计算机属性了设置。

关键是imdisk 不支持 硬盘映像!!没办法,谁能改imdisk 让它支持硬盘映像
回复

使用道具 举报

8#
发表于 2012-1-2 09:04:54 | 只看该作者
你确定可以成功? 页面文件也能设置成功? 没有那个EXE文件,怎么设置?

映像可能比较简单,使用DISKGEN创建,选择硬盘映像,大小自定义.
回复

使用道具 举报

7#
发表于 2012-1-1 22:06:21 | 只看该作者
抱歉,看错了。

你是要 map 一个不含分区表的 IMG 为硬盘。目前这是没能实现的。必须使用 --mem 才可以自动添加分区表。

你应该自己为你的 IMG 添加分区表,变成硬盘映像,这样就没问题了。
回复

使用道具 举报

6#
发表于 2012-1-1 21:59:55 | 只看该作者
关于 grub4dos,你没有说出什么错了,可能是你的用法错误呢。

试试这样的用法:

map (hd0,6)+1 (hd0)

注意,分区是用 +1 来表示的。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-10-19 02:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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