问题复现:我在 Ubuntu 开 Windows 虚拟机,虚拟 Windows 花屏直接整个电脑宕机,外设都没反应。强制重启 Linux 后从 vbox 还是进不去 Windows。现在打算把东西拿出来迁移走,重开一个 Win 虚拟机。
分析结论:apt 源中没有及时提供最新的版本更新,我的版本和最新版差了一个版本,已经没有长期支持
最新版的 .deb / .rpm 包在官网有
你要是能通过 ventoy 进已经坏掉的虚拟机系统的快照更好。要是不能,我这还有一招:挂载 vdi。
不过最好的就是平时维护一份虚拟机内容清单,以备不时的替换系统之需。
开始前确认状况
- 检查 vbox 本体
- 注意 vbox 配置
- 卡住了进不去:可能是虚拟硬件资源给多给少了
- 进去了花屏:可能是显示设置的问题
- 进入了BIOS:可能是启动顺序或控制器介质类型不对
- 行为异常(列如以安全模式启动):可能是虚拟机所在系统的内部设置
- 弹出提示的处理
- 可能是扩展包版本没打对又使用了扩展功能
- 对于卸载的硬盘报错,可以重启挂载解决
- vb 说你 USB 控制器开了结果没插,弹出警告还不能关:
杀掉多余的进程,Ctrl+Shift+Esc 重置 explorer 之后,U盘就可以在内部重新直插
- 以上都不是的时候,确实是需要在外部给 vdi 开了。在此之前尝试选择系统提供的自动修复选项。要是能用,你就不用走下面这几步了。或者你的虚拟系统也用很久了不如为重装做准备。
- 切记备份
开搞
mount 没能力让 vdi 不能直挂,只能先 vboximg-mount 到家
~
里
- 查看 vdi 的 UUID
vboximg-mount --list
UUID 在这写着呢
2. 去掉 /etc/fuse.conf
中的 user_allow_other 前的 # 号
sudo <nvim|gedit> /etc/fuse.conf
# 讨厌终端编辑器就用 gedit
得到这个说明修改无效,文件没有保存成功
你可能是忘记了
:w
- 准备一个地方,挂就完了
mkdir <dir_for_vdi> && \
vboximg-mount -i <your_image_UUID> -o allow_root <dir_for_vdi>
看一下里面,挂完是这样的
- nautilus 导航栏多了我们挂 vdi 时用的目录
- 文件夹右下角多了一个略丑的图标
这说明你挂上了
- 查看分区
ll ~/<dir_for_vdi>/
# 直接列出就好,其它命令可能看不到 vdi 挂的分区
5. 查看文件系统
看来它已经成为可访问的杂鱼形状~
6. 这下直接 mount
sudo mount <dir_for_vdi>/<your_partition> /mnt
7. 善后
sudo unmount ~/<dir_for_vdi> && sudo rm -rf ~/<dir_for_vdi>