由于我已经从旧磁盘升级到新磁盘,并决定重新安装操作系统,而不是复制映像并拖动多年来积累的所有“垃圾”,我认为在虚拟机中运行“旧”操作系统是个好主意,从而使过渡更容易:如果需要的话,在我设置新机器时,我仍然可以访问“旧机器”,而并不是所有内容都已迁移。
我以前用 WindowsXP 机器做过这样的事,所以没想到会出什么问题。我错了 =) 我花了大半天时间才弄清楚问题出在哪里,在网上寻求帮助大多都是徒劳的 =(
因此,我将在下面写下我做了什么来使它工作,以便其他人可以从中受益......
答案1
以下是我为实现此目的所做的事情的列表,我保留了一些“关键错误”,但省略了我尝试过的大多数死胡同。如果有人想添加建议,请随意,因为我在虚拟化方面绝对是个业余爱好者。
(可选)尽可能多地卸载当前操作系统中的程序(不需要的程序,还有视频驱动程序/音频驱动程序等,因为虚拟机中的硬件无论如何都是不可见的……)。磁盘上的数据越少,虚拟磁盘以后就会越小,从而占用更少的宝贵空间。
创建当前操作系统的映像。您可以使用 SysInternals 的 Disk2Vhd 在线执行此操作。只需连接外部磁盘,选择要转换的操作系统分区并在外部磁盘上创建 VHD。理论上您可以同时使用该机器,但我建议不要这样做。
=> 备注:源磁盘不得超过 127Gb(或曾经有过?)。由于我当前的磁盘只有 120Gb,因此我没有遇到任何问题,我也不知道问题是否仍然存在...
=> 备注:我很久以前就已经删除了 BitLocker 分区,不确定如果存在 BitLocker 分区,是否可以虚拟化,更不用说如果它正在使用中。在网上查找,你会发现一些关于如何摆脱它的指南。
交换磁盘并启动“新”操作系统。使用 Windows Virtual PC 在新虚拟机中加载 .vhd。
=> 这不会像 WinVPC 那样工作不是支持 64 位并模拟 32 位机器。因此操作系统尝试启动并失败 =(
获取 VMWare Player 并安装它(免费软件)。
从 Starwind 获取 V2V 图像转换器(免费软件但需要注册)并安装它。
将.vhd 转换为.vmdk 映像(需要一段时间,最好从一个磁盘转换到另一个磁盘)。
- 在 VMPlayer 中创建一个新的虚拟机,表示稍后您将在其上安装 Win7 64 位。将机器放在文件夹 X 中,选择单文件虚拟磁盘。
用上面创建的 .vmdk 替换文件夹 X 中创建的 .vmdk。=> 像这样启动虚拟机会让我得到“变形窗口”,然后出现蓝屏和重新启动......一遍又一遍。
使用文本编辑器打开 .vmx 文件并查找以下条目:
scsi0.present = "TRUE" scsi0.virtualDev = "lsisas1068" scsi0:0.present = "TRUE" scsi0:0.fileName = "<filename>.vmdk" ide1:0.present = "TRUE" ide1:0.autodetect = "TRUE" ide1:0.deviceType = "cdrom-raw"
并将信息替换为以下内容:
bios.bootDelay = "5000" scsi0:0.present = "FALSE" ide0:0.present = "TRUE" ide0:0.fileName = "<filename>.vmdk" ide0:0.virtualDev = "lsisas1068" ide1:0.present = "TRUE" ide1:0.autodetect = "TRUE" ide1:0.deviceType = "cdrom-raw"
保存并启动虚拟机,然后祈祷一切顺利。对我来说,从这里开始一切都很完美。
备注:由于操作系统注意到“硬件”已更改,因此需要重新激活。就我而言,此操作失败,因为我重新使用了“新”操作系统的密钥。YMMV。
答案2
我目前对虚拟机还没有太多的了解,但我想说的是,VMware 已经有了针对此问题的解决方案:VMware vCenter 转换器。从他们的主页:
VMware vCenter Converter 将基于 Windows 和 Linux 的物理机和第三方映像格式转换为 VMware 虚拟机。