将硬盘上的本地操作系统作为虚拟机启动

29

我正在寻找一种解决方案,可以将硬盘上的本地操作系统作为虚拟机启动。

就像VMware Fusion在Mac上所做的那样,在Boot Camp中启动Windows作为虚拟机。

具体来说,我在/dev/sda2上安装了Windows,在/dev/sda5上安装了Ubuntu 11.10。

是否有任何方法可以使用虚拟机软件将/dev/sda2上的Windows作为虚拟机启动,同时我正在使用Ubuntu?


1
VMWare允许这样做,参见https://help.ubuntu.com/community/VMware/Workstation/NativeVirtualMachine。不幸的是,使用免费版本可能无法实现。 - tcovo
@tcovo 谢谢链接。但是好像我在 Windows 使用后仍然需要重新启动。我应该明确说明我想在 Ubuntu 中以非本地方式使用 Native Windows,这样可以吗? - YankeeWhiskey
1
本文介绍如何在分区上设置Windows XP安装,以便可以用于本机Windows引导和在虚拟机中运行。这甚至可能比您需要的更多。如果您不再需要本机引导Windows,则可以考虑使用VMware Converter(http://www.vmware.com/products/converter/),如果您还没有使用过。它可以让您将物理机器转换为虚拟机。 - tcovo
3个回答

12

是的,我很久以前就按照这个指南做过了:

https://lists.ubuntu.com/archives/ubuntu-us-nm/2008-February/000521.html

当然,一定要备份并小心操作!

基本上:

  1. Used a USB 3.5 HD enclosure and connect the XP drive to it.

    If the drive was shutdown uncleanly you may need to manually 
    

使用以下命令进行挂载。

   sudo mount ntfs-3g /dev/whereyourdriveis /mount/somemountpoint -o 

强制

   Once the drive is mounted under linux contiunue to step 2.
  1. 启动VMWare。
  2. 转到文件 -> 新建 -> 新建虚拟机。
  3. 选择“自定义”
  4. 选择下一步
  5. 选择您的操作系统(如Win XP)
  6. 选择下一步
  7. 给它一个名字,比如“WindowsXP”
  8. 选择下一步
  9. 指定处理器为一个或两个
  10. 选择下一步
  11. 选择公共或私有(在单用户计算机上这没有关系)
  12. 选择下一步
  13. 选择要分配给虚拟机的内存。512 MB是一个相当有用的数字。
  14. 选择您的网络连接
  15. 选择下一步。
  16. 将SCSI保留为BusLogic
  17. 选择下一步
  18. 选择使用物理磁盘
  19. 选择下一步
  20. 选择使用整个驱动器
  21. 选择下一步
  22. 指定保存虚拟机的位置
  23. 到这一步为止您已经完成,在VMWare中启动物理驱动器即可!

更多信息: 我应该补充一点,我成功地完成了这个过程,但是即使在几年前我也曾使用这种方法成功。因此,我可以告诉您至少有两种已知且经过测试的方法可以完成这个过程。


11
您可以通过VirtualBox原始磁盘访问来实现此操作。 (http://www.virtualbox.org/manual/ch09.html) 它基本上创建一个指向实际分区的“虚拟”磁盘文件,并在VM中将其加载为磁盘驱动器。 我已经以这种方式在Windows主机上的VB中安装了Linux guest,并且安装可以从VM或自身启动。

有没有可能反过来呢?从Linux主机引导我的Windows电脑? - Csaba Toth
不明白为什么不行。只需要找到一种在Linux中创建虚拟磁盘文件并引用Windows驱动器的方法即可。 - jianglai

2

如前所述,这也可以在VirtualBox中完成,这是适合我的方法

始终确保您以管理员(Windows)Sudo(Linux)身份运行,您所做的任何更改都将写入真实磁盘,因此要小心

在Windows中

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands createrawvmdk -filename "E:\virtualbox\linuxhd.vmdk" -rawdisk "\\.\PhysicalDrive1"
RAW host disk access VMDK file E:\virtualbox\linuxhd.vmdk created successfully.

在 Linux 中

$ VBoxManage internalcommands createrawvmdk -filename "~/linuxhd.vmdk" -rawdisk "/dev/sda"

它将创建一个大约 1kb 的文件,该文件是指向物理硬盘的链接。

之后像往常一样创建虚拟机即可。

如果您只想映射一个分区

在Windows操作系统中,

\\.\Physicaldrive1 -partitions 1

(磁盘从0开始编号,分区从1开始)

在Linux中(更加直观)

/dev/sda1
/dev/sda2
etc.

最终您可能会遇到分辨率问题

即使在安装了vboxadditions后,最终您可能会遇到分辨率问题。根据我的经验,问题出在您的/etc/X11/xorg.conf文件上,它是根据您特定的真实硬件规格配置的(例如,我有一个独立的GPU),至少在我的情况下,我通过删除此文件来解决它(xorg会在启动时自动配置,只有当您设置了某些特定设置时才不起作用),所以运行以下命令:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.original && sudo rm /etc/X11/xorg.conf

Reference


在Linux中,用户必须加入“disk”组才能访问原始分区。https://unix.stackexchange.com/questions/284704/verr-access-denied-when-trying-to-add-a-raw-disk-to-virtual-box#399354 - Meraj al Maksud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接