run*_*ine 6 virtualbox virtual-machine raw-disk
我有一个使用Windows 10和Kubuntu 18的双启动安装程序。按照从这里到那里找到的说明,我设法使用VirtualBox将Windows作为虚拟机在Kubuntu主机中作为虚拟机运行。
sudo usermod -a -G disk $USER
VBoxManage internalcommands createrawvmdk -filename "/path/to/vm/win10.vmdk" -rawdisk /dev/sda -partitions 1,3,4 -relative
Run Code Online (Sandbox Code Playgroud)
第一行是避免以超级用户身份运行VirtualBox。
引导虚拟机时,我会短暂看到一条错误消息
Boot Failed. EFI DVD/CDROM
SystemBootOrder not found. Initializing defaults.
Creating boot entry "Boot0003" with label "ubuntu" for file "\EFI\ubuntu\shimx64.efi"
Run Code Online (Sandbox Code Playgroud)
然后最终进入g壳。现在,当我运行命令时
insmod chain
set root=(hd0,gpt1)
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
boot
Run Code Online (Sandbox Code Playgroud)
Windows可以启动并正常运行,但是每次进入这些窗口都并非完全流畅。任何想法如何永久解决此问题?请注意,我仍然希望能够以物理方式引导至两个OS。
谢谢,
小智 5
我有同样的问题。我修复了它,但是随后更新了我的内核,因此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
Run Code Online (Sandbox Code Playgroud)
因为我们已经设置了VirtualBox vmdk文件,并且只有用于Windows的选定分区才能工作,所以search.fs_uuid命令失败,$ root为空,因此grub无法找到$ prefix / grub.cfg(/ boot / grub / grub我的Linux rootfs中的.cfg位于sda6 == gpt6上)
我通过更改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
Run Code Online (Sandbox Code Playgroud)
现在,如果grub可以找到cfg文件,它将像以前一样为我提供选择启动的菜单,但是如果找不到-当我在VirtualBox中时-它将直接启动进入Win10。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1291 次 |
| 最近记录: |