(双系统)Ubuntu+Windows解决grub引导问题和启动黑屏问题

news2025/1/16 14:48:16

Introduction

解决双系统的 Windows 的启动项失踪和grub正常的情况下启动 Windows 系统出现黑屏的问题。

Note:

  • 我的系统是 Ubuntu 24.04 LTS desktop​,安装了双系统(先安装 Win ,再安装 Ubuntu)


文章目录

    • Introduction
    • Stage1: 我看不到任何让我选择系统的界面
    • Stage2: 对 GRUB 的文件的介绍,了解和编辑
      • 对 GRUB 文件的概要介绍
      • 深入了解 GRUB 配置文件并按需编辑
    • GRUB 菜单正常,引导启动 Ubuntu 系统正常但是引导启动 Windows 系统却黑屏
    • References


Stage1: 我看不到任何让我选择系统的界面

假如你的安装顺序是先安装 Windows ,再安装 Ubuntu(安装时选择了为Windows安装) 的话,你可能很想先重启一下,看能不能正常进入 Windows 系统。

答案很明显,不能,你什么都没有看见,除了大概在左上角闪动了一下光标外,你什么都没有看见。

首先点出一个须知:GRUB(GRand Unified Bootloader)是 Linux 操作系统中广泛使用的一种引导加载程序 。

这里并不需要深究,只需要知道 Ubuntu 是使用 grub(确切来说,现在所用的是 grub2 ) 做引导,如果想要进一步了解的话,可以访问 https://www.pavelhan.tech/2024-06-21-BIOS-UEFI-MBR-GPTGRUB-EFI-Basics 看一看。

既然使用了 GRUB 来引导启动系统,且我们可以直接进入到 Ubuntu,这就说明我们的 GRUB 是正常工作的,为什么看不到 Windows 的启动项呢?答案就是被藏起来或者找不到了。

那么,怎么确定是哪种情况呢?这就要涉及到对 GRUB 的使用了。


Stage2: 对 GRUB 的文件的介绍,了解和编辑

对 GRUB 文件的概要介绍

首先,了解一下 GRUB 有哪些文件,以及它们存放的位置。

  • 配置文件:/etc/default/grub

    If you change this file, run ‘update-grub’ afterwards to update
    /boot/grub/grub.cfg.

    For full documentation of the options in this file, see:
    info -f grub -n ‘Simple configuration’

  • 可执行文件目录: /etc/grub.d

    All executable files in this directory are processed in shell expansion order.

    00_*: Reserved for 00_header.

    10_*: Native boot entries.

    20_*: Third party apps (e.g. memtest86+).

    The number namespace in-between is configurable by system installer and/or
    administrator. For example, you can add an entry to boot another OS as
    01_otheros, 11_otheros, etc
    , depending on the position you want it to occupy in
    the menu
    ; and then adjust the default setting via /etc/default/grub.

  • 自动生成的文件:/boot/grub/grub.cfg​ (避免直接编辑它)

    It is automatically generated by grub-mkconfig using templates
    from /etc/grub.d and settings from /etc/default/grub

很多教程让你直接去改 /boot/grub/grub.cfg​,我想说这是一种偷懒的行为而不是根据实际需要的,因为这个文件是根据我们的配置文件自动生成的,假如说我们需要修改配置文件并使其生效,前面我们直接修改的 /boot/grub/grub.cfg​ 就会直接失效,导致我们还需要再度直接修改这个文件,这里,或许有人认为很少会去编辑引导加载程序的配置而认为这没有必要折腾。

但个人来看,与其逃避这个问题,不如直接解决它(何况这并不是一个难以解决的或者考虑到实际需求没有必要折腾的问题,至少我个人实践后是这么认为的)。


深入了解 GRUB 配置文件并按需编辑

  1. 为了解更多信息,可以在终端上运行命令:

    info -f grub -n 'Simple configuration'
    
  2. 编辑配置文件

    vim /etc/default/grub
    
  3. 阅读前面的命令打开的手册,但是仅仅关注我们需要的信息

    • GRUB_DEFAULT

      • 含义:默认引导的菜单启动项(从0开始)
      • 值:数字(默认值为 0 )|菜单启动项的标题|特殊字符串值 ‘saved’
    • GRUB_TIMEOUT_STYLE

      • 含义:GRUB 倒计时样式

      • 值: ‘menu’ or unset | ‘countdown’ or ‘hidden’

      • ‘menu’ or unset

        • 设置该值,GRUB 会显示菜单,然后在启动默认启动项前等待 GRUB_TIMEOUT 设计的倒计时,按下一个按键会打断倒计时。
      • ‘countdown’ or ‘hidden’

        • 设置该值, GRUB 会在显示菜单前等待 GRUB_TIMEOUT 设计的倒计时,
        • 如果等待期间按下了 或 或 ,就会显示菜单并等待输入;
        • 如果和某个菜单启动项的热键被按下,则会立刻引导对应的菜单启动项;
        • 如果在倒计时结束时没有进行上述任何操作,则会引导默认的菜单启动项;
        • 如果设置的是 ‘countdown’,会显示一行剩余时间的指示。(如果是 ‘hidden’,则不会显示任何信息)。
    • GRUB_TIMEOUT

      • 含义:GRUB 倒计时

      • 值:数值,默认值5

      • 0

        • 不显示菜单,立刻引导默认菜单启动项
      • -1

        • 无限等待
  4. 为了让我们能看到菜单,可以进行以下设置

    GRUB_TIMEOUT_STYLE='menu'
    GRUB_TIMEOUT=20
    
  5. 完成上述设置之后,需要运行命令以使得更改生效:

    sudo update-grub
    

如果没有别的需求的话,你可以运行:

sudo reboot

或者:

sudo shutdown -r now

来重启系统以确认我们的设置是否有效,个人确认是有效的。


GRUB 菜单正常,引导启动 Ubuntu 系统正常但是引导启动 Windows 系统却黑屏

可能是显卡驱动冲突造成的,可以添加 nomodeset​ 参数禁用内核的图形模式设置功能以避免因显卡驱动问题造成的启动失败。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"


References

  • How to add Windows 10 to grub boot loader: https://superuser.com/questions/1392316/how-to-add-windows-10-to-grub-boot-loader

  • Add Windows 10 to GRUB OS list: https://askubuntu.com/questions/661947/add-windows-10-to-grub-os-list/661954#661954

  • Boot-Repair: https://help.ubuntu.com/community/Boot-Repair

  • Offical docs of grub: https://www.gnu.org/software/grub/manual/grub/grub.html

  • Red Hat document:

    • Chinese(Zh-cn):

      https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-working_with_the_grub_2_boot_loader#ch-Working_with_the_GRUB_2_Boot_Loader

    • English(US-en):

      https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-working_with_the_grub_2_boot_loader#sec-Upgrading_from_GRUB_Legacy_to_GRUB_2

  • Grub:

    • https://www.cnblogs.com/studyone/p/5500679.html
    • https://wiki.archlinuxcn.org/wiki/GRUB?rdfrom=https%3A%2F%2Fwiki.archlinux.org%2Findex.php%3Ftitle%3DGRUB_%28%25E7%25AE%2580%25E4%25BD%2593%25E4%25B8%25AD%25E6%2596%2587%29%26redirect%3Dno
  • MBR vs GPT: What’s the Difference Between an MBR Partition and a GPT Partition? [Solved]: https://www.freecodecamp.org/news/mbr-vs-gpt-whats-the-difference-between-an-mbr-partition-and-a-gpt-partition-solved/

  • BIOS/UEFI/MBR/GPT/GRUB/EFI等概念的总结: https://www.pavelhan.tech/2024-06-21-BIOS-UEFI-MBR-GPTGRUB-EFI-Basics

  • Understanding the Difference: BIOS, UEFI, Bootloader, and U-Boot/GRUB: https://usercomp.com/news/1198820/bios-vs-uefi-vs-bootloader-vs-u-boot-grub

  • 怎样修复grub开机引导(grub rescue): https://www.cnblogs.com/jins-note/p/9513335.html

  • 将 Windows 添加到 GRUB 启动菜单: https://cn.linux-console.net/?p=10556

  • 使用GRUB 添加新的启动项 (menu entry): https://www.cnblogs.com/longwaytogo/p/5679583.html


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

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

相关文章

速通Docker === 介绍与安装

目录 Docker介绍 Docker优势 Docker组件 Docker CLI (命令行接口) Docker Host (Docker 守护进程) 容器 (Container) 镜像 (Image) 仓库 (Registry) 关系总结 应用程序部署方式 传统部署 (Traditional Deployment) 虚拟化部署 (Virtualization Deployment) 容器部署…

数据分析:非度量多维排列 NMDS (Non-metric multidimensional scaling)ANOSIM检验分析

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍原理步骤加载R包数据下载导入数据数据预处理计算距离矩阵ANOSIM检验非度量多维排列NMDS应力值(stress value)画图输出系统信息介绍 非度量多维排列(Non-metric Multidimensiona…

Flink (七): DataStream API (四) Watermarks

1. Event Time and Processing Time 1. 1 处理时间(Processing time) 处理时间是指执行相应操作的机器的系统时间。当流处理程序基于处理时间运行时,所有基于时间的操作(如时间窗口)将使用执行相应算子的机器的系统时…

OpenStack 网络服务的插件架构

OpenStack 的网络服务具有灵活的插件架构,可支持多种不同类型的插件以满足不同的网络需求。以下是对 OpenStack 网络服务插件架构中一些常见插件类型的介绍: 一、SDN 插件 Neutron 与 SDN 的集成:在 OpenStack 网络服务里,SDN 插…

光伏储能交直流微电网Matlab/Simulink仿真模型

博士毕业后项目和课题的交接工作也都基本上结束了,之前从20年我博一开始创作的博客,我也将从25年伊始重新进行更新,在保留原有内容的基础上,在对现如今的研究热点进行补充,希望能为各位校友提供一定的研究思路。首先是…

【js进阶】设计模式之单例模式的几种声明方式

单例模式&#xff0c;简言之就是一个类无论实例化多少次&#xff0c;最终都是同一个对象 原生js的几个辅助方式的实现 手写forEch,map,filter Array.prototype.MyForEach function (callback) {for (let i 0; i < this.length; i) {callback(this[i], i, this);} };con…

Broker收到消息之后如何存储

1.前言 此文章是在儒猿课程中的学习笔记&#xff0c;感兴趣的想看原来的课程可以去咨询儒猿课堂《从0开始带你成为RocketMQ高手》&#xff0c;我本人觉得这个作者还是不错&#xff0c;都是从场景来进行分析&#xff0c;感觉还是挺适合我这种小白的。这块主要都是我自己的学习笔…

vim使用指南

&#x1f3dd;️专栏&#xff1a;计算机操作系统 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 一、Vim 的基本概念 1.Vim 的主要模式&#xff1a; 1.1普通模式 (Normal Mode) 1.2插入…

计算机网络 网络层 2

IP协议&#xff1a; Ip数据报的格式&#xff1a; 首部:分为固定部分 和 可变部分 固定部分是20B 版本&#xff1a;表明了是IPV4还是IPV6 首部长度&#xff1a;单位是 4B&#xff0c;表示的范围是&#xff08;5~15&#xff09;*4B 填充&#xff1a;全0&#xff0c;,让首部变…

干净卸载Windows的Node.js环境的方法

本文介绍在Windows电脑中&#xff0c;彻底删除Node.js环境的方法。 在之前的文章Windows系统下载、部署Node.js与npm环境的方法&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/144810076&#xff09;中&#xff0c;我们介绍过在Windows电脑中&#xff0…

《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答&#xff1a; 问&#xff1a;《汽车维护与修理》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《汽车维护与修理》级别&#xff1f; 答&#xff1a;国家级。主管单位&#xff1a;中国汽车维修行业协会 …

线性回归超详解

目录 一、回归问题 vs 分类问题 二、线性回归 1、一句话理解 2、数学推导 2.1 线性函数表示 2.2 损失函数 2.3 梯度下降 2.3.1 什么是梯度 2.3.2 梯度下降目标 2.3.3 过程 2.3.4 迭代公式 3、特征预处理 3.1 为什么要预处理 3.2 数据归一化方法 1&#xff09;最小…

《无锡布里渊分布式光纤传感技术:照亮能源领域新征程》

在全球能源格局加速变革、能源需求持续攀升的当下&#xff0c;保障能源系统的安全、高效运行成为重中之重。分布式光纤传感技术宛如一颗璀璨的科技新星&#xff0c;正以前所未有的姿态融入能源领域&#xff0c;重塑着能源开采、运输与监测的传统模式。 石油与天然气作为现代工…

win32汇编环境,窗口程序中组合框的应用举例

;运行效果 ;win32汇编环境,窗口程序中组合框的应用举例 ;比如在窗口程序中生成组合框&#xff0c;增加子项&#xff0c;删除某项&#xff0c;取得指定项内容等 ;直接抄进RadAsm可编译运行。重点部分加备注。 ;以下是ASM文件 ;>>>>>>>>>>>>…

PHP智慧小区物业管理小程序

&#x1f31f;智慧小区物业管理小程序&#xff1a;重塑社区生活&#xff0c;开启便捷高效新篇章 &#x1f31f; 智慧小区物业管理小程序是一款基于PHPUniApp精心雕琢的智慧小区物业管理小程序&#xff0c;它犹如一股清新的科技之风&#xff0c;吹进了现代智慧小区的每一个角落…

win10电脑 定时关机

win10电脑 定时关机 https://weibo.com/ttarticle/p/show?id2309405110707766296723 二、使用任务计划程序设置定时关机打开任务计划程序&#xff1a; 按下“Win S”组合键&#xff0c;打开搜索框。 在搜索框中输入“任务计划程序”&#xff0c;然后点击搜索结果中的“任务…

【数模学习笔记】插值算法和拟合算法

声明&#xff1a;以下笔记中的图片以及内容 均整理自“数学建模学习交流”清风老师的课程资料&#xff0c;仅用作学习交流使用 文章目录 插值算法定义三个类型插值举例插值多项式分段插值三角插值 一般插值多项式原理拉格朗日插值法龙格现象分段线性插值 牛顿插值法 Hermite埃尔…

​HPM6700——以太网通信lwip_udpecho_freertos_socket

1. 概述 本示例展示在FreeRTOS系统下的UDP回送通讯 PC 通过以太网发送UDP数据帧至MCU&#xff0c;MCU将接收的数据帧回发至PC 2. 硬件设置 使用USB Type-C线缆连接PC USB端口和PWR DEBUG端口 使用以太网线缆连接PC以太网端口和开发板RGMII或RMII端口 3. 工程配置 以太网端…

低代码独特架构带来的编译难点及多线程解决方案

前言 在当今软件开发领域&#xff0c;低代码平台以其快速构建应用的能力&#xff0c;吸引了众多开发者与企业的目光。然而&#xff0c;低代码平台独特的架构在带来便捷的同时&#xff0c;也给编译过程带来了一系列棘手的难点。 一&#xff0c;低代码编译的难点 &#xff08;1…

FPGA 21 ,深入理解 Verilog 中的基数,以及二进制数与十进制数之间的关系( Verilog中的基数 )

目录 前言 一. 基数基础 1.1 基数介绍 2.1 基数符号 3.1 二进制数 二. 二进制与十进制数 三. 二进制数 3.1 定义寄存器类型变量 3.2 定义线网类型变量 3.3 赋值操作 3.4 解析二进制数为十进制数 四. 代码示例 五. 注意事项 六. 更多操作 前言 在Verilog中&#…