当前位置: 首页>>技术教程>>正文


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

, , ,

问题描述

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

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

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

最佳解决办法

你想要的命令是

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

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

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

  • (a)我从来没有试过这个,所以不知道它有多可靠

  • (b)您可能会遇到Windows激活问题,具体取决于您的许可证密钥以及Windows是否确定检测到的’hardware’已发生重大变化

次佳解决办法

是的,您可以使用内部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一样工作。

注意:如果您使用用户访问磁盘,则需要将其添加到diskvboxusers组,例如

sudo usermod -aG disk,vboxusers ubuntu

然后确保你re-login或重新启动你的电脑。

进一步阅读:

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2948.html,未经允许,请勿转载。