无忧启动论坛

标题: 再谈VHD挂载 [打印本页]

作者: hhh333    时间: 2012-12-15 14:04
标题: 再谈VHD挂载
这里先反映一个情况,先上一个图:

这是在一个最新原装服务器主机上出现的,后来发现在很多较快的机器上都有这个现象,仔细看了一下生成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 编辑 ]
作者: HB天意    时间: 2012-12-15 14:20
标题: 回复 #1 hhh333 的帖子
应该是有用的吧,我好像每次都是Y盘啊。
作者: hhh333    时间: 2012-12-15 14:28
标题: 回复 #2 yidawpf 的帖子
新建的有用,已经预先建好了Y.VHD的,select 后,attach就出盘符了,后面就无用了。
作者: spadek    时间: 2012-12-15 14:32
标题: 回复 #1 hhh333 的帖子
REG ADD HKLM\SYSTEM\MountedDevices /f /v "\DosDevices\B:" /t REG_BINARY /d "7a5f30a50000010000000000"
diskpart /s extvhd.txt

挂载VHD将盘符改为Y后导出相关键值,你懂的。
作者: hhh333    时间: 2012-12-15 14:35
标题: 回复 #4 info 的帖子
我前面从网络上搜到的也是这个方法,能不能直接用diskpart来指定?
作者: spadek    时间: 2012-12-15 14:38
标题: 回复 #5 hhh333 的帖子
尝试过,没成功,就没再研究了。
作者: sunsea    时间: 2012-12-15 14:42
创建一个需要的容量的VHD,不分区就OK
需要时创建分区
没有东西的VHD压缩率很高的

[ 本帖最后由 2011czmxbb52 于 2012-12-15 14:44 编辑 ]
作者: hhh333    时间: 2012-12-15 15:11
标题: 回复 #7 2011czmxbb52 的帖子
既然都建好了,肯定是想先格式化好了的。
作者: zhaohj    时间: 2012-12-15 16:51
这个问题很早就遇到了,我也尝试很多遍没解决,系统自动挂到最后一个可用盘符上。
但同样的命令,手动就可以。我想是需要一定的延时
attach vdisk 后延时再
assign letter=Y
------------------
还有一种可能,是virtual disk(vds)服务启动太迟的原因。
作者: freesoft00    时间: 2012-12-15 20:12
延迟十五、六秒试试。
作者: hhh333    时间: 2012-12-15 20:19
标题: 回复 #9 zhaohj 的帖子
我在win7系统中测试了,attach后,用assign提示出错,说没有指定卷
作者: zhaohj    时间: 2012-12-16 11:54
我是分成两个解决的:
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"
作者: 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是错误的写法
assign letter=y
exit
作者: achst    时间: 2012-12-16 13:48
原帖由 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是 ...


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

我也遇到过虚拟磁盘服务没启动造成的.VHD文件不能顺利挂载问题,偶尔会出现,不知道什么原因
作者: achst    时间: 2012-12-16 18:30
也许像楼主那样会出这种问题,我添加这个的时候是在PECMD最后一条命令执行的[本来是为“调整磁盘错乱”的问题作的考虑],
不知是否会出这种问题,没有楼主的环境测试。

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

[ 本帖最后由 20121222 于 2012-12-16 18:35 编辑 ]
作者: spadek    时间: 2012-12-16 19:59
标题: 回复 #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

测试已正常。
作者: fukystone    时间: 2012-12-16 20:08
马克一下。回头找时间试试
作者: hhh333    时间: 2012-12-16 21:45
原帖由 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是 ...


以上第二句选盘的语句不能要,否则不通过!因到这里出错了就退出了。
作者: achst    时间: 2012-12-16 22:12
原帖由 hhh333 于 2012-12-16 21:45 发表


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


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

顶一下。
作者: hhh333    时间: 2012-12-16 22:26
标题: 回复 #20 20121222 的帖子
集中大家的力量解决了,加之又有个重大的发现,我小结了一下放首页了。
作者: 2012xianyue    时间: 2013-4-6 15:17
那个Y盘大小怎么设置才合适呢?4是不是小了




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