【问题标题】:Booting raw-disk windows 10 vm in virtualbox boots to grub shell在 virtualbox 中引导原始磁盘 Windows 10 vm 引导到 grub shell
【发布时间】:2018-12-08 15:13:12
【问题描述】:

我有一个 Windows 10 和 Kubuntu 18 的双启动设置。按照从这里和那里找到的说明,我设法让 Windows 在 Kubuntu 主机中作为使用 VirtualBox 的 VM 作为来宾运行。

sudo usermod -a -G disk $USER
VBoxManage internalcommands createrawvmdk -filename "/path/to/vm/win10.vmdk" -rawdisk /dev/sda -partitions 1,3,4 -relative

第一行是避免以超级用户身份运行 VirtualBox。
当我启动 VM 时,我会短暂看到一条错误消息

Boot Failed. EFI DVD/CDROM
SystemBootOrder not found. Initializing defaults.
Creating boot entry "Boot0003" with label "ubuntu" for file "\EFI\ubuntu\shimx64.efi"

然后在 grub shell 中结束。现在,当我运行命令时

insmod chain
set root=(hd0,gpt1)
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
boot

Windows 启动并运行良好,但每次输入这些都不是完全顺畅的工作流程。知道如何永久解决此问题吗? 请注意,我仍然希望能够以物理方式启动到这两个操作系统。

谢谢,

【问题讨论】:

  • 遇到了完全相同的问题,您最终是否在其他地方找到了解决方案?
  • 很遗憾,还没有。

标签: virtual-machine virtualbox raw-disk


【解决方案1】:

我遇到了同样的问题。我修复了它,但后来更新了我的内核,所以 grub 为我重新修复了它!第二次找出答案会更快,但我认为下次在 StackOverflow 上找到我的答案会更快!

我在 /boot/efi/EFI/ubuntu 中的 grub.cfg 文件如下所示:

search.fs_uuid 47d6233f-c0ae-4f89-bf18-184452eac803 root hd0,gpt6
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

因为我们已经设置了 VirtualBox vmdk 文件,只有选定的分区才能让 Windows 工作,所以 search.fs_uuid 命令失败,$root 为空,因此 grub 找不到 $prefix/grub.cfg (/boot/我在 sda6==gpt6)

上的 linux rootfs 中的 grub/grub.cfg

我通过更改 EFI grub.cfg 将其自动化,请注意我的 EFI 系统分区是 2 而不是 1,如您的示例所示:

search.fs_uuid 47d6233f-c0ae-4f89-bf18-184452eac803 root hd0,gpt6 
set prefix=($root)'/boot/grub'
if [ -f $prefix/grub.cfg ]
then
    configfile $prefix/grub.cfg
else
    insmod chain
    set root=(hd0,gpt2)
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    boot
fi

现在,如果 grub 可以找到 cfg 文件,它将像以前一样为我提供选择启动的菜单,但如果它不能 - 当我在 VirtualBox 中时 - 它会直接启动到 Win10。

希望这会有所帮助!

【讨论】:

  • 我更改了文件 /boot/efi/EFI/ubuntu/grub.cfg,然后重新启动。然后,当我启动我的 Windows virtualbox 实例时,我仍然不得不手动使用这些控件。我必须更新 grub 吗?
  • 我不这么认为 - 听起来你的某些参数可能有误。
  • @PhilippePrados 我也为此苦苦挣扎。事实证明,编辑grub.cfg 后,您确实需要运行sudo update-grub 才能将更改复制到引导分区。问题解决了。
猜你喜欢
  • 2015-01-05
  • 2015-01-19
  • 1970-01-01
  • 2020-05-26
  • 2015-05-31
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
相关资源
最近更新 更多