我经常需要在单个登录会话中在同一台机器上使用Windows 10和Ubuntu,因此我将Ubuntu作为虚拟机运行在Oracle VirtualBox中。 但是我也希望能够将本机启动到Ubuntu,所以双引导配置是最佳的。
为了获得最好的两个世界,我安装Ubuntu在双引导配置和Windows,并配置VirtualBox访问Ubuntu磁盘分区作为原始磁盘映像。 这允许我直接引导到Ubuntu,或者使用VirtualBox从Windows启动相同的Ubuntu安装。
使用Ubuntu 14.04.4,Windows 10 Pro v.1511 build 10586和64位Windows的VirtualBox 5.0.24成功执行了此配置。
第1步:启用虚拟化技术
直接硬件访问是此配置的关键,因此请确保在BIOS中启用虚拟化技术 ,特别是Intel VT-x或AMD-v 。
第2步:下载并验证Ubuntu ISO
下载您将在系统上安装的ISO 。 在这个例子中,我们正在安装Ubuntu 14.0.4的64位桌面版本 。
在安装之前验证ISO。 从包含ISO的同一目录下载SHA256SUMS和SHA256SUMS.gpg 。 对于Ubuntu 14.0.4,文件在这里 (随机的US镜像)。
使用gpg验证SHA256SUMS的真实性。 (如果您只在Windows机器上,gpg可作为Cygwin的软件包使用。)
下载Ubuntu公钥,并将其添加到gpg的密钥环:
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xEFE21092
验证密钥的指纹:
gpg --list-keys with-fingerprint 0xEFE21092
使用SHA256SUMS.gpg中的签名验证文件SHA256SUMS:
gpg --verify SHA256SUMS.gpg SHA256SUMS
如果您看到“良好的签名”,则文件将被验证。 (您可能会收到关于未被认可的密钥的信息,这意味着您没有将Ubuntu的密钥特别标记为可信任,该消息可以被忽略。)
最后,验证ISO。 SHA256SUMS将包含几个校验和,所以只需要一个你需要的,并用gpg检查。
sha256sum -c < (grep ubuntu-14.04.4-desktop-amd64.iso SHA256SUMS)
第3步.为Ubuntu安装创建一个分区
创建一个分区供Ubuntu使用,使用您选择的磁盘分区实用程序。 在这个例子中,我从Windows安装开始,所以我使用Windows 10磁盘管理器 。 Windows 10占用整个磁盘; 我需要为Ubuntu挖出一些空间。
右键单击Windows分区并选择“ 收缩卷” 。
为了我的目的,20GB是足够的Ubuntu,所以我收缩了这个数量的Windows卷:
操作成功,我剩下一点不到20GB的未分配空间:
第4步:创建可启动的Ubuntu媒体
接下来,从Ubuntu ISO创建可启动的USB媒体。 此过程将覆盖thumbdrive上的所有数据,因此在继续操作之前,将任何预先存在的数据移出thumbdrive。
在Linux中创建可启动USB:
使用lsblk确定您的USB磁盘的设备名称。 如果磁盘已安装,请立即卸载。
您可以使用dd实用程序编写ISO。 作为根:
dd bs=4M if=/path/to/ubuntu-14.04.4-desktop-amd64.iso of=/dev/sdx && sync
其中sdx是您的U盘的设备标识符,例如sdb。 不要指定分区,例如sdb1。
在 Windows 10中 创建可启动USB :
我建议使用免费的Windows应用程序Rufus 。 在Rufus对话框中,您可以通过单击可移动媒体图标(此处用红色箭头指示)来选择源ISO。
当您准备好创建USB时,单击开始 。
第5步:安装Ubuntu
从USB驱动器启动计算机,这将启动Ubuntu Live会话。 选择在Windows 10之外安装Ubuntu 。
安装完成后,卸下安装介质并重新启动。 您将被GRUB启动菜单打hello。 选择Ubuntu。
第6步:更新Ubuntu
登录到Ubuntu,打开一个终端,使您的系统更新。
sudo apt-get update && sudo apt-get upgrade
如果您将安装VirtualBox Guest服务来增强虚拟化体验,请安装内核模块构建要求:
sudo apt-get install dkms build-essentials linux-headers-generic
您可能还想现在安装您首选的窗口管理器:
sudo apt-get install openbox
第7步:创建Ubuntu分区的VirtualBox Raw Disk映像
启动到Windows 10.如果还没有安装VirtualBox, 现在就这样做 。
以管理员身份打开命令提示符。 使用Windows Management Instrumentation Command-line( WMIC )工具获取物理磁盘驱动器的DeviceID:
wmic diskdrive list brief /format:list
在这个例子中,我们的DeviceID是\\。\ PHYSICALDRIVE0 。
在管理员命令提示符中,将目录更改为VirtualBox安装目录,并使用VBoxManage列出该驱动器上的所有分区:
cd "\Program Files\Oracle\VirtualBox"
VBoxManage.exe internalcommands listpartitions -rawdisk \\.\PHYSICALDRIVE0
输出将类似于以下内容:
Number Type StartCHS EndCHS Size (MiB) Start (Sect)
1 0x07 0 /32 /33 1023/239/63 217962 2048
6 0x83 1023/254/63 1023/254/63 16110 446392320
5 0x82 1023/254/63 1023/254/63 3891 479385600
2 0x27 1023/239/63 1023/239/63 508 487354368
这里,分区号1是我的Windows安装,分区2是我的Windows恢复分区。 分区6是我的Ubuntu安装,分区5是Ubuntu交换分区。
我想创建一个可以访问我的Ubuntu分区(分区5和6)的原始磁盘映像。对于这个配置,VBoxManage命令是:
VBoxManage internalcommands createrawvmdk -filename “C:\path\to\ubuntu-raw.vmdk” -rawdisk \\.\PHYSICALDISK0 -partitions 5,6
其中C:\ path \到\ ubuntu-raw.vmdk是要创建的原始磁盘映像文件的位置。
第8步:创建GRUB ISO
Ubuntu需要GRUB启动,但Ubuntu虚拟机将无法访问默认的GRUB安装,因为它位于Windows分区上。
在此步骤中,我们创建了一个可引导的GRUB Recovery ISO,虚拟机将用于引导到Ubuntu。
在Ubuntu中,选择一个位置(如临时目录)并创建目录结构iso / boot / grub 。
mkdir -p iso/boot/grub
将/ usr / lib / grub / i386-pc / *的内容复制到iso / boot / grub中 :
cp /usr/lib/grub/i386-pc/* iso/boot/grub
然后将/boot/grub/grub.cfg复制到同一目录中:
cp /boot/grub/grub.cfg iso/boot/grub
使用您最喜爱的文本编辑器编辑grub.cfg的副本:
vi iso/boot/grub
在此文件中,找到并删除Windows 10的引导菜单项。它如下所示:
menuentry 'Windows 10' {
...
}
注释或删除此菜单项( menuentry和}之间的所有内容(包括))。 将更改写入grub.cfg并退出编辑器。
接下来,使用grub-mkrescue创建可引导的GRUB ISO。 这需要GNU xorriso 。 如果您还没有安装,请立即安装:
sudo apt-get install xorriso
运行grub-mkrescue,指定您的iso目录:
grub-mkrescue -o boot.iso ./iso
这将创建可引导的GRUB恢复ISO boot.iso ,它必须传输到Windows 10.将其复制到USB thumbdrive。
第9步:在Windows中创建虚拟机
引导到Windows 10.将boot.iso复制到适合长期访问的位置,例如VirtualBox VMs目录或Documents文件夹。
以管理员身份启动VirtualBox。 重要的是,VirtualBox具有管理员权限,以便它可以访问Ubuntu分区。
现在,为Ubuntu创建一个新的虚拟机。 配置硬盘驱动器时,选择使用现有的虚拟硬盘驱动器文件。 选择您在第7步中创建的VDMK文件。该原始磁盘映像使虚拟机能够访问Ubuntu分区。
创建Ubuntu VM后,选择它,然后转到设置 - >存储 。 选择控制器:IDE ,并使用光驱图标添加可移动磁盘。
选择您的boot.iso文件,然后单击确定。
现在当您启动虚拟机时,它会将GRUB Recovery ISO读取为可移动磁盘,并为您提供GRUB启动菜单,减去启动Windows 10的选项。
在此步骤之后,您的虚拟机应该准备好了。
建议和注意事项
当您想要虚拟化Ubuntu时,请确保以管理员身份运行VirtualBox,否则Ubuntu分区将无法访问。
随时暂停虚拟机并将其保持在连续虚拟化会话之间的保存状态,但请确保在将计算机直接引导到Ubuntu之前正确关闭虚拟机。
不要尝试从Ubuntu虚拟机访问您的Windows分区 - 这将产生不可预测的结果。 这样做可能会破坏数据! 使用其他方法在Ubuntu VM和Windows之间交换数据,例如可移动媒体或网络传输(如rsync)。
故障排除
如果您启动计算机并且缺少Windows的GRUB菜单条目,请以root身份登录Ubuntu,并运行os- prober扫描可引导操作系统:
os-prober
然后,更新您的GRUB配置:
update-grub
...并重启。