vm-bhyve虚拟机安装ubuntu22版本后进入grub无法启动

问题:安装ubuntu22版本后无法启动

安装好ubuntu22之后,重启进入了grub模式,没有自动启动ubuntu

网上查了一下,这算一个通病。

问题解决

在grub模式下输入boot命令:

boot (lvm/ubuntu--vg-ubuntu--lv)/boot
error: you need to load the kernel first.
问题变成先load内核。

查找启动内核的位置

使用ls列出所有的磁盘,然后在所有的磁盘里面找类似mlinuz-5.15.0-107-generic initrd.img  initrd.img-5.15.0-107-generic 这两个文件。

ls (host)/boot
lua/ zfs/ loader.help.userboot boot2 fonts/ loader.help.efi uboot/ isoboot userboot.so de
lay.4th mbr version.4th userboot_lua.so boot0sio loader_4th userboot_4th.so brand.4th men
usets.4th logo-beastie.4th boot1 menu.4th device.hints color.4th defaults/ loader.4th loa
der_4th.efi pxeboot frames.4th loader_simp entropy screen.4th dtb/ brand-fbsd.4th efi/ mo
dules/ menu-commands.4th loader.rc logo-beastiebw.4th cdboot logo-orb.4th loader firmware
/ loader.conf gptzfsboot pmbr images/ boot kernel/ gptboot.efi zfsloader zfsboot boot1.ef
i beastie.4th support.4th logo-orbbw.4th shortcuts.4th loader.help.bios menu.rc loader_si
mp.efi loader.efi logo-fbsdbw.4th loader_lua.efi boot0 efi.4th check-password.4th loader_
lua gptboot loader.conf.d/

这个目录(host)/boot里面没有

在(hd0,gpt2)/找到内核和启动文件

ls (hd0,gpt2)/
lost+found/ grub/ config-5.15.0-107-generic initrd.img.old vmlinuz.old System.map-5.15.0-
107-generic vmlinuz-5.15.0-107-generic initrd.img vmlinuz initrd.img-5.15.0-107-generic
 

设置根文件系统


一旦找到了内核文件,就需要设置正确的根文件系统。这通常是包含 / 目录的分区或逻辑卷。

例如,如果根文件系统在 LVM 逻辑卷上,可以这样设置:

grub> set root=(lvm/ubuntu--vg-ubuntu--lv)


 

加载内核和 initramfs


使用 linux 命令加载内核,并用 initrd 或 initramfs 命令加载 initramfs。

grub> linux /boot/vmlinuz-X.X.X-YY-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv 
grub> initrd /boot/initrd.img-X.X.X-YY-generic

最后再输入boot就行了。

因此之后每次启动进入grub之后
 

最终执行的命令

set root=(lvm/ubuntu--vg-ubuntu--lv)
linux (hd0,gpt2)/vmlinuz-5.15.0-107-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv
initrd (hd0,gpt2)/initrd.img-5.15.0-107-generic
boot

终于启动成功了!

如何设为自动启动呢? 

设置grub自动启动

修改配置文件,可以用 vm config vmubuntu命令 ,也可以直接vi编辑配置文件:

vi vmubuntu.conf 

在文件中加入以下语句

grub_run_partition="0"
grub_run0="set root=(lvm/ubuntu--vg-ubuntu--lv)"
grub_run1="linux (hd0,gpt2)/vmlinuz-5.15.0-107-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv"
grub_run2="initrd (hd0,gpt2)/initrd.img-5.15.0-107-generic"
grub_run3="boot"

这样就能自动启动,不用每次都在grub下输入命令了。

ps,光盘启动后挂载硬盘,使用如下命令

mount /dev/vda2 /mnt

mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt

相关推荐

  1. vm-bhyve虚拟安装ubuntu22版本进入grub无法启动

    2024-06-07 18:34:01       9 阅读
  2. ubuntu 安装 kvm 启动虚拟

    2024-06-07 18:34:01       13 阅读
  3. 笔记:ubuntu22.04重启无法启动网络

    2024-06-07 18:34:01       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 18:34:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 18:34:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 18:34:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 18:34:01       20 阅读

热门阅读

  1. python姿态识别+Tensflow1.12+pyqt5+UI

    2024-06-07 18:34:01       8 阅读
  2. Chrome Plugin静态页面触发CSP如何解决CSP

    2024-06-07 18:34:01       10 阅读
  3. CSS样式优先级

    2024-06-07 18:34:01       9 阅读
  4. JVM由那些部分组成,运行流程是什么?

    2024-06-07 18:34:01       10 阅读
  5. 10分钟Apache Kylin快速入门

    2024-06-07 18:34:01       10 阅读
  6. AIGC笔记--Stable Diffusion源码剖析之UNetModel

    2024-06-07 18:34:01       8 阅读
  7. Docker面试整理-Docker的核心组件是什么?

    2024-06-07 18:34:01       13 阅读