我在单个硬盘上安装了 Win7 x64 和 Ubuntu 11.10 x64 双启动设置。
我想在 Win7 主机上运行的 VirtualBox 中将原生 Ubuntu 作为客户操作系统运行。
我使用以下命令列出分区:
C:\ >vboxmanage internalcommands listpartitions -rawdisk \\.\physicaldrive0
Number Type StartCHS EndCHS Size (MiB) Start (Sect)
1 0x07 0 /32 /33 153 /27 /2 1200 2048
2 0x07 153 /27 /3 1023/254/63 363337 2459648
5 0x82 1023/254/63 1023/254/63 9537 746575872
6 0x83 1023/254/63 1023/254/63 46430 766107783
7 0x83 1023/254/63 1023/254/63 46431 861200384
4 0x07 1023/254/63 1023/254/63 10000 956291072
然后我创建了如下 vmdk 文件(指定 ubuntu 分区 5、6 和 7):
C:> vboxmanage internalcommands createrawvmdk -filename“C:\ubuntu_01.vmdk”-rawdisk \.\physicaldrive0 -partitions 5,6,7
vmdk 文件已成功创建,但当我创建虚拟机并指定此虚拟驱动器时,虚拟机无法启动,只有一个空白的黑屏,左上角有一个白色光标。它甚至没有显示 Grub 启动菜单。
然后我创建了另一个 vmdk 文件,但没有指定分区。
C:> vboxmanage internalcommands createrawvmdk -filename“C:\ubuntu_02.vmdk”-rawdisk \.\physicaldrive0
这次 VM 启动了,并且 ubuntu 从 VM 内部成功启动(出现 grub 2 启动菜单,选择 Ubuntu 后,它成功启动)。
我如何才能仅为客户机 ubuntu 操作系统使用特定的本机 ubuntu 分区?请帮忙。
主机:Win 7 x64
客户机:Ubuntu 11.10 x64
Vbox 版本:4.1.6 r74713,安装了最新的客户机添加组件。
答案1
我找到了一个完美的解决方法。sda7
是我安装 Linux 的分区,5,6,7
是我想要虚拟化的本机分区,“ceztko”是我的家:P
- 来自本国的linux,重新安装 grub 到原生 Linux 分区:
sudo-grub install --force /dev/sda7
- 将分区引导扇区复制到你的主目录:
# dd if=/dev/sda7 of=/home/ceztko/virtualbox-native.mbr bs=512 count=1
- 复制
virtualbox-native.mbr
到你的 Windows 安装 重新启动 Windows 并从管理员提示符开始:
VBoxManage internalcommands createrawvmdk -filename C:\users\ceztko\ubuntu.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 5,6,7 -mbr c:\users\ceztko\Dropbox\resources\virtualbox-native.mbr
- 运行 VirtualBox 并将新的虚拟驱动器分配给虚拟机。
- 享受!
这可能是 Virtualbox 的一个错误。但我猜这更可能是 grub 的一个错误,当在启动盘中安装为 mbr 时,它会与无法访问的 Windows 分区混淆。