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

Jaz*_*azz 40 virtualbox windows-7 12.04

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

我已经读到可以为 Virtualbox VM 使用真正的硬盘,但是我发现的各种指令彼此不同,我似乎无法让它工作。有谁知道让它在 Ubuntu 12.04 和 Virtualbox 2.1.12_Ubuntu r77245(最新的 Ubuntu 安装了存储库)中工作的方法?

请发布它如何为您工作,因为我想重试任何可能有效的方法。

Sta*_*mer 27

你想要的命令是

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1
Run Code Online (Sandbox Code Playgroud)

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

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

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


小智 16

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

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

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

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
    Run Code Online (Sandbox Code Playgroud)
  • B.分区映像

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

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

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    
    Run Code Online (Sandbox Code Playgroud)

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

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    
    Run Code Online (Sandbox Code Playgroud)

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

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

sudo usermod -aG disk,vboxusers ubuntu
Run Code Online (Sandbox Code Playgroud)

然后确保您重新登录或重新启动计算机。

进一步阅读:

  • “此外,virtual-box 需要以 root 身份运行”。其实不行,你需要是组磁盘的成员。比以 root 身份运行 virtual-box 安全得多。 (3认同)
  • 以下是使用 Ubuntu 16.04 作为主机系统和 Windows 10 作为来宾系统对我有用的方法:我使用 `sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3 创建了 .vmdk 文件`. 这样我就包括了 windows 分区以及 EFI 引导加载程序分区。然后我按照 shilka 在 https://www.virtualbox.org/ticket/7702 上的说明添加了 cloverefiboot。奇迹般有效! (3认同)