无忧启动论坛

标题: 用grub直接启动xp embedded的sdi成功! [打印本页]

作者: fujianabc    时间: 2006-1-15 10:37
标题: 用grub直接启动xp embedded的sdi成功!
[这个贴子最后由fujianabc在 2006/02/25 01:29pm 第 3 次编辑]

早在去年某个grub版本之后,grub就加入了启动sdi的功能,但是一直没有成功启动过。今天,经过我的一些尝试之后,终于用grub成功启动了xp embedded的sdi。这样,结合了grub和sdi的优点,启动方法有又多了一种选择。
在测试中,我使用了hnlyzhd在下面帖子中制作的xp embedded(20M的和90多兆的都能成功)
http://bbs.wuyou.net/cgi-bin/top ... topic=57&show=0
sdi的制作和启动方法如下:
1、下载并安装我提供的sdi制作工具精简版,
http://bbs.wuyou.net/cgi-bin/top ... =10744&show=100
如果已安装了xp embedded自定义工具的可以略去此步。
2、请准备三个文件:osloader.exe,ntdetect.com,bootfont.bin(这个文件可以不要)
以上三个文件可以从任意一张xp/2003的安装光盘中获得(光盘中的文件可能是压缩的,请解压),只是要注意文件版本不能比所要引导的xp embedded版本低(对于hnlyzhd的xp embedded,三个文件只要xp sp1以上版本的即可)。
下载并解压startrom.com(此文件来自2003 sp1光盘)下载处在文章末尾。
3、提取hnlyzhd的sdi中的所有文件(关于xp embedded sdi的文件提取方法在后面附注中说)。
以那个20M的sdi为例,就是KERNEL一个文件夹。
4、把提取出来的文件复制到一个空分区下面(如果没有空分区,就用sdi loader制作一个容量适当的虚拟磁盘分区),设这个分区盘符为f:盘。
复制步骤2的ntdetect.com和bootfont.bin至此盘(若原有就覆盖之,以保持步骤2中文件版本的一致性)。
5、在f:盘中创建一个boot.ini(若原有就删除),内容如下:
[boot loader]
timeout=0
default=ramdisk(0)\KERNEL
[operating systems]
ramdisk(0)\KERNEL="Windows XP EMBEDDED" /fastdetect
其中ramdisk(0)\KERNEL是以20M的那个xp embedded为例的,请根据实际路径编写;timeout的值随便。
6、用cmd进入sdimgr.wsf所在目录执行以下命令:
sdimgr /new d:\new.sdi  (创建一个名为d:\new.sdi的新sdi)
sdimgr d:\new.sdi /readpart:f:  (把f:分区加入new.sdi)
sdimgr d:\new.sdi /import:BOOT,0,path\startrom.com
sdimgr d:\new.sdi /import:LOAD,0,path\osloader.exe   (分别把startrom.com和osloader.exe导入new.sdi文件,请在startrom.com和osloader.exe前加上相应路径)
sdimgr d:\new.sdi /pack  (重新排布此sdi的结构)
7、至此sdi制作完成,此sdi文件便可在grub中启动了。在grub中调用的的命令如下:
chainloader --sdi (path)/new.sdi
boot
另外,sdi文件还可以用gzip格式压缩,照样能用grub启动。

附注:提取xp embedded的sdi中文件的方法:
设此sdi文件名为xpe.sdi,执行命令:
sdimgr path\xpe.sdi /export:PART,path\xpe.ima  (path要为指定路径),
生成xpe.ima,用winimage 8.0打开此文件即可提取其中的所有文件了。

[ 本帖最后由 fujianabc 于 2006-8-1 09:11 AM 编辑 ]

startrom.rar

8.99 KB, 下载次数: 793, 下载积分: 无忧币 -2


作者: xdg3669    时间: 2006-1-15 12:30
标题: 用grub直接启动xp embedded的sdi成功!
支持!又多了一个选择!同样用pe生成的SDI应该一样可以用grub启动!!
作者: WANG6610    时间: 2006-1-15 14:46
标题: 用grub直接启动xp embedded的sdi成功!
祝贺!!!!!!!!!!!!
作者: jeffzhang    时间: 2006-1-15 18:37
标题: 用grub直接启动xp embedded的sdi成功!
支持一下,虽然我不懂。
作者: nagoste    时间: 2006-1-16 16:33
标题: 用grub直接启动xp embedded的sdi成功!
好强啊,顶!

作者: plutoshen    时间: 2006-1-17 14:25
标题: 用grub直接启动xp embedded的sdi成功!
http://bbs.wuyou.net/cgi-bin/topic.cgi?forum=34&topic=11857&show=0
大侠:
chainloader --sdi (path)/new.sdi
boot
具体怎么写?
我的是
chainloader --sdi (hd0,0)/xpe.sdi
boot
为什么提示找不到xpe.sdi?
作者: fujianabc    时间: 2006-1-17 19:48
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由plutoshen2006/01/17 02:25pm 发表的内容:
http://bbs.wuyou.net/cgi-bin/topic.cgi?forum=34&topic=11857&show=0
大侠:
chainloader --sdi (path)/new.sdi
boot
...
你可以具体看一下定置的grub使用说明,这是grub的最基本操作。
作者: chenall    时间: 2006-1-17 20:19
标题: 用grub直接启动xp embedded的sdi成功!
只能启动hnlyzhd制作的那两个XPE.
其它的都没办法
作者: fujianabc    时间: 2006-1-17 20:22
标题: 用grub直接启动xp embedded的sdi成功!
xp embedded的都能行的
作者: chenall    时间: 2006-1-18 08:50
标题: 用grub直接启动xp embedded的sdi成功!
lxl1638做的128MB和256MB算不算是XPE呢.
我试了没有成功过,楼主试试看行不行.研究好了分享一下.
作者: fujianabc    时间: 2006-1-18 09:34
标题: 用grub直接启动xp embedded的sdi成功!
lxl1638做的是winpe,不是embedded
作者: plutoshen    时间: 2006-1-18 10:02
标题: 用grub直接启动xp embedded的sdi成功!
能不能用grub直接启动winpe的sdi呀?
老大研究一下吧,那个很有前途的。。。
作者: fujianabc    时间: 2006-1-18 16:58
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由plutoshen2006/01/18 10:02am 发表的内容:
能不能用grub直接启动winpe的sdi呀?
老大研究一下吧,那个很有前途的。。。
能否用grub启动winpe的sdi,暂时没有答案,主要存在下面这个问题:
启动时所采用的载入程序:
普通的ramdisk启动sdi,xp embedded用ntldr,winpe用setupldr.bin,
grub的ramdisk启动sdi,xp embedded用osloader.exe,winpe由该用哪个呢?

作者: plutoshen    时间: 2006-1-27 13:03
标题: 用grub直接启动xp embedded的sdi成功!
我用那个20M的sdi试验,提示boot.ini无效。
我是按照你的写法做的,为什么不行?
作者: wuyouman01    时间: 2006-1-27 16:00
标题: 用grub直接启动xp embedded的sdi成功!
Error -2147467259 (0x80004005) in "SDIAUT.SDIFile.1": 系统找不到指定的路径。
作者: wuyouman01    时间: 2006-1-27 16:34
标题: 用grub直接启动xp embedded的sdi成功!
解是可以解开了,用REGEDIT加载SYSTEM出错,提示无法上载配置单元。

作者: wuyouman01    时间: 2006-1-27 22:18
标题: 用grub直接启动xp embedded的sdi成功!
那个boot.sdi按照此方法转换为IMA文件解出来后,为什么好多文件错误,比如explorer.exe图标没有了。不能正常运行可以执行文件。
作者: fujianabc    时间: 2006-1-28 09:45
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由plutoshen2006/01/27 01:03pm 发表的内容:
我用那个20M的sdi试验,提示boot.ini无效。
我是按照你的写法做的,为什么不行?
请执行以下操作,我来分析一下问题所在:
1、假设你的sdi为d:\xpe.sdi
执行sdimgr d:\xpe.sdi
把结果复制到帖子中
2、用grub再次启动这个sdi
在boot命令按回车之后,立即狂按F8,请告诉我出来的菜单是中文的还是英文的(当然,你必须在制作sdi时包含bootfont.bin这个文件)

作者: fujianabc    时间: 2006-1-28 09:46
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由wuyouman012006/01/27 04:00pm 发表的内容:
Error -2147467259 (0x80004005) in "SDIAUT.SDIFile.1": 系统找不到指定的路径。
你在做那一步操作时遇到这个错误提示的?
作者: fujianabc    时间: 2006-1-28 09:48
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由wuyouman012006/01/27 10:18pm 发表的内容:
那个boot.sdi按照此方法转换为IMA文件解出来后,为什么好多文件错误,比如explorer.exe图标没有了。不能正常运行可以执行文件。
这个问题以及system无法加载,似乎winimage有bug,用winimage挂载此ima为一个盘符,从中把所有文件复制出来。
作者: wuyouman01    时间: 2006-1-29 00:59
标题: 用grub直接启动xp embedded的sdi成功!
可以了,谢谢。
春节愉快!
作者: khauyeung    时间: 2006-1-29 07:30
标题: 用grub直接启动xp embedded的sdi成功!
请问楼主: 支持启动sdi功能的 GRLDR (GRUB Loader) 版本号是什么? 在那里下载? 我使用 0.95 和 0.97 (从 Grub_for_dos-0.4.1 取出) 试过都没有成功, 其中 0.97 版本更是GRUB菜单也没能进入, 不知道是什么原因.
作者: fujianabc    时间: 2006-1-29 09:43
标题: 用grub直接启动xp embedded的sdi成功!
0.95的不行,用这个
http://sarovar.org/projects/grub4dos/
作者: wuyouman01    时间: 2006-1-30 20:30
标题: 用grub直接启动xp embedded的sdi成功!
请教用ramdisk启动方式始终存在的一个问题:
    hnlyzhd制作的embedded xp用ramdisk启动方式,不会把SDI的分区信息覆盖到物理第一分区,我制作的embedded xp,用ramdisk启动方式启动,SDI的分区信息覆盖到物理第一分区,这个问题;老是解决不了,不知缺少什么组件,试了n次,好象有一次成功过,不过没有保留slx文件很是遗憾,恳请赐教!
   
作者: Rinrin    时间: 2006-2-13 16:12
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/01/18 04:58pm 发表的内容:
能否用grub启动winpe的sdi,暂时没有答案,主要存在下面这个问题:
启动时所采用的载入程序:
普通的ramdisk启动sdi,xp embedded用ntldr,winpe用setupldr.bin,
grub的ramdisk启动sdi,xp embedded用osloader. ...
osloader.exe就是ntldr或setupldr.bin的后半部分
可以试一下这样的方法:
用Ultraedit截取setupldr.bin中';MZ';以后的部分重命名为osloader.exe

作者: fujianabc    时间: 2006-2-13 20:32
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/02/13 04:12pm 发表的内容:
osloader.exe就是ntldr或setupldr.bin的后半部分
可以试一下这样的方法:
用Ultraedit截取setupldr.bin中';MZ';以后的部分重命名为osloader.exe
谢谢你的建议。我发现还有一个setupldr.exe,它类似于osloader.exe,这个文件又是干什么的?
作者: chenall    时间: 2006-2-13 21:08
标题: 用grub直接启动xp embedded的sdi成功!
试了一下使用setupldr.exe启动时提示
SETUPLDR: Couldn';t open drive ramdisk(0)  
看来再加把劲应该就可以使用SDI来启动PE或WINDOWS XP安装程序了.
作者: fujianabc    时间: 2006-2-14 10:17
标题: 用grub直接启动xp embedded的sdi成功!
[这个贴子最后由fujianabc在 2006/02/14 03:02pm 第 1 次编辑]

我试过了,setupldr.exe不行。
至于sdi启动故障恢复控制台,这个早就实现了,做法基本上与iso启动cmdcons相同,只是最后的rdimageoffset要另设一下。
可以参看以下两贴:
用ramdisk启动故障恢复控制台成功!
http://bbs.wuyou.net/cgi-bin/topic.cgi?forum=34&topic=10056&show=0
推荐:ramdisk+sdi启动winpe不成功的可以到这来看一下
http://bbs.wuyou.net/cgi-bin/topic.cgi?forum=34&topic=10738&show=0
作者: chenall    时间: 2006-2-15 15:04
标题: 用grub直接启动xp embedded的sdi成功!
这个使用方法不太方便.
若是能够做成像XPE那个直接.
chainloader --sdi (hd0,0)/cmdcons.sdi
来启动就比较完美了.
因为不需要WINNT.SIF
当然了若是做成这样子.
就可以使用SDI文件来启动PE了.
作者: fujianabc    时间: 2006-2-15 15:32
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由chenall2006/02/15 03:04pm 发表的内容:
这个使用方法不太方便.
若是能够做成像XPE那个直接.
chainloader --sdi (hd0,0)/cmdcons.sdi
来启动就比较完美了.
...
目前grub似乎只能启动winxp embedded的sdi,winpe和cmdcons的sdi还无法启动。
作者: Rinrin    时间: 2006-2-18 13:48
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/01/28 09:48am 发表的内容:
这个问题以及system无法加载,似乎winimage有bug,用winimage挂载此ima为一个盘符,从中把所有文件复制出来。
我认为这应该不是Winimage的bug
而是因为boot.sdi里是用ntfs压缩的
文件在存储时就压缩过了
..................

作者: Rinrin    时间: 2006-2-18 13:51
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/02/15 03:32pm 发表的内容:
目前grub似乎只能启动winxp embedded的sdi,winpe和cmdcons的sdi还无法启动。

应该还有一个问题
pe的sdi里blob应该是disk类型的
而xpe的sdi是part类型的
这一点有无影响?

作者: fujianabc    时间: 2006-2-18 18:18
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/02/18 01:48pm 发表的内容:
我认为这应该不是Winimage的bug
而是因为boot.sdi里是用ntfs压缩的
文件在存储时就压缩过了
..................
ntfs普通文件可以用winimage正常读取,而压缩文件则无法正常读取,这应该可以算是一个bug了。另外,我winimage也用了几年了,发觉这个软件很好用,但是bug太多,旧的灭了,又生新的。
作者: fujianabc    时间: 2006-2-18 18:22
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/02/18 01:51pm 发表的内容:

应该还有一个问题
pe的sdi里blob应该是disk类型的
而xpe的sdi是part类型的
...
grub不能启动pe的sdi的问题可能是那个sdi补丁本身的问题,也不知道这个补丁是谁写的。
至于blob的问题,xp embedded好像一定要disk,而pe 的sdi如果用setupldr.bin启动,则disk或者part都行,只要rdimageoffset设置正确即可。
作者: Rinrin    时间: 2006-2-18 20:43
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/02/18 06:22pm 发表的内容:
grub不能启动pe的sdi的问题可能是那个sdi补丁本身的问题,也不知道这个补丁是谁写的。
至于blob的问题,xp embedded好像一定要disk,而pe 的sdi如果用setupldr.bin启动,则disk或者part都行,只要rdimageoffset ...

我想这个sdi补丁的作者参考了这篇文章
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp
这里是作者的说明:
http://remile.free.fr/syslinux/sdi.txt


作者: wuyouman01    时间: 2006-2-18 21:53
标题: 用grub直接启动xp embedded的sdi成功!
EMB的RAMDISK插件驱动RAMDISK.INF和PE的RAMDISK内容不一样,替换一下应该可以和EMB一样启动。
作者: fujianabc    时间: 2006-2-19 11:12
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由wuyouman012006/02/18 09:53pm 发表的内容:
EMB的RAMDISK插件驱动RAMDISK.INF和PE的RAMDISK内容不一样,替换一下应该可以和EMB一样启动。
和ramdisk.sys无关,用setupldr.exe刚启动时(尚未载入系统)就不行。
作者: fujianabc    时间: 2006-2-19 11:14
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/02/18 08:43pm 发表的内容:

我想这个sdi补丁的作者参考了这篇文章
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp
这里是作者的说明//remile.free.fr/syslinux/sdi.txt
至于补丁作者的问题,上面的是syslinux的sdi补丁,以前也猜测过grub也是这个,但是无法确认。
作者: Rinrin    时间: 2006-2-19 12:31
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/02/19 11:14am 发表的内容:
至于补丁作者的问题,上面的是syslinux的sdi补丁,以前也猜测过grub也是这个,但是无法确认。

有时间的话看看代码
不过
这两天正在研究2k3sp1的ramdisk.sys
我发现它里面有两个变量
ramdisk!ExportBootdiskAscd
ramdisk!IsWinPEBoot
这说明ramdisk对于XPE和WinPE是区别对待的
如果研究清楚了这一点
对盘符不同的问题可能有帮助
作者: wuyouman01    时间: 2006-2-19 14:30
标题: 用grub直接启动xp embedded的sdi成功!
我说的是替换ramdisk.inf这个注册信息。
作者: Rinrin    时间: 2006-2-19 15:48
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由wuyouman012006/02/19 02:30pm 发表的内容:
我说的是替换ramdisk.inf这个注册信息。
没有用的
winpe和xpe都只使用注册表里的信息
ramdisk.inf只有启用了FBA:PnP时才会用到

作者: chenall    时间: 2006-2-19 20:35
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/02/19 12:31pm 发表的内容:

有时间的话看看代码
不过
这两天正在研究2k3sp1的ramdisk.sys
...
期待ing...
作者: Rinrin    时间: 2006-2-19 22:26
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由chenall2006/02/19 08:35pm 发表的内容:
期待ing...
这个问题已经解决
我将另外发帖说明
作者: Rinrin    时间: 2006-2-20 17:05
标题: 用grub直接启动xp embedded的sdi成功!
有关sdi的代码
很明显不是syslinux的
if (is_sdi)
    {
      unsigned long long bytes_needed;
      unsigned long long base;
      bytes_needed = filemax;
      base = 0;
      if (mbi.flags & MB_INFO_MEM_MAP)
        {
          struct AddrRangeDesc *map = (struct AddrRangeDesc *) mbi.mmap_addr;
          int end_addr = mbi.mmap_addr + mbi.mmap_length;
          for (; end_addr > (int) map; map = (struct AddrRangeDesc *) (((int) map) + 4 + map->size))
    {
      unsigned long long top_end;
      if (map->Type != MB_ARD_MEMORY)
  continue;
      top_end =  map->BaseAddr + map->Length;
      if (top_end > 0x100000000ULL)
  top_end = 0x100000000ULL;
/* 0x4000000ULL is 64 MB , 0x200000ULL is 2 MB */
#define MIN_EMU_BASE 0x200000ULL
      if (map->Length >= bytes_needed
&& (base = (top_end - bytes_needed) & 0xfffff000) >= MIN_EMU_BASE /* page align */
&& map->Length >= top_end - base)
break; /* success */
      base = 0;
    }
        }
      else
  grub_printf ("Address Map BIOS Interface is not activated.\n");
      if (base < MIN_EMU_BASE)
      {
  grub_close ();
  return errnum = ERR_WONT_FIT;
      }
      
&#35;undef MIN_EMU_BASE
      //filepos = 0;
      if (grub_read ((char *)((int)base), -1) != filemax)
{
grub_close ();
if (errnum == ERR_NONE)
errnum = ERR_READ;
return 1;
}
      grub_close ();
      
      if (int13_on_hook)
      {
unset_int13_handler ();
int13_on_hook = 0;
      }
      
&#35;define BootCodeOffsetLow (*(unsigned long *)((int)base + 0x10))
&#35;define BootCodeSizeLow  (*(unsigned long *)((int)base + 0x18))
      read_length = BootCodeSizeLow;
      if (read_length > 0x90000)
read_length = 0x90000;
      grub_memmove((char *)0x110000, (char *)((unsigned int)base + BootCodeOffsetLow), read_length);
&#35;undef BootCodeOffsetLow
&#35;undef BootCodeSizeLow
      if (! chainloader_edx_set)
        {
  chainloader_edx = (unsigned int)base | 0x41;
  chainloader_edx_set = 1;
}
    }
先来说一个这个补丁的bug吧
在vmware中试验
sdi文件为16M左右
在bios setup中把memory map设置为extended就会出现错误

作者: Rinrin    时间: 2006-2-21 18:13
标题: 用grub直接启动xp embedded的sdi成功!
今天又看了一下
如果用osloader.ntd代替osloader.exe
就不用在sdi里加入ntdetect.com了
作者: fujianabc    时间: 2006-2-22 13:55
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/02/21 06:13pm 发表的内容:
今天又看了一下
如果用osloader.ntd代替osloader.exe
就不用在sdi里加入ntdetect.com了
终于知道osloader.ntd是干什么用的了,真是恰如其命啊,osloader.ntd=osloader.exe+ntdetect.com
作者: 天风    时间: 2006-2-22 15:59
标题: 用grub直接启动xp embedded的sdi成功!
这样用GRUB启动的还是用NTLDR的RAMDISK来达到目的的,能否直接启动SDI呢!
作者: fujianabc    时间: 2006-2-22 16:26
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由hnlyzhd2006/02/22 03:59pm 发表的内容:
这样用GRUB启动的还是用NTLDR的RAMDISK来达到目的的,能否直接启动SDI呢!
grub能够启动直接启动xp embedded的sdi(按顶楼的方法,不需要ntldr这个文件了),但是不能启动winpe的sdi。
如果用osloader.ntd代替osloader.exe,则sdi中无需再包含ntdetect.com。
作者: Rinrin    时间: 2006-2-22 17:17
标题: 用grub直接启动xp embedded的sdi成功!
根据现在的研究
认为问题出在setupldr.exe上
它不认识startrom.com初始化的ram盘
由于setupldr.exe没有符号文件
反汇编也很困难~
作者: fujianabc    时间: 2006-2-23 13:05
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/02/22 05:17pm 发表的内容:
根据现在的研究
认为问题出在setupldr.exe上
它不认识startrom.com初始化的ram盘
由于setupldr.exe没有符号文件
...
我觉得,这个问题能研究到此已经差不多了,再继续下去将涉及到crack微软的文件,难度太大,但实际用途却不是很大。
作者: Rinrin    时间: 2006-2-24 19:17
标题: 用grub直接启动xp embedded的sdi成功!
有一个新的想法
grub支持gz压缩
那么sdi文件是否可以用gzip格式来压缩?
对于xpe来说应该可以使镜像文件更小
作者: fujianabc    时间: 2006-2-25 10:58
标题: 用grub直接启动xp embedded的sdi成功!
[这个贴子最后由fujianabc在 2006/02/25 01:28pm 第 1 次编辑]
下面引用由Rinrin2006/02/24 07:17pm 发表的内容:
有一个新的想法
grub支持gz压缩
那么sdi文件是否可以用gzip格式来压缩?
对于xpe来说应该可以使镜像文件更小
我试过了,没问题,可以启动。
作者: 天风    时间: 2006-2-25 23:17
标题: 用grub直接启动xp embedded的sdi成功!
至于把SDI中的文件提取出来,不太认同FUJIANABC的写成IMG的方法,大家可以直接用SDI文件虚拟分区,然后用
SDIMGR BOOT.SDI /WRITEPART:X:
把BOOT.SDI中的内容解压到X盘
作者: Rinrin    时间: 2006-2-25 23:25
标题: 用grub直接启动xp embedded的sdi成功!
太好了
如果grub能支持7zip格式
压缩率就更高了
==================================
Winimage有些bug
用天风的方法应该就没有问题了
不过readpart一般是整个虚拟磁盘
所以不属于文件的垃圾数据也会复制进去
如果用ghost32应该可以解决这个问题
作者: 天风    时间: 2006-2-26 00:26
标题: 用grub直接启动xp embedded的sdi成功!
做好的模板,用GRUB启动光盘上的SDI文件!
http://www.exun8.com/wuyou/hnlyzhd/BCDW/BOOT-SDI.rar
作者: 天风    时间: 2006-2-26 11:23
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/02/25 10:58am 发表的内容:
---------------------------------
Rinrin在 2006/02/24 07:17pm 发表的内容:
有一个新的想法
grub支持gz压缩
那么sdi文件是否可以用gzip格式来压缩?
对于xpe来说应该可以使镜像文件更小
----------------------------------
我试过了,没问题,可以启动。
请明示如何来加载压缩的SDI呢?

作者: fujianabc    时间: 2006-2-26 16:07
标题: 用grub直接启动xp embedded的sdi成功!
[这个贴子最后由fujianabc在 2006/02/26 04:11pm 第 1 次编辑]
下面引用由hnlyzhd2006/02/25 11:17pm 发表的内容:
至于把SDI中的文件提取出来,不太认同FUJIANABC的写成IMG的方法,大家可以直接用SDI文件虚拟分区,然后用
SDIMGR BOOT.SDI /WRITEPART
把BOOT.SDI中的内容解压到X盘
其实你的方法和我说的基本上一样,你是先创建sdi再解原sdi,我的是先解原sdi后创建新sdi。不过正如rinrin所讲你的方法可能是一些垃圾数据也包含进去,比如原sdi中所包含的已删除的文件。
作者: fujianabc    时间: 2006-2-26 16:13
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由hnlyzhd2006/02/26 11:23am 发表的内容:
请明示如何来加载压缩的SDI呢?
于一般的sdi方法完全一样:
chainloader --sdi (path)/xpe.sdi.gz
boot

作者: 天风    时间: 2006-2-26 16:29
标题: 用grub直接启动xp embedded的sdi成功!
我用RAR的标准ZIP格式压缩的不能启动!
作者: fujianabc    时间: 2006-2-26 17:01
标题: 用grub直接启动xp embedded的sdi成功!
[这个贴子最后由fujianabc在 2006/02/26 05:07pm 第 2 次编辑]
下面引用由hnlyzhd2006/02/26 04:29pm 发表的内容:
我用RAR的标准ZIP格式压缩的不能启动!
grub本身只支持gzip格式,不支持zip格式,memdisk同时支持zip/gzip格式。
windows下很多软件可以压gzip的,推荐使用7-zip。
作者: 天风    时间: 2006-2-26 17:33
标题: 用grub直接启动xp embedded的sdi成功!
谢谢 楼上的说教!
作者: wang6610    时间: 2006-2-27 08:30
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由hnlyzhd2006/02/26 00:26am 发表的内容:
做好的模板,用GRUB启动光盘上的SDI文件!
http://www.exun8.com/wuyou/hnlyzhd/BCDW/BOOT-SDI.rar

启动您原来发的iso中的boot.sdi未成功!!!
作者: 天风    时间: 2006-2-27 10:32
标题: 用grub直接启动xp embedded的sdi成功!
原来发的SDI中BOOT部分用的是微软PXE启动的STARTROM.COM文件,LOAD部分用的是NTLDR,需要按楼主说的方法重新生成SDI。
作者: fujianabc    时间: 2006-2-27 12:49
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由netlhq2006/02/27 11:20am 发表的内容:
Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
F:\SDI+WIM\sdi\SDIMGR.WSF(932, 14) Microsoft VBScript 运行时错误 ';RegExp';
为什么 ...
你没有运行安装install.cmd
作者: jxyun99    时间: 2006-2-27 14:47
标题: 用grub直接启动xp embedded的sdi成功!
这个模板光盘启动不了lxl1638的XPE吧,反正我试了是无法启动!
作者: Rinrin    时间: 2006-2-27 16:50
标题: 用grub直接启动xp embedded的sdi成功!
老九做的是WinPE
不是xpe
..................
作者: zhwy2008    时间: 2006-2-27 19:54
标题: 用grub直接启动xp embedded的sdi成功!
同意。
作者: jxyun99    时间: 2006-2-27 21:36
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/02/27 04:50pm 发表的内容:
老九做的是WinPE
不是xpe
..................
两者有何不同???
作者: fujianabc    时间: 2006-2-28 10:26
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由jxyun992006/02/27 09:36pm 发表的内容:
两者有何不同???
winpe是windows preinstallation enviroment(windows预安装环境)的简称。
winxp embedded是windows xp 嵌入式版本。
作者: wang6610    时间: 2006-2-28 17:04
标题: 用grub直接启动xp embedded的sdi成功!
[这个贴子最后由wang6610在 2006/03/02 03:35pm 第 1 次编辑]

制作SDI文件如何先大后小,我新建110Msdi就是装不下您原来的boot.sdi中的文件,我也是用的NTFS格式并启用了压缩。
[color=&#35;1E90FF]已解决!
作者: tzllc    时间: 2006-2-28 23:19
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/01/28 09:48am 发表的内容:
这个问题以及system无法加载,似乎winimage有bug,用winimage挂载此ima为一个盘符,从中把所有文件复制出来。

请问下 我修改SDI文件后,重启电脑就一直出现:
因以下文件丢失,系统无法启动< windows root>system32\hal.dll 请重新安装文件的拷贝
有办法解决吗?  非常感谢!!
作者: fujianabc    时间: 2006-3-1 16:03
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由tzllc2006/02/28 11:19pm 发表的内容:
请问下 我修改SDI文件后,重启电脑就一直出现:
因以下文件丢失,系统无法启动< windows root>system32\hal.dll 请重新安装文件的拷贝
有办法解决吗?  非常感谢!!
你是用grub还是ntldr启动这个sdi的?
作者: tzllc    时间: 2006-3-1 20:50
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/03/01 04:03pm 发表的内容:
你是用grub还是ntldr启动这个sdi的?

是用ntldr的
我不知道怎么解决 谢谢!
作者: fujianabc    时间: 2006-3-1 21:06
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由tzllc2006/03/01 08:50pm 发表的内容:
是用ntldr的
我不知道怎么解决 谢谢!
贴出你的调用sdi的boot.ini
另外,你对sdi做了哪些修改?
作者: tzllc    时间: 2006-3-1 22:39
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/03/01 09:06pm 发表的内容:
贴出你的调用sdi的boot.ini
另外,你对sdi做了哪些修改?
boot.ini
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
ramdisk(0)\WINXPE="XP Embedded" /fastdetect /rdpath=multi(0)disk(0)rdisk(0)partition(1)\boot.sdi /rdimageoffset=28672
我也没改什么 就只在 “winxpe\Documents and Settings\Administrator\桌面”
再加了几个小游戏啊

作者: fujianabc    时间: 2006-3-2 10:54
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由tzllc2006/03/01 09:13pm 发表的内容:
别人做的SDI文件好像不可以用sdiloader.exe的哦,我是把文件从人家的SDI中全都提取出来的但修改后再生成新的SDI然后就老出现“因以下文件丢失,系统无法启动< windows root>system32\hal.dll 请重新安装文 ...
引用了你在其他贴上的帖子:
xp embedded的sdi不能直接用sdiloader加载。
你按照我的方法把sdi的文件全部提取出来了,然后重新生成sdi,请问你用什么方法生成新的sdi的?
作者: tzllc    时间: 2006-3-2 23:48
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/03/02 10:54am 发表的内容:
引用了你在其他贴上的帖子:
xp embedded的sdi不能直接用sdiloader加载。
你按照我的方法把sdi的文件全部提取出来了,然后重新生成sdi,请问你用什么方法生成新的sdi的?

我先创建一个新的容量差不多SDI文件啊,再把从别SDI里面提取出来的文件原封不动的复制进去,然后再用“sdimgr /pack”重新排布啊,你在本贴的开始处不就是教人家怎么做SDI文件么,怎么是我理解的不对?
作者: Rinrin    时间: 2006-3-3 09:40
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由tzllc2006/03/02 11:48pm 发表的内容:
我先创建一个新的容量差不多SDI文件啊,再把从别SDI里面提取出来的文件原封不动的复制进去,然后再用“sdimgr /pack”重新排布啊,你在本贴的开始处不就是教人家怎么做SDI文件么,怎么是我理解的不对?
这样做出来的BLOB是DISK而不是PART
所以RDIMAGEOFFSET需要修改一下
作者: lxl1638    时间: 2006-3-3 09:47
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/03/03 09:40am 发表的内容:
这样做出来的BLOB是DISK而不是PART
所以RDIMAGEOFFSET需要修改一下
改成36352?
在这里想请教几位一个问题,就是相同大小的SDI文件,DISK与PART(同样是NTFS格式)比较,哪个储存文件的利用率高?是不是一样?
作者: 天风    时间: 2006-3-3 11:02
标题: 用grub直接启动xp embedded的sdi成功!
VISTA安装光盘上的BOOT.SDI文件已经不能看到内容了,不知是否微软已经有新的SDI工具了!
作者: fujianabc    时间: 2006-3-3 11:56
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由tzllc2006/03/02 11:48pm 发表的内容:
我先创建一个新的容量差不多SDI文件啊,再把从别SDI里面提取出来的文件原封不动的复制进去,然后再用“sdimgr /pack”重新排布啊,你在本贴的开始处不就是教人家怎么做SDI文件么,怎么是我理解的不对?
建议你试一下RDIMAGEOFFSET=36352。
作者: fujianabc    时间: 2006-3-3 12:07
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由lxl16382006/03/03 09:47am 发表的内容:
改成36352?
在这里想请教几位一个问题,就是相同大小的SDI文件,DISK与PART(同样是NTFS格式)比较,哪个储存文件的利用率高?是不是一样?
xp embedded的sdi用grub启动一定要用PART,其他情况下xp embedded或者winpe用disk或part都行,只是RDIMAGEOFFSET要重设一下。
至于part与disk哪个省空间。part与disk的差别在于disk类似于一个硬盘,在第一个分区前包含了63个扇区(第一个扇区是分区表),而part只包含一个分区。因此,part比disk省63*512=32256字节。但是,part的sdi无法用sdiloader直接修改,disk类型的则可以用sdiloader直接挂载,比较方便。
还用一种办法,比part可以再省一些空间,不要用sdi了,直接用winimage生成一个分区映像,并用winimage 8.0挂载它,把它格式化成ntfs,复制完文件后unmount此映像。setupldr.bin照样可以加载此映像。winnt.sif里设RDIMAGEOFFSET=0即可。
这样的映像修改起来也很方便,直接用winimage挂载即可。
作者: fujianabc    时间: 2006-3-3 12:09
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由hnlyzhd2006/03/03 11:02am 发表的内容:
VISTA安装光盘上的BOOT.SDI文件已经不能看到内容了,不知是否微软已经有新的SDI工具了!
以前研究过这个boot.sdi,其实里面除了sdi文件头和一个3兆左右的ntfs空分区外,其他什么都没有,那个"wim"的blob没有占空间。
作者: 天风    时间: 2006-3-3 12:53
标题: 用grub直接启动xp embedded的sdi成功!
那它的作用是什么呢,我倒是很想用VISTA的光盘引导方式来启动EMBEDED的SDI呢!
作者: Rinrin    时间: 2006-3-3 13:12
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由hnlyzhd2006/03/03 11:02am 发表的内容:
VISTA安装光盘上的BOOT.SDI文件已经不能看到内容了,不知是否微软已经有新的SDI工具了!
那个实际上是个空的SDI文件
主要内容都在wim里面
作者: lxl1638    时间: 2006-3-3 14:56
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由hnlyzhd2006/03/03 12:53pm 发表的内容:
那它的作用是什么呢,我倒是很想用VISTA的光盘引导方式来启动EMBEDED的SDI呢!
支持+期待!
我机网速慢,记得911CD有这样的讨论,好长时间不去了(慢到不能去),不知现在有什么结果没?
作者: tzllc    时间: 2006-3-4 22:35
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/03/03 11:56am 发表的内容:
建议你试一下RDIMAGEOFFSET=36352。

  首先非常感谢fujianabc多次耐心指导,但我刚刚接触这方面东西,还是不知道“RDIMAGEOFFSET=36352”是怎么用的哦,是一个命令?还是某个命令里面的一个参数?也还是通过SDIMGR.WSF来执行的吗?还有如果执行了这个“RDIMAGEOFFSET=36352”后是不是把SDI文件的模式由DISK变成PART了呢? 拜托指教,谢谢!
作者: wang6610    时间: 2006-3-4 23:24
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由tzllc2006/03/04 10:35pm 发表的内容:
  首先非常感谢fujianabc多次耐心指导,但我刚刚接触这方面东西,还是不知道“RDIMAGEOFFSET=36352”是怎么用的哦,是一个命令?还是某个命令里面的一个参数?也还是通过SDIMGR.WSF来执行的吗?还有如果执行了 ...

RDIMAGEOFFSET=36352
是在boot.ini或winnt.sif中引导SDI文件的一个参数。
如:
[boot loader]
timeout=8
default=ramdisk(0)\i386
[operating systems]
ramdisk(0)\i386="64M_XPE" /NOEXECUTE=OPTIN /MININT /rdimageoffset=36352 /rdpath=multi(0)disk(0)rdisk(0)partition(1)\128M_XPE.SDI
作者: tzllc    时间: 2006-3-9 22:37
标题: 用grub直接启动xp embedded的sdi成功!
  哈 终于修改成功一个啦! 在此先谢谢fujianabc的多次指导,还有Rinrin跟wang6610  早几天没时间上网,就晚几天谢咯,嘻嘻....

作者: greenangel    时间: 2006-3-10 18:35
标题: 用grub直接启动xp embedded的sdi成功!
我的错误:
[UploadFile=sdi_1141986897.bmp]
怎么解决?
作者: fujianabc    时间: 2006-3-10 21:21
标题: 用grub直接启动xp embedded的sdi成功!
请楼上的参照64到66楼的内容。
作者: greenangel    时间: 2006-3-10 21:45
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由fujianabc2006/03/10 09:21pm 发表的内容:
请楼上的参照64到66楼的内容。
都试过了!运行install.cmd 和 regsvr32 vbscript.dll,结果还是一样!
我还重新下载了sdi工具,都是提示一样的错误!
作者: Rinrin    时间: 2006-3-11 09:41
标题: 用grub直接启动xp embedded的sdi成功!
regsvr32 wshom.ocx
作者: greenangel    时间: 2006-3-11 11:20
标题: 用grub直接启动xp embedded的sdi成功!
下面引用由Rinrin2006/03/11 09:41am 发表的内容:
regsvr32 wshom.ocx
谢谢!问题解决了
作者: 奇奇怪    时间: 2006-4-16 22:31
标题: 用grub直接启动xp embedded的sdi成功!
再顶一个,不知道版主会不会认为我是在灌水
作者: 135956    时间: 2006-7-29 11:31
直接用winimage生成一个分区映像,并用winimage 8.0挂载它,把它格式化成ntfs,复制完文件后unmount此映像。
     请问,怎样挂载它并格式化成ntfs呢。。?
作者: fujianabc    时间: 2006-7-29 15:24
原帖由 135956 于 2006-7-29 11:31 AM 发表
直接用winimage生成一个分区映像,并用winimage 8.0挂载它,把它格式化成ntfs,复制完文件后unmount此映像。
     请问,怎样挂载它并格式化成ntfs呢。。?

1.png (17.26 KB, 下载次数: 121)

1.png

作者: 135956    时间: 2006-7-29 16:00
见笑了。。
但我还是不知怎样用winimage生成一个分区映像。。。
还有。。我找不到你说的那样子的菜单。:(:(:(

[ 本帖最后由 135956 于 2006-7-29 04:17 PM 编辑 ]

2.JPG (63.54 KB, 下载次数: 119)

我的同你的怎么不同样的?

我的同你的怎么不同样的?

作者: willsion    时间: 2006-7-31 17:13
顶一顶此帖,学习一下。
作者: willsion    时间: 2006-7-31 21:06
看了老半天,才发现楼主的解决方法中间部分少了,
步骤从2一下跳到6了。

请楼主或者其他知道解决方法的朋友把它补齐。
谢谢了。




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