使用物理硬盘驱动器Pariition作为VirtualBox VM和可引导分区

是否可以使用物理硬盘驱动器分区安装带有VirtualBox的Ubuntu OS,然后使其可启动?

我想要的是我在VirtualBox中安装的Ubuntu操作系统可以从物理机和VirtualBox VM访问和启动(当然不是同时启动)。 因此,有时我可以将其作为虚拟机启动,有时我可以将其作为真机启动(作为双启动,与我的主操作系统Linux Mint一起)。

在阅读了一些关于此的文章后,这里是链接:

  1. 从虚拟机(VM)迁移到物理系统
  2. 使用来宾的原始主机硬盘
  3. 将物理硬盘驱动器与VirtualBox VM一起使用
  4. 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.vmdkboot.iso文件权限。 我们必须成为这些文件的所有者。

  • 打开VirtualBox。 创建一台新机器。 当“硬盘驱动器”选项提供选项时,请选择use an existing virtual hard drive并使用medium.vmdk

  • 完成它,但不要运行它。 选择新机器后,打开设置。

  • 在“存储”部分中,如果没有CD存储,则创建新存储。 然后创建我们在该CD存储中创建的mount boot.iso

  • 在关闭“设置”之前,请转到“系统”部分以确保。 包含boot.iso的CD存储在硬盘之前首先被读取。 这样,Virtual Box将从CD启动以读取新安装的操作系统。

  • 完。 我们可以从虚拟机和真机运行新的安装操作系统。

重要笔记

即使我们可以从两个方向启动它。 我找到了一些问题。

  1. 每当我们从真机启动,然后尝试从虚拟机启动它就会出错。 因为在没有medium.vmdk知道的情况下更改了物理驱动器状态。 因此,我们必须创建一个新介质并再次更改它的权限,以便能够从虚拟机启动。 但是,我们不需要创建新的boot.iso

  2. 因为两台机器的MAC地址不同。 尝试配置网络设置时,操作系统会混淆。 在我的例子中,我安装了Ubuntu Server作为新的操作系统,每当我从不同的机器启动时,它会给出一条消息,如“等待网络配置…”大约2分钟,然后启动。

而已。 我自己的问题的解决方案。