我一直在尝试将 Windows 7 分区转换为 VDI,以便我可以在 Virtualbox 中启动它并删除该分区。
我之前已经能够在主机(Mac OS X)中启动原始分区。
我曾经dd
创建过一个图像分割,而不是整个磁盘。愚蠢
然后我删除了该分区。真愚蠢。
现在,当我创建一个 Virtualbox 机器时,我可以连接驱动器,但它无法启动。
我尝试过标准的 Windows 启动恢复选项,但都没有成功。diskpart
我甚至无法选择分区,也无法在 Linux Live OS 中安装。
我认为(知道)这是因为我只提取了分区的映像,而不是驱动器的映像,因此没有分区表或引导记录。我不再有权访问原始分区或驱动器。
所以我的问题是 - 给定一个分区的原始映像,我需要做什么才能在 Virtualbox 中创建可启动驱动器?
答案1
我设法通过创建一个新的来解决这个问题驾驶一个分区的图像,然后恢复我的分割备份到其中,然后在虚拟机中使用新的驱动器映像。但这并不容易,所以这里是具体步骤 - 虽然我不确定所有步骤是否必要 -
- 使用创建了一个新的、空白的 130GB 图像
dd if=/dev/zero of=disk1.img bs=1 count=1 seek=130g
(它必须比原始的 126GB 图像稍大一些。) - 用于
sudo fdisk -e disk1.img
在该映像上创建分区表和 MBR,其中包含一个分区。 - 直接在 Mac OS X Finder 中安装新映像,然后使用 Mac OS X
Disk Utility
将备份分区映像恢复到驱动器映像内的新分区上。 - 使用以下方式将图像转换为 VDI
VBoxManage convertfromraw disk1.img Windows.vdi
- 此时,我认为它可以工作,因此将其作为启动驱动器附加到虚拟机,但不幸的是,这会创建“发生磁盘读取错误”消息。
- 将该虚拟机启动到 Windows 7 恢复,然后
bootsect.exe /FixBoot
运行bootsect.exe /FixMbr
- 仍然有“发生磁盘读取错误”消息,所以......
- 将驱动器映像附加到现有虚拟机中,但作为辅助驱动器。
testdisk
开车上路在客人内(因此它将其视为普通驱动器,而不是图像)。- 检查并更新分区结构和引导扇区,直到
testdisk
停止抱怨。 - 使用新映像作为主驱动器重新启动虚拟机...BINGO!
感谢以下页面:
答案2
尝试从 Linux Live CD 映像启动虚拟机。然后,您可以使用 gparted 或 testdisk 来修复磁盘结构。
想想,在这些情况下,最好简单地将 Windows 安装为虚拟机,然后将文件从映像移动到新安装的分区/磁盘映像。