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


11

是否可以使用物理硬盘分区将Ubuntu OS与VirtualBox一起安装,然后使其可启动?

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

阅读有关此的一些文章之后,这里是链接:

  1. 从虚拟机(VM)迁移到物理系统
  2. 使用来宾的原始主机硬盘
  3. 在VirtualBox VM中使用物理硬盘驱动器
  4. VirtualBox:使用物理分区作为虚拟驱动器

我想我可以做到,但是我不确定问题的结果。据说,如果在此过程中出现问题,将导致严重的数据损坏。

这是否意味着我的硬盘驱动器中的整个数据(而不仅仅是一个分区)将被破坏?

编辑

我忘了提到,我安装的Virtual Ubuntu OS分为三个分区。我将使用的物理分区驱动器是一个逻辑分区。这是使我不确定结果的问题。

Answers:


9

我为自己的问题找到了解决方案。这不是那么简单。对于没有经验的Ubuntu用户来说,这令人困惑。最终,我决定不这样做。但是,也许有人比我做得更好。

安装新的Ubuntu OS

在主操作系统旁边安装Ubuntu OS。就我而言,这是Linux Mint。但是,我认为mint和Ubuntu之间的过程没有区别,因为mint基于Ubuntu。

创建虚拟文件的中型文件以读取新的操作系统

完成安装后。您需要为VirtualBox创建一种介质,以读取包含全新安装的Ubuntu OS的分区。您的操作方式如下:

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sdX -partitions Y,Y

X您的硬盘驱动器在哪里,Y您的分区号在哪里。不要包括包含主操作系统启动的分区。因为我们需要不包含主操作系统启动的新操作系统的启动介质。您可能需要以root身份运行。

为Virtual Box创建介质以从新OS引导

为了创建启动媒体,我们将从新的操作系统启动文件中创建一个ISO映像。首先,我们必须在主操作系统中执行此操作。重新启动计算机并从主操作系统启动。就我而言,我重新启动到Linux Mint。

我们需要创建一个临时文件夹来创建iso引导文件。因此,一旦Mint准备好完成这项工作。创建一个文件夹。我假设我们在桌面上执行此操作。我们将这样做:

  • 转到桌面。

  • 创建新文件夹,并将其命名为“ iso”。

  • 打开该iso文件夹,然后创建一个新文件夹,再次名为“ boot”。

  • 打开该启动文件夹,并再次创建一个新文件夹“ grub”。

    如果我们通过终端执行此操作,则只需输入此行并按回车即可。

    mkdir -p ~/Desktop/iso/boot/grub
    

    如果我们知道自己在做什么,那么Terminal是一个很棒的工具!;)

  • 创建文件夹后,我们需要将新的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打开。删除menuentry与我们已安装的新Ubuntu OS不相关的内容。通常如下所示:

    ### 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文件与创建的中文件放在同一文件夹中,那将是很好的选择。

将虚拟机设置为能够引导已安装的确切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。然后进行boot.iso在该CD存储中创建的安装。

  • 关闭设置之前,请进入“系统”部分进行确认。boot.iso首先读取包含的CD存储,然后再读取硬盘。这样,Virtual Box将从CD引导以读取新安装的OS。

  • 完。我们可以从虚拟机和真实计算机上运行新的已安装OS。

重要笔记

即使我们可以从两种方式引导它。我发现了一些问题。

  1. 每当我们从真实计算机启动,然后尝试从虚拟机启动时,都会出错。因为物理驱动器状态在不medium.vmdk知道的情况下发生了变化。因此,我们必须创建一个新的介质并再次更改其权限才能从虚拟机启动。但是,我们不需要创建new boot.iso

  2. 因为两台计算机的MAC地址不同。尝试配置网络设置时,操作系统会感到困惑。就我而言,我将Ubuntu Server安装为新的操作系统,每次从不同的计算机启动时,它都会显示约2分钟的消息,例如“正在等待网络配置...”,然后启动。

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


1
这就是我今天想要做的。但是反过来,从物理分区启动Windows OS。就像我也可以走另一条路一样。
nelaaro

@nelaaro我正在尝试做同样的事情。我有一个安装了Windows10的硬盘,已将其连接到Ubuntu 14.04计算机。Ubuntu是我的主机,因此我要运行Windows10的Virtualbox VM。我创建了rawvmdk文件,但无法启动。按照这个答案,我应该创建一个ISO文件,但是通过上述命令创建的iso使我无法正常启动。你能帮忙吗?
尼(Phani)

1
@nelaaro我为此创建了一个单独的问题:askubuntu.com/questions/944509 / ...请帮助我。
尼(Phani)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.