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

news/2024/10/20 17:25:59/

如果 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.ppmy.cn/news/1538699.html

相关文章

uni-app 打包成app时 限制web-view大小

今天对接一个uni-app的app 内置对方h5 web-view的形式 需要对方在web-view顶部加点东西 对方打的app的web-view始终是全屏的状态&#xff0c;对方表示做不到我要的效果 emmmmmm。。。。。。 于是乎 自己搭了个demo 本地h5跑起来审查了下代码&#xff0c;发现web-view是给绝对定…

MySQL 之锁机制

在 MySQL 数据库中&#xff0c;锁机制是保证数据一致性和并发控制的重要手段。不同类型的锁在不同的场景下发挥着关键作用&#xff0c;下面将详细解释 MySQL 中的行锁、GAP 锁&#xff08;间隙锁&#xff09;、临键锁的作用和实现原理。 一、行锁 作用&#xff1a; 行锁是对数…

大数据-160 Apache Kylin 构建Cube 按照日期构建Cube 详细记录

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Starrocks的表引擎选择及表属性的设置详细说明

表引擎选择 OLAP引擎 特点与适用场景&#xff1a; 这是StarRocks中用于数据分析场景的主要引擎。它针对海量数据的复杂分析查询进行了优化&#xff0c;能够高效地处理聚合、分组、排序等操作。例如&#xff0c;在数据仓库场景下&#xff0c;当需要对销售数据进行按地区、时间等…

iOS NSString 使用Copy修饰,而不使用Strong修饰

其实老实讲, 定义property 属性,“使用Copy修饰,而不是用Strong修饰”这句话也不完全正确.因为如果他们对接的是不可变字符串,那么无论使用哪个都一样. 问题就出现在,如果他们对接的是可变字符串NSMutableString,那就得用copy 定义两个NSString 属性: interface ViewControl…

利用编程思维做题之将两个有序的单链表合并成一个新的有序单链表

1. 理解问题 将两个有序的单链表合并成一个新的单链表&#xff0c;并且保持有序。每个链表的元素按照升序排列&#xff0c;合并后的链表也需要保持升序。 示例&#xff1a; 假设我们有两个有序链表&#xff1a; 链表 1&#xff1a;1 -> 3 -> 5链表 2&#xff1a;2 -&g…

python爬虫 - 深入requests模块

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、下载网络文件 &#xff08;一&#xff09;基本步骤 &#xff08;二&…

【C++几种单例模式解读及实现方式】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、单例是什么&#xff1f;二、解读1.懒汉式2.饿汉式3.static变量特性4.call_once特性 总结 前言 单例模式几乎是每种语言都不可少的一种设计模式&#xff0c…