我正在努力让 VirtualBox 使用外部 USB 磁盘而不是虚拟硬盘来启动虚拟机。
当我尝试启动虚拟机时,它没有启动,并且我看到错误:
Failed to open a session for the virtual machine Test2.
The virtual machine 'Test2' has terminated unexpectedly during startup with exit code 1 (0x1).
Result Code: NS_ERROR_FAILURE (0x80004005)
Component: MachineWrap
Interface: IMachine {85632c68-b5bb-4316-a900-5eb28d3413df}
VM 日志是空的。
如果我从 BIOS 选择 USB 磁盘作为启动设备,则它已经可以正确启动。(它有 2 个分区、一个 MBR 引导加载程序、每个分区中都有有效的 grub2 配置和一个操作系统。)
要设置 VM 环境,我:
- 使用“Ubuntu 软件” GUI 在 Ubuntu 20.04 桌面上安装了 VirtualBox
- 配置我的用户帐户组:
sudo usermod -a -G disk $USER
和sudo usermod -a -G vboxusers $USER
- 使用以下命令创建指向目标物理驱动器的虚拟硬盘文件:
VBoxManage internalcommands createrawvmdk -filename /home/james/VirtualBox-targets/OS-on-dev-sdb.vmdk -rawdisk /dev/sdb
chmod a+rw
在目标驱动器及其分区上/dev/sdb*
- 打开 VirtualBox > 文件 > 虚拟媒体管理器。检查虚拟硬盘是否可见。将其类型更改为“Writethrough”。
- 创建一个新的虚拟机,打开其存储部分,并将虚拟硬盘添加
OS-on-dev-sdb.vmdk
为控制器:IDE 下的新硬盘
我尝试使用 Virtual Box > [VM] > Normal Start 启动新 VM。每次都会出现错误。
到目前为止,我已经尝试过:
- 重启几次
- 卸载 VirtualBox,删除 VMDK 文件,删除 VM 文件夹,下载并重新安装 Oracle 的 .deb,重新配置与上述相同的原始磁盘和 VM。看到相同的错误消息。
- 将虚拟机存储配置为 IDE,然后配置为 SATA(我很确定物理 USB 驱动器是 IDE)
-rawdisk /dev/sdb
使用和使用创建原始磁盘-rawdisk /dev/disk/by-id/wwn-...
- 如果从 BIOS 启动设备中选择 USB 磁盘,检查该磁盘是否仍可正常启动。
更新:@FedKad 的指点很有帮助。扩展包意味着 VM 更进了一步。
VM 现在加载 grub 引导加载程序,并显示引导加载程序的菜单选项。可以选择一个选项。
然而,每个选项都会引发类似的错误:
Waiting 10 seconds for device /dev/disk/by-uuid/e95e5… <etc>
ERROR: device 'UUID=e95e5… not found. Skipping fsck
…
You are now being dropped into an emergency shell
看起来 Linux 内核没有与其分区正确连接。
尝试了一些 VM 虚拟 HDD 和 USB 设备设置的排列组合。
启动虚拟机后,如果未选择 USB 设备,则查看虚拟机中的 grub 菜单。选择操作系统后,看到相同的错误:
ERROR: device 'UUID=e95e5… not found. Skipping fsck
启动虚拟机后,当出现 grub 菜单时选择 USB 设备,看到新的错误:
Error: no such device: e95e5…
在虚拟机启动之前为外部驱动器设置 USB 设备过滤器,然后重新启动虚拟机:
FATAL: Could not read from the boot medium! System halted.
尝试使用 UUID VM。使用 USB 过滤器设置:
FATAL: Could not read from the boot medium! System halted.
尝试重启并重复多次。发现问题相同。