如何在虚拟机vm中使用安装了Windows 7的真实分区?

我的Ubuntu 12.04安装在/dev/sda5/dev/sda1上的Windows 7上。 当我运行Ubuntu时,我想使用Virtualbox在VM中运行Windows 7。 Windows 7分区是1 TB并且是半满的,即大,所以我不想将其复制到虚拟硬盘中。

我已经读过可以将一个真正的硬盘用于Virtualbox VM,但是我发现的各种指令彼此不同,我似乎无法让它工作。 有没有人知道一种方法,使其在Ubuntu 12.04和Virtualbox 2.1.12_Ubuntu r77245(最新的Ubuntu安装了回购)工作?

请发布它是如何工作的,因为我想重试任何可行的方法。

你想要的命令是

 VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1 

这将创建一个特殊的VMDK虚拟磁盘文件(Win7.vmdk),它实际上是指向主机磁盘分区/dev/sda1的指针。

理论上,您可以将此作为VM的磁盘文件直接从实际磁盘分区运行,但是…

  • (a)我从来没有试过这个,所以不知道它有多可靠
  • (b)您可能会遇到Windows激活问题,具体取决于您的许可证密钥以及Windows是否确定检测到的“硬件”已发生重大变化

是的,您可以使用内部createrawvmdk命令执行此操作,该命令不会创建整个磁盘映像,而是指向实际硬件的指针。

有两种方法可以做到这一点

  • A.完整磁盘映像(/ dev / sdb)

     sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb 
  • B.分区图像

    正如@StarNamer所示,您只能使用一个或几个分区。

    要创建只有一个(/ dev / sda1)分区的映像:

     sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1 

    要创建自定义分区表,它将按顺序映射/ dev / sda2和/ dev / sda1:

     sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1 

最显着的区别在于,完整的磁盘映像将完全像在磁盘中一样使用引导加载程序和分区表,因此理论上(我以前只在qemu中执行过此操作)您将能够从虚拟机中设置操作系统。 根据我有限的经验,我可以说完整的磁盘映像将完全像qemu -hda /dev/sdb

进一步阅读:

  • VirtualBox文档: 使用来宾的原始主机硬盘
  • VirtualBox仅在UEFI Interactive shell中启动 (仅包括用于UEFI安装的ESP将无法运行)
  • 从Ubuntu( 1,2 )中安装Windows MBR引导程序(临时)

有一个名为“Immutable”的磁盘选项,因此理论上如果为链接到原始磁盘的vmdk选择此选项,则不应更改原始分区。

为此,打开“文件”下的“虚拟媒体管理器”,选择您的图像,然后单击“修改”(您必须确保此图像未连接到任何计算机,否则会出现错误)。 现在您可以将媒体类型设置为“不可变”。

不过,我没有测试过这个。 如果有人(当然有测试设置),最好在这里报告。

有没有人反对这个想法?

几年来,我一直在运行双启动Windows和Ubuntu,Ubuntu分区也启动到Windows VirtualBox,以利用Linux尚未掌握的触摸屏function。

我用类似下面的说明进行设置;

  • 如何在计算机上双引导和虚拟化相同的分区

新机器可以比旧机器上的单个系统同时处理两个操作系统。

缺点:如果更新禁用VirtualBox连接(我当前的问题),您需要保存用于设置的说明。

经过多次尝试,我得到了一个干净整洁的解决方案:

  1. 启动要虚拟化的Windows分区
  2. 从Sysinternals下载Disk2VHD实用程序
  3. 如果您有UEFI分区 ,请按照这些说明操作
  4. 创建C:分区,恢复,UEFI(如果有)以及您想要的任何其他内容的VHD(非VHD X )映像
  5. 回到Linux,打开VirtualBox并根据您的Windows操作系统规范创建一个VM
  6. 将第4点创建的VHD磁盘附加到该VM
  7. 而已
  8. 利润

UEFI情况下的故障排除:

  1. 在VM设置中,在VirtualBox中,选中“系统”选项卡下的“启用EFI”选项
  2. 如果您遇到EFI Shell,请运行以下命令:

     fs0:\EFI\Boot\bkpbootx64.efi