阅读:2399回复:11
如何让网络虚拟磁盘成为可引导的设备?
我利用Scsi Miniport和TDI做了一个网络虚拟磁盘驱动,当把该驱动安装到一个有硬盘的机器上时,从物理硬盘引导一切正常,可以在资源浏览器中看到我的虚拟磁盘(F盘)。
现在我希望在一个没有硬盘的机器上利用虚拟磁盘引导windows2000,我把windows2000的所有系统文件复制到了虚拟磁盘上,并能够利用pxe加载了windows的ntldr,然后ntldr利用int13h加载了所有的boot driver(start type = 0 的驱动),但是当需要使用虚拟磁盘驱动进行下面的引导时,出现了BugCheck如下: 0x0000007B(0xF782384C,0xC0000034,0x0,0x0) INACCESSIBLE_BOOT_DEVICE 谁能帮助我解释一下这是怎么回事? 关键的boot driver加载次序为(已经过检验): NDIS.sys RTL8139.sys (网卡驱动) tcpip.sys (网络协议栈) tdi.sys vdisk.sys (我的虚拟磁盘驱动) scsiport.sys 我觉得以上驱动加载次序应该没问题。 我的boot.ini中指定的引导设备为: multi(0)disk(0)rdisk(0)partition(1)\\WINNT=\"...\" terrychen曾经在一个帖子中说道利用虚拟磁盘引导需要在arcname目录下建symboliclink,请问这需要在我的虚拟磁盘驱动中编程实现吗?我觉得这好像不是磁盘驱动的任务。 windows2000在引导时在涉及磁盘驱动这块究竟发生了什么? 多谢? |
|
|
沙发#
发布于:2005-03-28 21:54
我利用Scsi Miniport和TDI做了一个网络虚拟磁盘驱动,当把该驱动安装到一个有硬盘的机器上时,从物理硬盘引导一切正常,可以在资源浏览器中看到我的虚拟磁盘(F盘)。 对,就是要创建symboliclink |
|
|
板凳#
发布于:2005-03-28 22:56
多谢AllenZh
再确认一下,是在磁盘驱动初始化时使用 IoAssignArcName( L\"multi(0)disk(0)rdisk(0)\", L\"\\\\Device\\\\Harddisk0\\\\Partition0\" ); IoAssignArcName( L\"multi(0)disk(0)rdisk(0)partition(1)\", L\"\\\\Device\\\\Harddisk0\\\\Partition1\" ); 就可以了吧? |
|
|
地板#
发布于:2005-03-28 22:58
今天来不及了,我明天试试,行就散分。
|
|
|
地下室#
发布于:2005-03-28 23:01
结果如何???
|
|
|
5楼#
发布于:2005-03-29 08:09
结果如何??? 关注中... |
|
|
6楼#
发布于:2005-03-29 09:24
楼主的错误,在Win2k没打pack下常出,建议打到Pack4下再试一下
|
|
|
7楼#
发布于:2005-03-29 10:28
感谢各位大虾
我在vdisk的系统线程中加入了如下代码后可引导 UNICODE_STRING ArcName, DeviceName; // create symbolic link RtlInitUnicodeString(&ArcName, L\"\\\\ArcName\\\\multi(0)disk(0)rdisk(0)\"); RtlInitUnicodeString(&DeviceName, L\"\\\\Device\\\\Harddisk0\\\\Partition0\"); IoAssignArcName(&ArcName, &DeviceName); RtlInitUnicodeString(&ArcName, L\"\\\\ArcName\\\\multi(0)disk(0)rdisk(0)partition(1)\"); RtlInitUnicodeString(&DeviceName, L\"\\\\Device\\\\Harddisk0\\\\Partition1\"); IoAssignArcName(&ArcName, &DeviceName); 但是登录后,报告无页面文件(我想pagefile吧),我明明在拷贝系统文件时把C:\\pagefile.sys拷贝到了虚拟磁盘映象中,为什么不能用呢?还请各位给说个道理出来。另,我想知道为什么需要建立上面的符号链接,好像如果是物理硬盘的话,windows会自动在arcname目录下建立链接,为什么虚拟磁盘需要自己建立,是我没写虚拟总线的缘故吗? 但无论如何,感谢各位,我决定散分了。 |
|
|
8楼#
发布于:2005-03-29 10:32
分给了,有没收到哇
|
|
|
驱动老牛
|
9楼#
发布于:2005-03-29 12:30
分给了,有没收到哇 哎呀 来晚了 |
|
10楼#
发布于:2005-07-19 16:44
修改HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices中的
\dosdevice\????? 把所有值去掉后,应该就不会出现pagefile文件错误的现象了。 |
|
11楼#
发布于:2005-07-21 11:51
晕,我以前做过无盘,M$好像到了WinMe就不支持网络启动了,如果你这么牛,能实现的话......................
|
|