Apple M1芯片Mac的Fusion Player中Ubuntu 22.10 VM启动故障与内核固定问题
问题解答
Q1:旧虚拟机固定内核版本为5.19.0-28-generic
可以通过以下步骤固定内核,避免系统自动切换到最新版本:
确认目标内核已安装
执行命令验证内核包状态:dpkg --list | grep linux-image-5.19.0-28-generic若输出包含该内核信息则无需安装;若未安装,执行以下命令安装:
sudo apt install linux-image-5.19.0-28-generic linux-headers-5.19.0-28-generic设置GRUB默认启动项
- 编辑GRUB配置文件:
sudo nano /etc/default/grub - 修改
GRUB_DEFAULT参数:根据你的GRUB菜单结构,目标内核是第3个选项(索引从0开始为2),也可直接指定菜单项名称:# 方式1:使用索引 GRUB_DEFAULT=2 # 方式2:使用菜单项名称 GRUB_DEFAULT="Ubuntu, with Linux 5.19.0-28-generic" - 更新GRUB使配置生效:
sudo update-grub
- 编辑GRUB配置文件:
锁定内核包防止升级
执行命令锁定相关内核包,避免系统自动更新移除旧内核:sudo apt-mark hold linux-image-5.19.0-28-generic linux-headers-5.19.0-28-generic linux-image-generic linux-headers-generic
Q2:新虚拟机添加并固定5.19.0-28-generic内核
新虚拟机无法启动,需通过安装器shell操作已安装的系统来添加旧内核,步骤如下:
进入安装器shell
使用ubuntu-22.10-live-server-arm64.iso启动虚拟机,在安装界面选择Help->Enter shell。挂载目标系统分区
- 查看磁盘分区信息,定位根分区(通常为
/dev/sda2)和EFI分区(通常为/dev/sda1):fdisk -l - 挂载根分区到
/target:mount /dev/sda2 /target - 挂载EFI分区(UEFI启动环境需要):
mount /dev/sda1 /target/boot/efi - 绑定系统必要目录:
mount --bind /dev /target/dev mount --bind /proc /target/proc mount --bind /sys /target/sys
- 查看磁盘分区信息,定位根分区(通常为
chroot到目标系统
切换到已安装的系统环境:chroot /target安装旧内核
- 更新软件源:
apt update - 安装目标内核及头文件:
apt install linux-image-5.19.0-28-generic linux-headers-5.19.0-28-generic
- 更新软件源:
设置GRUB默认启动项并锁定内核
重复Q1中的步骤2和3:编辑/etc/default/grub设置默认启动项,执行update-grub,然后锁定内核包。退出并重启
- 退出chroot环境:
exit - 卸载挂载的目录:
umount /target/boot/efi umount /target/dev umount /target/proc umount /target/sys umount /target - 重启虚拟机,此时GRUB菜单会出现5.19.0-28-generic的选项,选择即可正常启动。
- 退出chroot环境:
内容的提问来源于stack exchange,提问作者fckbo
相关产品推荐
相关产品推荐

