无忧启动论坛

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

[分享] grub4dos+firadisk把vista/2008安装到vhd

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-21 15:05:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天把firadisk的驱动做进了2008的安装光盘,开机后挂载iso和vhd,把2008安装在了一个固定容量的vhd中,这样就不需要像以前那样利用虚拟机来先安装系统中转一下了

分为三个步骤
1 准备需要的驱动,软件
2 修改2008的iso,把firadisk的驱动离线安装到boot.wim和install.wim,建立一个固定容量的vhd
3 启动后挂载iso和vhd,开始安装


[ 本帖最后由 yueyezhan 于 2011-4-21 15:10 编辑 ]
2#
 楼主| 发表于 2011-4-21 15:34:14 | 只看该作者
先介绍下我的安装环境
880g-ud3h主板,三块硬盘,两个500g做的两个raid0,一个1t的单盘
准备需要的软件,驱动:
grub4dos firadisk0.0.1.30 windows2008的iso和2008的opk或者aik wincontig psexec
先安装aik或者opk,用它来生成一个离线集成驱动的应答文件,然后用pkgmgr配合应答文件把驱动集成到install.wim,步骤如下:
打开sim映像管理器,加载编录文件,我准备安装的是企业版,就加载install_Windows Longhorn SERVERENTERPRISE.clg,新建一个应答文件,点分布共享/创建分布共享,将firadisk的驱动目录和所需的amd raid的驱动目录放入Out-of-Box Drivers,回到sim,在Out-of-Box Drivers右键,选择 插入驱动路径以传送 ,1 2 5全选,然后保存应答文件备用
复制iso的sources目录到硬盘,建立一个空目录准备挂载install.wim
用imagex /mountrw挂载install.wim 2到刚才建立的空目录,用pkgmgr开始集成驱动

C:\Program Files\Windows OPK\Tools\amd64>imagex /mountrw d:sources\install.wim 2
d:\test

ImageX Tool for Windows
Copyright (C) Microsoft Corp. All rights reserved.


Mounting (RW): [D:\sources\install.wim, 2] ->
               [d:\test]

Successfully mounted image (RW).



C:\Program Files\Windows OPK\Tools\amd64>

集成驱动
C:\Program Files\Windows OPK\Tools\amd64\Servicing>pkgmgr.exe /o:"d:\test\;d:\te
st\windows" /n:"C:\Users\Administrator\Desktop\2008.xml"

C:\Program Files\Windows OPK\Tools\amd64\Servicing>

添加注册表缺少的部分
把psexec复制到system32,打开注册表/加载配置单元,把释放到test目录的2008的注册表system挂载,在cmd下cd到system32
psexec -i -d -s regedit /s "C:\Users\Administrator\Desktop\install_firadisk.reg"


reg的内容如下

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\0004]
"InfSection"="FiraDiskDevice"
"MatchingDeviceId"="root\\firadisk"
"DriverDesc"="FiraDisk Virtual Disk Enumerator"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Control\CriticalDeviceDatabase\root#firadisk]
"Service"="FiraDisk"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\##?#FIRADISK#Disk#1&1aafb3d5&0&1.1#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}]
"DeviceInstance"="FIRADISK\\Disk\\1&1aafb3d5&0&1.1"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\##?#FIRADISK#Disk#1&1aafb3d5&0&1.1#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\#]
"SymbolicLink"="\\\\?\\FIRADISK#Disk#1&1aafb3d5&0&1.1#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\##?#FIRADISK#Disk#1&1aafb3d5&0&2.1#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}]
"DeviceInstance"="FIRADISK\\Disk\\1&1aafb3d5&0&2.1"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\##?#FIRADISK#Disk#1&1aafb3d5&0&2.1#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\#]
"SymbolicLink"="\\\\?\\FIRADISK#Disk#1&1aafb3d5&0&2.1#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Control\FiraDisk]

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\FIRADISK]

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\FIRADISK\Disk\1&1aafb3d5&0&1.1]
"HardwareID"=hex(7):46,00,49,00,52,00,41,00,44,00,49,00,53,00,4b,00,5c,00,44,\
  00,69,00,73,00,6b,00,00,00,47,00,65,00,6e,00,44,00,69,00,73,00,6b,00,00,00,\
  00,00

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\FIRADISK\Disk\1&1aafb3d5&0&2.1]
"HardwareID"=hex(7):46,00,49,00,52,00,41,00,44,00,49,00,53,00,4b,00,5c,00,44,\
  00,69,00,73,00,6b,00,00,00,47,00,65,00,6e,00,44,00,69,00,73,00,6b,00,00,00,\
  00,00

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\Root\UNKNOWN\0000]
"HardwareID"=hex(7):72,00,6f,00,6f,00,74,00,5c,00,66,00,69,00,72,00,61,00,64,\
  00,69,00,73,00,6b,00,00,00,00,00
"CompatibleIDs"=hex(7):64,00,65,00,74,00,65,00,63,00,74,00,65,00,64,00,5c,00,\
  66,00,69,00,72,00,61,00,64,00,69,00,73,00,6b,00,00,00,00,00
"Service"="FiraDisk"
"DeviceDesc"="@oem3.inf,%firadiskdevice%;FiraDisk Virtual Disk Enumerator"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\Root\UNKNOWN\0000\Control]
"ActiveService"="FiraDisk"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\services\disk\Enum]
"0"="FIRADISK\\Disk\\1&1aafb3d5&0&1.1"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\services\FiraDisk]
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,66,00,69,00,72,00,61,00,64,00,69,\
  00,73,00,6b,00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="FiraDisk Driver"

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\services\partmgr\Enum]
"0"="FIRADISK\\Disk\\1&1aafb3d5&0&1.1"


提交修改,保存映像

imagex /unmount d:\test /commit

[ 本帖最后由 yueyezhan 于 2011-4-21 16:17 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2011-4-21 16:07:58 | 只看该作者
修改boot.wim 2添加firadisk和amd raid驱动
这个就容易了,不需要用sim做应答文件了,直接用dism挂载,然后用peimg把驱动离线安转,然后补充注册表就可以
C:\Users\Administrator>dism /mount-wim /wimfile:d:\sources\boot.wim /index:2 /mo
untdir:d:\test

部署映像服务和管理工具
版本: 6.1.7600.16385

正在安装映像
[==========================100.0%==========================]
操作成功完成。

C:\Users\Administrator>

集成驱动到挂载目录
C:\Program Files\Windows OPK\Tools\PETools>peimg /inf="C:\Users\Administrator\De
sktop\test\Out-of-Box Drivers\firadisk\firadisk.inf" d:\test\Windows
Windows 预安装环境映像安装工具
版权所有 (C) Microsoft Corp。保留所有权利。

正在安装 INF 程序包: C:\Users\Administrator\Desktop\test\Out-of-Box Drivers\fira
disk\firadisk.inf

PEIMG 已成功完成操作。

C:\Program Files\Windows OPK\Tools\PETools>
重复上面的步骤,把amd raid的驱动也安装,然后安装补充install.wim的方法离线添加注册表

提交修改保存boot.wim
C:\Users\Administrator>dism /unmount-wim /mountdir:d:\test /commit

部署映像服务和管理工具
版本: 6.1.7600.16385

映像文件 : d:\sources\boot.wim
映像索引 : 2
正在保存映像
[==========================100.0%==========================]
正在卸载映像
[==========================100.0%==========================]
操作成功完成。

C:\Users\Administrator>

用ultraiso把硬盘的sources目录替换掉,另存为iso,用wincontig整理下iso

建立一个固定容量的vhd,在系统下挂载后格式化为主活动分区
DISKPART> create vdisk file=f:\test.vhd maximum=18000

  100 百分比已完成

DiskPart 已成功创建虚拟磁盘文件。

DISKPART> sel vdisk file=f:\test.vhd

DiskPart 已成功选择虚拟磁盘文件。

DISKPART> attach vdisk

  100 百分比已完成

DiskPart 已成功连接虚拟磁盘文件。

DISKPART> create par pri

DiskPart 成功地创建了指定分区。

DISKPART> active

DiskPart 将当前分区标为活动。

DISKPART> format fs=ntfs quick

  100 百分比已完成

DiskPart 成功格式化该卷。

DISKPART> assign

DiskPart 成功地分配了驱动器号或装载点。

DISKPART> detach vdisk

DiskPart 已成功分离虚拟磁盘文件。

DISKPART>

写好grub4dos的菜单后,就可以重启机器安装了

title install_vhd2008sp2 1
write (md)0x200+1 [FiraDisk]\nStartOptions=disk,vmem=find:/test.vhd,boot;cdrom,vmem=find:/test.iso;\n\0
map --mem (md)0x200+16 (99)
find --set-root /test.vhd
map /test.vhd (hd0)
find --set-root /test.iso
map /test.iso (0xff)
map (hd0) (hd1)
map --hook
chainloader (0xff)

title install_vhd2008sp2 2
write (md)0x200+1 [FiraDisk]\nStartOptions=disk,vmem=find:/test.vhd,boot;\n\0
map --mem (md)0x200+16 (99)
find --set-root /test.vhd
map /test.vhd (hd0)
map (hd0) (hd1)
map --hook
root (hd0,0)
chainloader /bootmgr
回复

使用道具 举报

4#
 楼主| 发表于 2011-4-23 16:41:42 | 只看该作者
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\Root\UNKNOWN]

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\Root\UNKNOWN\0000]
"ClassGUID"="{4d36e97b-e325-11ce-bfc1-08002be10318}"
"Class"="SCSIAdapter"
"Service"="FiraDisk"
"DeviceDesc"="FiraDisk"
"ConfigFlags"=dword:00000000
"Capabilities"=dword:00000000


注册表导入上面的内容就可以,不知道能不能把这段内容放在驱动的inf文件中,这样就不用单独导入了

在vista下是Enum\Root\SCSIADAPTER这个键值,xp下是firadisk,不过名称无所谓,在root下是什么名称,services\firadisk\enum下就是什么名称
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\Root\SCSIADAPTER]

[HKEY_LOCAL_MACHINE\ttttt\ControlSet001\Enum\Root\SCSIADAPTER\0000]
"ClassGUID"="{4d36e97b-e325-11ce-bfc1-08002be10318}"
"Class"="SCSIAdapter"
"Service"="FiraDisk"
"DeviceDesc"="FiraDisk Virtual Disk Enumerator"
"ConfigFlags"=dword:00000000
"Capabilities"=dword:00000000

在用sim把驱动传送到应答文件的时候,如果准备用iso安装,只需要传送至1 (windowspe)就可以了

[ 本帖最后由 yueyezhan 于 2011-4-24 12:54 编辑 ]
回复

使用道具 举报

5#
发表于 2011-4-24 10:36:25 | 只看该作者
支持一下,不错。楼主现在还在研究vista/2008阿
回复

使用道具 举报

6#
 楼主| 发表于 2011-4-24 12:51:26 | 只看该作者
原帖由 fujianabc 于 2011-4-24 10:36 发表
支持一下,不错。楼主现在还在研究vista/2008阿


呵呵,不想把vista/2008装在物理硬盘上,现在这样直接挂载iso装在vhd感觉挺方便的
回复

使用道具 举报

7#
发表于 2012-6-18 19:18:19 | 只看该作者
LZ 写的很详细, 按照步骤实验Vista sp2 成功.

现在在尝试集成 winvblock 的驱动进去, 可是做了很多遍, 总是不成功, 启动后遇到 7E 的蓝屏, 不知 LZ 是否尝试成功过? 是不是 winvblock的驱动不支持 ISO 的安装方式?

苦闷, 继续尝试中...
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 21:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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