无忧启动论坛

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

再谈VHD挂载

[复制链接]
跳转到指定楼层
1#
发表于 2012-12-15 14:04:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这里先反映一个情况,先上一个图:

这是在一个最新原装服务器主机上出现的,后来发现在很多较快的机器上都有这个现象,仔细看了一下生成VDISK的脚本如下:
create vdisk file="%SystemRoot%\System32\Y.vhd" maximum=4 TYPE=EXPANDABLE
select vdisk file="%SystemRoot%\System32\Y.vhd"
attach vdisk
create partition primary
assign letter=Y
format fs=ntfs label=vhd quick   
exit

将上述格式化与分配盘符的语句顺序倒过来,问题解决了,这个很好理解,你一插入盘符,系统立即就扫描到了,就有提示了,尽管之后你会立即格式化,它感觉的速度比格式化的速度快。这个在win7中不存在,感觉win8中桌面出得更早。建议大家都改一下吧!

上述脚本执行起来确实比较缓慢,而且主要在第一句,因此就想到先建好这个Y.VHD,只要如下语句即可

select vdisk file="%SystemRoot%\System32\Y.vhd"
attach vdisk
assign letter=Y
exit
经试验,以上红色字是无用的,一旦执行attach vdisk,系统会自动挂到系统最后一个可用盘符上。这里就想问一下各位,有没有办法指定这个盘符,让它总是挂至Y:盘上?

==========================为了看帖方便现小结如下=======================================

1、在win7/8pe中,可以用一个小的VHD文件来挂载WIM文件,最大的优势是可以使用WIM老驱动,而且不用下挂一层(而IMDISK生成的内存盘必须下挂一层才能成功)

2、这个小的VHD可以用的时候临时生成,一般放PE的系统盘中,因PE的系统盘本来在内存中,所以实际上是内存盘,但又具有本地盘的特点(即挂载时不用下挂一层)。生成这个盘的命令如下:
create vdisk file="%SystemRoot%\System32\Y.vhd" maximum=4 TYPE=EXPANDABLE
select vdisk file="%SystemRoot%\System32\Y.vhd"
attach vdisk
create partition primary
format fs=ntfs label=vhd quick   
assign letter=Y
exit
注意以上红色的两行的顺序。

3、也可以内置一个事先做好的空的VHD文件,用的时候直接挂就可以了,不用临时生成,因临时生成需要较“长”的时间,感觉到有点慢。脚本命令如下(zhaohj最新试验成果):
select vdisk file="%SystemRoot%\System32\Y.vhd"
attach vdisk
select partition=1
assign letter=Y
exit

上面两个脚本都是保存为文本文件,再用"diskpart /s"参数来调用。 或者用info的PECMD脚本(我改了一下让老九的PECMD也可用,在Win7/8中测试通过)

  1. ENVI load_vhd=(echo create vdisk file="%SystemRoot%\System32\Y.vhd" maximum=5 TYPE=EXPANDABLE &echo select vdisk file="%SystemRoot%\system32\Y.vhd" &echo attach vdisk &echo create partition primary &echo format fs=ntfs label=vhd quick &echo assign letter=Y &echo exit)
  2. IFEX %SystemRoot%\System32\Y.vhd,ENVI load_vhd=(echo select vdisk file="%SystemRoot%\system32\Y.vhd" &echo attach vdisk &echo select partition=1 &echo assign letter=Y &echo exit)
  3. EXEC =!cmd /c "%load_vhd% |diskpart"
复制代码


4、近期又发现VHD挂载的一个新特点,即在win8pe中,用VHD挂载播放器异常和opra视频无声的问题都不见了,但win7pe我反复试了多次这个问题依然存在,看来是时候从win7pe全面过渡到win8pe了。

[ 本帖最后由 hhh333 于 2012-12-16 23:34 编辑 ]

评分

参与人数 1无忧币 +10 收起 理由
20121222 + 10 好帖子,给老大加分。

查看全部评分

2#
发表于 2012-12-15 14:20:25 | 只看该作者

回复 #1 hhh333 的帖子

应该是有用的吧,我好像每次都是Y盘啊。
回复

使用道具 举报

3#
 楼主| 发表于 2012-12-15 14:28:05 | 只看该作者

回复 #2 yidawpf 的帖子

新建的有用,已经预先建好了Y.VHD的,select 后,attach就出盘符了,后面就无用了。
回复

使用道具 举报

4#
发表于 2012-12-15 14:32:02 | 只看该作者

回复 #1 hhh333 的帖子

REG ADD HKLM\SYSTEM\MountedDevices /f /v "\DosDevices\B:" /t REG_BINARY /d "7a5f30a50000010000000000"
diskpart /s extvhd.txt

挂载VHD将盘符改为Y后导出相关键值,你懂的。
回复

使用道具 举报

5#
 楼主| 发表于 2012-12-15 14:35:03 | 只看该作者

回复 #4 info 的帖子

我前面从网络上搜到的也是这个方法,能不能直接用diskpart来指定?
回复

使用道具 举报

6#
发表于 2012-12-15 14:38:18 | 只看该作者

回复 #5 hhh333 的帖子

尝试过,没成功,就没再研究了。
回复

使用道具 举报

7#
发表于 2012-12-15 14:42:26 | 只看该作者
创建一个需要的容量的VHD,不分区就OK
需要时创建分区
没有东西的VHD压缩率很高的

[ 本帖最后由 2011czmxbb52 于 2012-12-15 14:44 编辑 ]
回复

使用道具 举报

8#
 楼主| 发表于 2012-12-15 15:11:40 | 只看该作者

回复 #7 2011czmxbb52 的帖子

既然都建好了,肯定是想先格式化好了的。
回复

使用道具 举报

9#
发表于 2012-12-15 16:51:39 | 只看该作者
这个问题很早就遇到了,我也尝试很多遍没解决,系统自动挂到最后一个可用盘符上。
但同样的命令,手动就可以。我想是需要一定的延时
attach vdisk 后延时再
assign letter=Y
------------------
还有一种可能,是virtual disk(vds)服务启动太迟的原因。
回复

使用道具 举报

10#
发表于 2012-12-15 20:12:55 | 只看该作者
延迟十五、六秒试试。
回复

使用道具 举报

11#
 楼主| 发表于 2012-12-15 20:19:47 | 只看该作者

回复 #9 zhaohj 的帖子

我在win7系统中测试了,attach后,用assign提示出错,说没有指定卷
回复

使用道具 举报

12#
发表于 2012-12-16 11:54:08 | 只看该作者
我是分成两个解决的:
vdisk1.txt
select vdisk file="%systemdrive%\tool\y.vhd"
attach vdisk
exit
------------
vdisk2.txt
select vdisk file="%systemdrive%\tool\y.vhd"
select partition 1
assign letter=y
exit
------------------
@echo off
diskpart /s "%~dp0vdisk1.txt"
diskpart /s "%~dp0vdisk2.txt"
回复

使用道具 举报

13#
发表于 2012-12-16 12:24:31 | 只看该作者
看看下面的是否可以了,我测试已正常:
select vdisk file="%systemdrive%\tool\y.vhd"
attach vdisk
select vdisk file="%systemdrive%\tool\y.vhd"
select partition=1   //上面写成select partition 1是错误的写法
assign letter=y
exit
回复

使用道具 举报

14#
发表于 2012-12-16 13:48:54 | 只看该作者
原帖由 zhaohj 于 2012-12-16 12:24 发表
看看下面的是否可以了,我测试已正常:
select vdisk file="%systemdrive%\tool\y.vhd"
attach vdisk
select vdisk file="%systemdrive%\tool\y.vhd"
select partition=1   //上面写成select partition 1是 ...


老兄所谓成功具体是指?
回复

使用道具 举报

15#
发表于 2012-12-16 17:37:22 | 只看该作者
原帖由 zhaohj 于 2012-12-15 16:51 发表
这个问题很早就遇到了,我也尝试很多遍没解决,系统自动挂到最后一个可用盘符上。
但同样的命令,手动就可以。我想是需要一定的延时
attach vdisk 后延时再
assign letter=Y
------------------
还有一种可 ...

我也遇到过虚拟磁盘服务没启动造成的.VHD文件不能顺利挂载问题,偶尔会出现,不知道什么原因
回复

使用道具 举报

16#
发表于 2012-12-16 18:30:24 | 只看该作者
也许像楼主那样会出这种问题,我添加这个的时候是在PECMD最后一条命令执行的[本来是为“调整磁盘错乱”的问题作的考虑],
不知是否会出这种问题,没有楼主的环境测试。

也许要早点运行这个CMD命令,也许要晚点。加载时机也许有影响。

[ 本帖最后由 20121222 于 2012-12-16 18:35 编辑 ]
回复

使用道具 举报

17#
发表于 2012-12-16 19:59:57 | 只看该作者

回复 #13 zhaohj 的帖子

ENVI &&load_vhd=(echo select vdisk file="%SystemRoot%\system32\petool.vhd" &echo attach vdisk &echo select partition=1 &echo assign letter=Y &echo exit)
EXEC =!cmd /c %&load_vhd% | diskpart

测试已正常。
回复

使用道具 举报

18#
发表于 2012-12-16 20:08:54 | 只看该作者
马克一下。回头找时间试试
回复

使用道具 举报

19#
 楼主| 发表于 2012-12-16 21:45:44 | 只看该作者
原帖由 zhaohj 于 2012-12-16 12:24 发表
看看下面的是否可以了,我测试已正常:
select vdisk file="%systemdrive%\tool\y.vhd"
attach vdisk
rem select vdisk file="%systemdrive%\tool\y.vhd"
select partition=1   //上面写成select partition 1是 ...


以上第二句选盘的语句不能要,否则不通过!因到这里出错了就退出了。
回复

使用道具 举报

20#
发表于 2012-12-16 22:12:07 | 只看该作者
原帖由 hhh333 于 2012-12-16 21:45 发表


以上第二句选盘的语句不能要,否则不通过!因到这里出错了就退出了。


老大加油,这个问题靠您了。

顶一下。
回复

使用道具 举报

21#
 楼主| 发表于 2012-12-16 22:26:34 | 只看该作者

回复 #20 20121222 的帖子

集中大家的力量解决了,加之又有个重大的发现,我小结了一下放首页了。
回复

使用道具 举报

22#
发表于 2013-4-6 15:17:37 | 只看该作者
那个Y盘大小怎么设置才合适呢?4是不是小了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 20:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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