Ubuntu 启动引导如何修复(直接进入grub怎么办)

如果 Ubuntu 系统启动时直接进入 GRUB 界面,而不是直接启动操作系统,原因是: GRUB 配置文件丢失或损坏

解决方法

一、手动引导系统(临时方案)

GRUB 的配置文件(/boot/grub/grub.cfg)损坏。通过 GRUB 界面中命令行模式,尝试手动引导系统。

 ls

这将会列出一系列的分区,如

(h0,p0) (h1,p0) (h1,p1)

即:第1块硬盘,第1个分区
第2个硬盘,第1个分区
第2个硬盘,第2个分区
通过ls (h0,p0)/ 查看文件目录结构。如果包含系统的关键文件(如 /bin/etc/lib/usr 则为系统根目录。

找到分区后,手动加载 Linux 内核并引导系统:

set root=(hd0,1)  # 这里替换成你的根分区
linux /boot/vmlinuz root=/dev/sda1  # 替换你的根分区设备
initrd /boot/initrd.img
boot
二、使用Live USB修复 GRUB(永久方案):
1、原理
  1. EFI 系统分区(ESP)
    在 UEFI 系统中,通常会有一个专门的分区称为 EFI 系统分区(ESP),它用于存放 EFI 引导加载程序和相关文件。该分区的文件系统通常是 FAT32 格式。
    ESP 通常被挂载到 /boot/efi。在这个分区中,你会找到一个或多个子目录,通常以操作系统的名称命名,例如 /EFI/ubuntu 或 /EFI/boot,其中包含 UEFI 引导程序(如 grubx64.efi)。
  2. Boot 分区 在传统的 BIOS 启动系统中,/boot 分区包含内核文件和引导加载程序。 在 UEFI 系统中,虽然大多数情况下引导程序也在 ESP 中,但仍然可以将 Linux 内核和其他文件放在 /boot 目录下。这并不影响 UEFI
    的引导过程。
  3. 系统结构 对于一个 UEFI 系统,通常会有如下分区: EFI 系统分区(ESP):用于存放 EFI 引导文件,通常位于 /boot/efi。 根分区(/):系统文件和用户数据,包含内核、库和其他重要文件,可能会包含 /boot 目录。 可选的 /boot
    分区:一些系统选择将内核和 initramfs 放在一个单独的 /boot 分区中,这样可以简化管理。

所以目的就是修复 ESP文件。

2、流程

步骤1. 使用 Live USB 启动系统并选择“Try Ubuntu”模式。
步骤2. 打开终端 并列出所有分区:
使用lsblkfdisk -l命令来确定正确的分区

步骤3. 挂载根分区:

sudo mount /dev/sda1 /mnt  # 替换为正确的根分区

步骤4. 还需要挂载一些虚拟文件系统,以便在chroot环境中正确地访问硬件设备和环境信息。:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

步骤 5. 切换到挂载的系统环境:

sudo chroot /mnt

挂载EFI分区(用于待会覆写文件)

mkdir /mnt/efi
mount /dev/sda1 /mnt/efi

步骤 6: 安装或修复 GRUB
在 chroot 环境中运行以下命令来安装或修复 GRUB:

grub-install --target=x86_64-efi --efi-directory=/mnt/efi --bootloader-id=ubuntu
--target=x86_64-efi 表示你要安装在 UEFI 系统上。
--efi-directory=/mnt/efi 指定 EFI 分区的位置。
--bootloader-id=ubuntu 是 GRUB 在 UEFI 启动菜单中显示的名称。# 接下来,更新 GRUB 配置:
update-grub

步骤 7. 退出 chroot 环境并重启系统:

exit
sudo reboot
三、Ubuntu 内部的引导文件

以上步骤完成后, Linux引导程序页面(选择Ubuntu, Advance Option的页面)应该能展示出来。
如果进入emergency 模式,则证明Ubuntu内部的引导没有做好。

这个文件是在安装的时候系统生成的,在更换了硬盘之后,该文件很有可能不能用了(由于uuid发生了变化)。

li@li-Z690I-A-ULTRA-LITE:/etc %cat fstab1	# /etc/fstab: static file system information.2	#3	# Use 'blkid' to print the universally unique identifier for a4	# device; this may be used with UUID= as a more robust way to name devices5	# that works even if disks are added and removed. See fstab(5).6	#7	# <file system> <mount point>   <type>  <options>       <dump>  <pass>8	# / was on /dev/nvme1n1p2 during installation9	UUID=5c23a161-bbc6-4b87-b52e-7699c10c2741 /               ext4    errors=remount-ro 0       110	# /boot/efi was on /dev/nvme0n1p1 during installation11	UUID=AB5E-0E4E  /boot/efi       vfat    umask=0077      0       112	/swapfile                                 none            swap    sw              0       0

使用 blkid 列出所有块设备和信息,包含uuid。
将上述文件的第一个UUID 改为指向 Linux 系统,第二个UUID 改为指向引导程序。

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

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

相关文章

机器学习——多模态学习

多模态学习&#xff1a;机器学习领域的新视野 引言 多模态学习&#xff08;Multimodal Learning&#xff09;是机器学习中的一个前沿领域&#xff0c;它涉及处理和整合来自多个数据模式&#xff08;如图像、文本、音频等&#xff09;的信息。随着深度学习的蓬勃发展&#xff0…

RAG文本拆分深入研究

在这里&#xff0c;我们将尝试全面深入地掌握成功实施 RAG 所必需的不同主题。以下是示例 RAG 架构。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语…

docker简述

1.安装dockers&#xff0c;配置docker软件仓库 安装&#xff0c;可能需要开代理&#xff0c;这里我提前使用了下好的包安装 启动docker systemctl enable --now docker查看是否安装成功 2.简单命令 拉取镜像&#xff0c;也可以提前下载使用以下命令上传 docker load -i imag…

单片机闪存,闪存缓冲取,闪存延迟

一、启用闪存预取缓冲区&#xff08;FLASH_PrefetchBufferCmd (FLASH_PrefetchBuffer_Enable);&#xff09; 闪存预取缓冲区的作用&#xff1a; 在微控制器中&#xff0c;闪存是用于存储程序代码和常量数据的非易失性存储器。当微控制器执行程序时&#xff0c;需要从闪存中读取…

62 加密算法

62 加密算法 三种加密算法分类&#xff1a; 对称加密&#xff1a;密钥只有一个&#xff0c;解密、解密都是这个密码&#xff0c;加解密速度快&#xff0c;典型的对称加密有DES、AES、RC4等非对称加密&#xff1a;密钥成对出现&#xff0c;分别为公钥和私钥&#xff0c;从公钥…

单细胞转录组 —— simpleaf 原始数据处理

单细胞转录组 —— 原始数据处理实战&#xff08;simpleaf&#xff09; 前言 Alevin-fry 是一个快速、准确且内存节约的单细胞和单核数据处理工具。 Simpleaf 是用 Rust 编写的程序&#xff0c;它提供了一个统一且简化的界面&#xff0c;用于通过 alevin-fry 流程处理一些最…

实现std::sort,replace,fill,accumulate,equal等函数

std::sort /// <summary>/// std::sort 是从小到大排列的/// </summary>/// <typeparam name"IteratorClass"></typeparam>/// <typeparam name"ComparingFunctions"></typeparam>/// <param name"itBegin&qu…

系统端口号被占用问题处理(WindowsLinux系统)

Windows 直接kill占用端口的进程 WinR 输入cmd 打开命令行窗口 1.查询本地已被占用的端口号&#xff1a; 下面以8080端口为例&#xff1a; netstat -aon|findstr "8080" 查看本地8080端口进程的PID 2.杀死"xxxx"端口号的进程 (下面的22868是 你查到…

java.lang.NoClassDefFoundError: kotlin/Result解决方案

问题 在控制窗口上虽然报错是找不到对应的class&#xff0c;但是呢在我们导入kotlin的后&#xff0c;还是报相同的异常&#xff0c;在网上查找了各种资料&#xff0c;都没有解决方案。 问题分析 在idea2021之后&#xff0c;kotlin都使用远程仓库&#xff08;kotlinx-coeouti…

多模态大语言模型(MLLM)-InstructBlip深度解读

前言 InstructBlip可以理解为Blip2的升级版&#xff0c;重点加强了图文对话的能力。 模型结构和Blip2没差别&#xff0c;主要在数据集收集、数据集配比、指令微调等方面下文章。 创新点 数据集收集&#xff1a; 将26个公开数据集转换为指令微调格式&#xff0c;并将它们归类…

鸿蒙开发(NEXT/API 12)【管理应用与Wear Engine服务的连接状态】手机侧应用开发

监测应用与Wear Engine服务的连接状态 华为运动健康App在后台停止服务&#xff08;如功耗过高&#xff09;&#xff0c;从而导致应用与Wear Engine服务的连接状态发生变化。对于类似这种不确定的断开情况&#xff0c;开发者可以通过本功能特性了解当前应用和Wear Engine的连接…

电池大师 2.3.9 | 专业电池管理,延长寿命优化性能

Battery Guru 显示电池使用情况信息&#xff0c;测量电池容量&#xff08;mAh&#xff09;&#xff0c;并通过有用技巧帮助用户改变充电习惯&#xff0c;延长电池寿命。支持显示电池健康状况&#xff0c;优化电池性能。 大小&#xff1a;9.6M 百度网盘&#xff1a;https://pan…

【SQL】换座位

目录 语法 需求 示例 分析 代码 语法 SELECT user_id, user_name, IF(user_age < 18, Minor, IF(user_age < 65, Adult, Senior)) AS age_group FROM users; 使用IF函数来根据user_age的值将用户分为不同的年龄组 在SQL中&#xff0c;IF语法主要用于在查询中根据条…

毕业设计项目-古典舞在线交流平台的设计与实现(源码/论文)

项目简介 基于springboot实现的&#xff0c;主要功能如下&#xff1a; 技术栈 后端框框&#xff1a;springboot/mybatis 前端框架&#xff1a;html/JavaScript/Css/vue/elementui 运行环境&#xff1a;JDK1.8/MySQL5.7/idea&#xff08;可选&#xff09;/Maven3&#xff08…

子弹生产线残次品检测系统源码分享

子弹生产线残次品检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

Golang | Leetcode Golang题解之第451题根据字符出现频率排序

题目&#xff1a; 题解&#xff1a; func frequencySort(s string) string {cnt : map[byte]int{}maxFreq : 0for i : range s {cnt[s[i]]maxFreq max(maxFreq, cnt[s[i]])}buckets : make([][]byte, maxFreq1)for ch, c : range cnt {buckets[c] append(buckets[c], ch)}an…

ATAM需求说明-系统架构师(七十六)

1体系结构权衡分析法ATAM(Architecture Trade Off Analyzer Method)是一种常见的结构权衡分析法&#xff0c;该框架主要关注系统的&#xff08;&#xff09;&#xff0c;针对性能、安全性、可用性和可修改性&#xff0c;在系统开发前进行分析、评价和这种。 A 需求说明 B 架构…

搭建企业级私有仓库harbor

华子目录 harbor简介实验环境准备下载软件包安装docker-cehosts解析 实验步骤配置https加密传输解压进入解压目录&#xff0c;修改文件配置启动harbor 测试客户端配置harbor本地加速器注意 通过docker compose管理harbor harbor简介 harbor是由wmware公司开源的企业级docker r…

uniapp自定义导航,全端兼容

我们在用uniapp 开发应用的时候&#xff0c;有的页面需要自定义导航&#xff0c; 1.如果普通的直接使用uni 扩展柜组件的 uni-nav-bar 也基本够用&#xff0c; 2.如果稍微带点自定义的这个值无法支持的&#xff0c;特别在小程序端&#xff0c;胶囊是会压住右边的按钮的 自定…

Debezium日常分享系列之:Debezium 3.0.0.Final发布

Debezium日常分享系列之&#xff1a;Debezium 3.0.0.Final发布 Debezium 核心的变化需要 Java 17基于Kafka 3.8 构建废弃的增量信号字段的删除每个表的详细指标 MariaDB连接器的更改版本 11.4.3 支持 MongoDB连接器的更改MongoDB sink connector MySQL连接器的改变MySQL 9MySQL…