使用物理硬盘驱动器Pariition作为VirtualBox VM和可引导分区
是否可以使用物理硬盘驱动器分区安装带有VirtualBox的Ubuntu OS,然后使其可启动?
我想要的是我在VirtualBox中安装的Ubuntu操作系统可以从物理机和VirtualBox VM访问和启动(当然不是同时启动)。 因此,有时我可以将其作为虚拟机启动,有时我可以将其作为真机启动(作为双启动,与我的主操作系统Linux Mint一起)。
在阅读了一些关于此的文章后,这里是链接:
- 从虚拟机(VM)迁移到物理系统
- 使用来宾的原始主机硬盘
- 将物理硬盘驱动器与VirtualBox VM一起使用
- VirtualBox:使用物理分区作为虚拟驱动器
我想我可以做到,但我不确定我的问题的结果。 据说,如果在这个过程中出现问题,将导致严重的数据损坏。
这是否意味着我的硬盘驱动器(不仅仅是一个分区)中的整个数据都将被破坏?
编辑
我忘了提到,我安装的虚拟Ubuntu操作系统被分区为三个分区。 我将使用的物理分区驱动器是一个逻辑分区。 这个问题让我对结果不确定。
我找到了解决自己问题的方法。 这不是那么简单。 对于我来说,作为一个没有经验的Ubuntu用户,它令人困惑。 最终,我决定不这样做。 但是,也许有人有另一种方式比我更好地做到这一点。
安装新的Ubuntu操作系统
在主操作系统旁边安装Ubuntu OS。 在我的情况下,这是Linux薄荷。 但是,我发现mint和Ubuntu之间的过程没有区别,因为mint基于Ubuntu。
为Virtual Box创建中等文件以读取新操作系统
安装完成后。 您需要为VirtualBox创建一个介质来读取包含全新安装的Ubuntu OS的分区。 你这样做是这样的:
VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sdX -partitions Y,Y
X
是你的硬盘, Y
是你的分区号码。 不要包含包含主OS引导的分区。 因为我们需要不同的引导介质用于不包含主OS引导的新操作系统。 您可能需要以root身份运行。
为Virtual Box创建介质以从新操作系统启动
为了创建引导介质,我们将从新的OS引导文件创建ISO映像。 首先,我们必须在主操作系统中执行此操作。 重新启动计算机并从主操作系统启动。 就我而言,我重新启动Linux Mint。
我们需要创建一个临时文件夹来创建iso启动文件。 所以,一旦Mint准备好完成这项工作。 创建一个文件夹。 我假设我们在桌面上这样做。 我们会这样做:
-
转到桌面。
-
创建新文件夹并将其命名为“iso”。
-
打开该iso文件夹并再次创建一个名为“boot”的新文件夹。
-
打开该引导文件夹并再次创建一个名为“grub”的新文件夹。
如果我们通过终端进行此操作,我们只需输入此行并按Enter键即可
mkdir -p ~/Desktop/iso/boot/grub
如果我们知道我们正在做什么,终端是一个很好的工具! ;)
-
创建文件夹后,我们需要将新的Ubuntu OS引导文件复制到该文件夹。 因此,打开我们安装Ubuntu OS的分区,然后将所有文件从
/usr/lib/grub/i386-pc/
复制到~/Desktop/iso/boot/grub
。 并将/boot/grub/grub.cfg
所有文件复制到~/Desktopiso/boot/grub
。同样,如果这个步骤是通过终端完成的,我们应该这样做:
cp /usr/lib/grub/i386-pc/* ~/Desktop/iso/boot/grub cp /boot/grub/grub.cfg ~/Desktop/iso/boot/grub
-
使用文本编辑器在
~/Desktop/iso/boot/grub/grub.cfg
打开grub.cfg。 警告不要犯任何错误,你在这里编辑的那个不是/boot/grub/grub.cfg
那个。 如果你编辑我提到的最后一个,你的主操作系统启动将失败。 -
一旦grup.cfg打开。 删除与我们安装的新Ubuntu OS无关的
menuentry
。 它通常看起来像这样:### Begin /etc/grub.d/your_main_os ### menuentry 'The text displayed in boot menu' { ---- some code we don't need understand for this ---- } ### End /etc/grub.d/your_main_os ###
删除与我们安装的新Ubuntu OS无关的每个菜单项。 我们不需要它们存在于VirtualBox中吗?
-
接下来,使用以下内容将包含所有文件的文件夹转换为iso:
grub-mkrescue -o boot.iso ~/Desktop/iso
注意:如果在执行此操作时出错,则需要先安装
xorriso
。 有了这个:sudo apt-get install xorriso
-
创建用于引导的Iso文件。 如果我们将iso文件放在与我们创建的媒体文件相同的文件夹中,那将会很好。
将虚拟机设置为能够引导已安装的Exact Ubuntu OS
我们已经创建了用于读取新安装的OS的介质,并且我们已经为VirtualBox独立创建了它的引导加载程序。 最后一件事是配置,Virtual Box应该如何做到这一点。
-
转到我们放置
medium.vmdk
。 在那里打开终端并执行此操作:chmod -v 666 medium.vmdk
-
作为root更改
medium.vmdk
和boot.iso
文件权限。 我们必须成为这些文件的所有者。 -
打开VirtualBox。 创建一台新机器。 当“硬盘驱动器”选项提供选项时,请选择
use an existing virtual hard drive
并使用medium.vmdk
-
完成它,但不要运行它。 选择新机器后,打开设置。
-
在“存储”部分中,如果没有CD存储,则创建新存储。 然后创建我们在该CD存储中创建的mount
boot.iso
。 -
在关闭“设置”之前,请转到“系统”部分以确保。 包含
boot.iso
的CD存储在硬盘之前首先被读取。 这样,Virtual Box将从CD启动以读取新安装的操作系统。 -
完。 我们可以从虚拟机和真机运行新的安装操作系统。
重要笔记
即使我们可以从两个方向启动它。 我找到了一些问题。
-
每当我们从真机启动,然后尝试从虚拟机启动它就会出错。 因为在没有
medium.vmdk
知道的情况下更改了物理驱动器状态。 因此,我们必须创建一个新介质并再次更改它的权限,以便能够从虚拟机启动。 但是,我们不需要创建新的boot.iso
。 -
因为两台机器的MAC地址不同。 尝试配置网络设置时,操作系统会混淆。 在我的例子中,我安装了Ubuntu Server作为新的操作系统,每当我从不同的机器启动时,它会给出一条消息,如“等待网络配置…”大约2分钟,然后启动。
而已。 我自己的问题的解决方案。