You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 22.04(Ventoy引导VDI镜像)中GRUB安装问题求助

Ubuntu Server 22.04(Ventoy引导VDI镜像)中GRUB安装问题求助

解决方案思路

这种场景下GRUB没法识别Ventoy映射的分区,核心是GRUB对/dev/mapper类设备的分区识别逻辑和普通物理盘不一样,试试下面这些步骤:

1. 直接指定VDI的EFI分区安装GRUB

既然/dev/mapper/ventoy1是VDI里的EFI分区,别盯着整个/dev/mapper/ventoy设备,直接给这个分区装GRUB:

# 先确认/boot/efi挂载的是ventoy1,没挂载的话先执行这条
sudo mount /dev/mapper/ventoy1 /boot/efi

# 执行GRUB安装
sudo grub-install --efi-directory=/boot/efi /dev/mapper/ventoy1

2. 修正GRUB设备映射文件

GRUB的device.map不需要手动加分区条目,只保留磁盘级映射就行,让GRUB自己探测分区:

  1. 编辑/boot/grub/device.map,只留这一行:
(hd0)   /dev/mapper/ventoy
  1. 重新生成GRUB配置:
sudo grub-mkconfig -o /boot/grub/grub.cfg
  1. 再尝试安装GRUB到EFI分区:
sudo grub-install /dev/mapper/ventoy1

3. 绕过Ventoy映射,直接挂载VDI文件操作

如果上面的方法不行,可以直接给VDI文件创建loop设备,绕开Ventoy的映射层:

  1. 找到你的VDI文件路径(比如/mnt/ventoy/ubuntu.vdi)
  2. 创建带分区的loop设备:
sudo losetup -fP /mnt/ventoy/ubuntu.vdi
  1. 查看生成的loop设备(比如/dev/loop0),挂载它的EFI分区(假设是/dev/loop0p1):
sudo mount /dev/loop0p1 /boot/efi
  1. 给这个loop设备安装GRUB:
sudo grub-install --efi-directory=/boot/efi /dev/loop0
  1. 完成后清理loop设备:
sudo umount /boot/efi
sudo losetup -d /dev/loop0

4. 应急方案:临时锁定GRUB避免升级触发重装

如果暂时没解决,先阻止apt自动重装GRUB:

# 锁定GRUB相关包
sudo apt-mark hold grub-efi-amd64 grub-efi-amd64-bin

# 编辑GRUB配置,禁用自动探测
sudo nano /etc/default/grub
# 添加一行:GRUB_DISABLE_OS_PROBER=true
# 保存后更新配置
sudo update-grub

等找到彻底解决方案后,再用sudo apt-mark unhold grub-efi-amd64 grub-efi-amd64-bin解锁。


备注:内容来源于stack exchange,提问作者Ansel Pol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:53:02