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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有哪些兼职软件一天能赚几十元?盘点十个能长期做下去的挣钱软件

在当今这个信息泛滥的时代,众人纷纷寻求迅速致富的捷径。许多人在从事兼职或副业时,并不期望取得巨大的成就,只要每天能额外收入数十元,便已心满意足。 今天,我将带领大家深入探究,揭开那些隐藏在日常生活…

【小海实习日记】Git使用规范

1.Git使用流程 1.1 从master分支拉一个分支,命名要符合规范且清晰。 1.2 commit到本地,push 到远端。 1.3 在Gitlab创建MR,选择develp分支。 1.4 如果要修改的话,先把Gitlab上的MR修改为Draft(修改态),然后在本地修改代…

Dubbo中的Invoker与Exporter机制详解

Dubbo作为一款成熟的高性能、轻量级的Java RPC框架,其核心机制之一便是Invoker与Exporter机制,它们在服务提供端和服务消费端扮演着至关重要的角色,是实现服务调用和管理的基础。下面将详细解析这两个核心组件的工作原理及其在Dubbo框架中的作…

9.1.1 简述目标检测领域中的单阶段模型和两阶段模型的性能差异及其原因

9.1目标检测 场景描述 目标检测(Object Detection)任务是计算机视觉中极为重要的基础问题,也是解决实例分割(Instance Segmentation)、场景理解(Scene Understanding)、目标跟踪(Ob…

详解 Spark SQL 代码开发之用户自定义函数

一、UDF 一进一出函数 /**语法:SparkSession.udf.register(func_name: String, op: T > K) */ object TestSparkSqlUdf {def main(args: Array[String]): Unit {// 创建 sparksql 环境对象val conf new SparkConf().setMaster("local[*]").setAppNam…

subline text3安装numpy,scipy,matplotlib,pandas,sklearn,ipynb

1,numpy(基础数值算法) 安装,要是在cmd直接安装到最后会报错, import numpy as np ModuleNotFoundError: No module named numpy 直接进入python环境,输入python -m pip install numpy就不会报错…

【SringBoot项目中MyBatis-Plus多数据源应用实践】

文章目录 前言 一、Mybatis-Plus是什么? 二、多数据源是什么? 三、使用步骤 1. 新建一个SpringBoot项目 2. 引入必要的MyBatis架包 3. 新建两个数据库及两张表 3.3.1 新建数据库:DB_A,并创建一张数据表alarm_kind,以及…

云端数据提取:安全、高效地利用无限资源

在当今的大数据时代,企业和组织越来越依赖于云平台存储和处理海量数据。然而,随着数据的指数级增长,数据的安全性和高效的数据处理成为了企业最为关心的议题之一。本文将探讨云端数据安全的重要性,并提出一套既高效又安全的数据提…

浅测 长亭雷池 WAF “动态防护”

本文首发于 Anyeの小站 前言 雷池 WAF 社区版的更新速度是真快啊,几乎一周一个小版本,俩月一个大版本,攻城狮们真的狠啊,没法测了。 废话不多说,前两天看到了 这篇文章,对雷池的“动态防护”功能挺感兴趣…

Android应用的基本构造及威胁(apk)

目录 APK文件是什么 apk文件解压后的目录结构 apk文件的存储位置

去掉el-table表头右侧类名是gutter,width=17px的空白区域(包括表头样式及表格奇偶行样式和表格自动滚动)

代码如下&#xff1a; <el-table:data"tableData"ref"scroll_Table":header-cell-style"getRowClass":cell-style"styleBack"height"350px"style"width: 100%"><el-table-column prop"id" l…

Scrum团队在迭代中如何处理计划外的工作

认为 Scrum 团队不做计划其实是一个误区&#xff0c;实际上很多 Scrum 团队在冲刺计划会议以及在细化工作项时均会进行详细规划。此外&#xff0c;他们还会创建一个路线图&#xff0c;以便显示他们在多个冲刺中的计划。 Scrum 团队需要经常进行计划&#xff0c;以便在不断变化…

linux学习:进程

目录 例子1 获取当前进程的进程标识符 例子2 创建一个新的子进程 例子3 展示了父进程和子进程的进程标识符 例子4 区分父进程和子进程 例子5 区分父进程和子进程的行为 例子6 比较进程标识符来区分父进程和子进程 例子7 子进程如何修改一个变量&…

混合动力电动汽车介绍(二)

接续前一章内容&#xff0c;本篇文章介绍混合动力汽车串联、并联和混联的系统组成和工作原理。 一、串联混合动力电动汽车的系统组成和工作原理 上图为串联混合动力电动汽车的结构简图。汽车由电动机-发电机驱动行驶&#xff0c;电机控制器的动力来自油箱-发动机-发电机-发电机…

Python 爬虫零基础:探索网络数据的神秘世界

Python 爬虫零基础&#xff1a;探索网络数据的神秘世界 在数字化时代&#xff0c;网络数据如同无尽的宝藏&#xff0c;等待着我们去发掘。Python爬虫&#xff0c;作为获取这些数据的重要工具&#xff0c;正逐渐走进越来越多人的视野。对于零基础的学习者来说&#xff0c;如何入…

基于Spring Boot框架的分页查询和文件上传

分页查询 分析 要想从数据库中进行分页查询&#xff0c;我们要使用LIMIT关键字&#xff0c;格式为&#xff1a;limit 开始索引 每页显示的条数 假设一页想展示10条数据 查询第1页数据的SQL语句是&#xff1a; select * from emp limit 0,10; 查询第2页数据的SQL语句是&…

【Pytest官方文档翻译及学习】2.2 如何在测试中编写和报告断言

目录 2.2 如何在测试中编写和报告断言 2.2.1 使用assert语句断言 2.2.2 关于预期异常的断言 2.2.3 关于预期警告的断言 2.2.4 应用上下文相关的比较 2.2.5 为失败的断言定义自己的解释 2.2.6 断言内省细节 2.2 如何在测试中编写和报告断言 2.2.1 使用assert语句断言 p…

6、架构-服务端缓存

为系统引入缓存之前&#xff0c;第一件事情是确认系统是否真的需要缓 存。从开发角度来说&#xff0c;引入缓存会提 高系统复杂度&#xff0c;因为你要考虑缓存的失效、更新、一致性等问题&#xff1b;从运维角度来说&#xff0c;缓存会掩盖一些缺 陷&#xff0c;让问题在更久的…

npm彻底清理缓存

在使用npm过程中&#xff0c;肯定会遇到清缓存的情况&#xff0c;网上的命令一般为 npm cache clear --force有时笔者在清理缓存之后npm install依然失败&#xff0c;仔细发现&#xff0c;执行该命令之后npm报了一个警告 npm WARN using --force Recommended protections dis…

代码随想录算法训练营第27天|● 39. 组合总和● 40.组合总和II● 131.分割回文串

组合总和 题目链接 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 代码&#xff1a; class Solution {public List<List<Integer>> res new ArrayList<>();public List<Integer> list new ArrayList<>();public int sum 0;/**…