如何在虚拟机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连接(我当前的问题),您需要保存用于设置的说明。
经过多次尝试,我得到了一个干净整洁的解决方案:
- 启动要虚拟化的Windows分区
- 从Sysinternals下载Disk2VHD实用程序
- 如果您有UEFI分区 ,请按照这些说明操作
- 创建C:分区,恢复,UEFI(如果有)以及您想要的任何其他内容的VHD(非VHD X )映像
- 回到Linux,打开VirtualBox并根据您的Windows操作系统规范创建一个VM
- 将第4点创建的VHD磁盘附加到该VM
- 而已
- 利润
UEFI情况下的故障排除:
- 在VM设置中,在VirtualBox中,选中“系统”选项卡下的“启用EFI”选项
-
如果您遇到EFI Shell,请运行以下命令:
fs0:\EFI\Boot\bkpbootx64.efi