0xAA55 发表于 2014-2-18 23:58:30

【虚拟机】教你如何轻松实现VHD虚拟硬盘的直接读写

大家在使用虚拟机的时候(特别是Virtual PC)一定会接触到VHD格式的虚拟磁盘文件。如果是虚拟的Windows的话还算好办,因为你只需要安装虚拟机增强组件之后直接把文件拖放进去就可以了。但是如果是没有装虚拟机增强组件或者虚拟的系统比较屌(比如DOS、Mac OS等)就不能直接拖放了。因此我们需要一个能直接访问文件的方法。

1、通过DISKPART来实现
通过DISKPART命令来完成操作。这个方法比较方便,也比较快速。但是需要用户熟悉CMD的使用。
详细操作:
1、召唤出CMD。方法请看这个帖子:
http://www.0xaa55.com/thread-14-1-1.html

2、输入命令:DISKPART,回车:


3、输入命令:SELECT VDISK FILE=你的VHD文件的完整路径,回车:

如果输错了就重新输一遍正确的。注意如果完整路径里面带空格(此时是长文件名),那么请在完整路径两端加上半角双引号"来把完整路径括起来。

如果打印出“DiskPart 已成功选择虚拟磁盘文件。”那么就可以绑定VHD文件了。
4、输入命令:ATTACH VDISK,回车:


好,这个时候你打开“计算机”,就会看到虚拟磁盘文件已经出现了!


然后你就可以轻松操作里面的文件了。但是要注意,刚才的CMD窗口别关。当然关了也没关系,重新按照前面第2、3个步骤做,然后再按照这里第5个步骤做就可以了。
那就欢快地拷文件吧!



5、拷完文件之后,你不能总是挂着它吧?你得把它取下来,虚拟机才能运行。因此我要教大家怎么取下来。
接着刚才的CMD窗口,输入命令:DETACH VDISK,回车:


只要它打印出“DiskPart 已成功分离虚拟磁盘文件。”就表示你已经成功把它取下来了。
而如果他显示的是“未选择任何虚拟磁盘。请选择一个虚拟磁盘并重试。”那证明你可能中途不小心关掉CMD窗口了。没关系,重新按照前面第2、3个步骤做,然后再按照这里第5个步骤做就可以了。

到此为止大功告成,运行虚拟机就可以看到效果:
http://www.0xaa55.com/data/attachment/forum/201402/18/102334ibu4jzrpknzdruid.png
上图是DOS下的BADAPPLE。详情请见:
http://www.0xaa55.com/thread-220-1-1.html

2、通过“磁盘管理”实现
对于摸不清CMD命令的菜鸟们我准备了一个不需要CMD命令的好方法。

1、回到桌面,在“计算机”上点右键,选“管理”:


2、左边选“磁盘管理”,然后右边选“更多操作->附加VHD”

大家可能注意到“附加VHD”上面有个“创建VHD”。没错,它的功能就是新建一个VHD虚拟磁盘。怎么样,是不是突然发现这个好方便的说。

3、在弹出的窗口中输入你的VHD文件的绝对路径。可以通过点“浏览”按钮来手动查找VHD文件。如果你不希望VHD里面的内容被改写的话,你可以勾选“只读”
然后点确定。



4、好,这个时候你打开“计算机”,就会看到虚拟磁盘文件已经出现了!


开始欢快地拷文件吧!


5、操作完了之后要把VHD取下来。
在下面的窗口中找到你创建VHD的磁盘(别弄错了哦)
右键选“脱机”



6、在你已经脱机的VHD磁盘上点右键选“分离VHD”弹出的对话框不要勾选那个复选框!否则你的VHD文件会消失。

好了之后关掉“计算机管理”这个窗口就行。

到此为止大功告成。

3、通过DISKPART脚本实现
这是一个新方法,更方便,更快捷。原理其实和第一个方法的原理是完全一样的。

1、打开记事本,输入以下内容:
@echo off
echo select vdisk file=%1>%temp%\AVD.TMP
echo attach vdisk>>%temp%\AVD.TMP
diskpart /s %temp%\AVD.TMP
pause
然后保存到C:\WINDOWS\ATTACHVD.BAT。注意后缀必须是BAT或CMD,否则不会起作用。

保存后关掉记事本。

2、打开记事本,输入以下内容:
@echo off
echo select vdisk file=%1>%temp%\AVD.TMP
echo detach vdisk>>%temp%\AVD.TMP
diskpart /s %temp%\AVD.TMP
pause
然后保存到C:\WINDOWS\DETACHVD.BAT。注意后缀必须是BAT或CMD,否则不会起作用。
注意这一步和第一步的区别是第三行的attach换成了detach。

保存后关掉记事本。

3、右键点击你的VHD文件,选打开方式,然后设置打开它的程序为“C:\WINDOWS\ATTACHVD.BAT”

这样直接双击你的VHD文件,你再打开“计算机”就能直接找到虚拟磁盘了!屌不屌
不过这个方法会产生一个大小只有几十字节的临时文件。

4、开始欢快地拷文件吧!

5、把VHD取下来的方法是右键点击你的VHD文件,选打开方式,然后设置打开它的程序为“C:\WINDOWS\DETACHVD.BAT”
这样只要你双击这个VHD文件,它就直接被取下来了。很屌吧?
不过这个方法会产生一个大小只有几十字节的临时文件。

总结:
方法1:这个方法并不难,熟悉CMD的就比较喜欢这种方法。而且弄得好可以做成批处理。
方法2:对于不熟悉CMD的用户可以用方法2.但是方法2并不稳定,而且有BUG。弄多了就可能会出现虚拟磁盘无法绑定或解绑,只能重启。
方法3:如果你对虚拟磁盘的操作很频繁的话,这不失为一种非常方便的方法。但是这样会让你的VHD文件有很奇怪的图标。而且杀毒软件可能会干涉你。


页: [1]
查看完整版本: 【虚拟机】教你如何轻松实现VHD虚拟硬盘的直接读写