将真实的驱动器备份到VHD是非常容易的,例如,使用 XP 上的Sysinternal的Disk2VHD或Windows 7上的Windows映像备份。但是如何将文件复制回来?
可以通过引导恢复CD或Windows安装DVD来实现。但是也可以从运行的操作系统中完成吗?可以编写脚本吗?
我们希望每天使用此驱动器将一个驱动器克隆到另一个驱动器。
将真实的驱动器备份到VHD是非常容易的,例如,使用 XP 上的Sysinternal的Disk2VHD或Windows 7上的Windows映像备份。但是如何将文件复制回来?
可以通过引导恢复CD或Windows安装DVD来实现。但是也可以从运行的操作系统中完成吗?可以编写脚本吗?
我们希望每天使用此驱动器将一个驱动器克隆到另一个驱动器。
Answers:
您可以qemu-nbd
在Linux中使用它来访问磁盘映像,就好像它是块设备一样。
这是可以从实时Knoppix终端执行的一些操作示例。
su
modprobe nbd
qemu-nbd --read-only --connect=/dev/nbd0 --format=vpc <vhd_file_name>
如果是VHDX格式:
qemu-nbd --connect=/dev/nbd0 --format=VHDX <vhdx_file_name>
ddrescue --verbose --force /dev/nbd0 /dev/sda # write image to /dev/sda
写一个分区:
qemu-nbd --partition=2 --read-only --connect=/dev/nbd2 --format=vpc <vhd_file_name>
ddrescue --verbose --force /dev/nbd2 /dev/sda2 # write partition 2 of image to /dev/sda2
挂载分区:
qemu-nbd --partition=2 --read-only --connect=/dev/nbd2 --format=vpc <vhd_file_name>
mount /dev/nbd2 /mnt
卸载并断开映像文件:
unmount /mnt
qemu-nbd --disconnect /dev/nbd2
至少有两个类似的问题得到了答案:
/superuser/40294/copying-a-vhd-to-a-physical-disk
但是您不能从正在运行的操作系统中执行此操作。
编写脚本很难。遵循Linux的方法,dd
可以说一切皆有可能。重新启动完成后,从PXE引导,找到VHD,找到物理磁盘,从V到P的dd。
可以用于Windows,iso,vhd,vhdx等Windows上的任何可安装格式。
可以使用Virtualbox将物理设备作为虚拟机内的虚拟设备连接
Windows方式
VBoxManage internalcommands createrawvmdk -filename "C:\Users\vhudson\VirtualBox VMs\usb.vmdk" -rawdisk \\.\PhysicalDrive1
Linux方法
VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /deb/sdb
使用额外的iso作为实时CD,例如hirens boot或一些Linux抢救映像,还可以将映像从一个虚拟设备复制到虚拟机内部虚拟存在的物理设备。
我已使用vmdk2phys成功完成此操作。
还有另一个工具叫做Disk Image Tools或DITOOLS,它声称可以做到这一点。
正如其他人所说,acronis真实形象可以做到这一点。Western Digital有一个版本的acronis true image,可在至少安装了一个WD硬盘的任何计算机上运行,称为Acronis True Image WD Edition,但是我不确定它是否支持虚拟机硬盘映像,例如VHD / VMDK。
另一种选择是在磁盘管理MMC中挂载vhd,然后使用诸如Roadkil RawCopy之类的工具。
使用大量的vhd将磁盘转换为vmdk转换器,例如:https : //sourceforge.net/projects/vboxhdtools/
然后使用此工具转换为物理驱动器(在Windows中):https : //sourceforge.net/projects/vmdk2phys/
是的,总结最好的方法是使用qemu-img
apt安装qemu-utils
qemu-img转换-f vpc image.vhd / dev / sda
并将块设备安装到创建的文件中。
mount /dev/sda /path/to/new_file_created
现在您可以访问数据new_file_created
dev / sda是您可用的块设备,可能需要根据您的设置进行更改。