当前位置: 首页 > ds >正文

ubuntu双系统设置默认启动系统

目录

  • 一、编辑 /etc/default/grub
  • 二、关于 /etc/default/grub 拓展
    • 1. `GRUB_DEFAULT`
    • 2. `GRUB_TIMEOUT` 和 `GRUB_TIMEOUT_STYLE`
    • 3. `GRUB_CMDLINE_LINUX` 和 `GRUB_CMDLINE_LINUX_DEFAULT`
    • 4. `GRUB_DISABLE_OS_PROBER`
    • 5. `GRUB_GFXMODE`
    • 6. `GRUB_BACKGROUND`
    • 7. `GRUB_SAVEDEFAULT`
    • 8. `GRUB_HIDDEN_TIMEOUT` 和 `GRUB_HIDDEN_TIMEOUT_QUIET`
    • 9. `GRUB_DISABLE_RECOVERY`
    • 10. `GRUB_ENABLE_CRYPTODISK`
    • 11. `GRUB_DISTRIBUTOR`
    • 12. `修改后如何生效`

一、编辑 /etc/default/grub

  1. 打开终端
    Ctrl + Alt + T 打开终端。

  2. 编辑GRUB配置文件
    运行以下命令:

    sudo vim /etc/default/grub
    
  3. 修改默认启动项

    • 找到 GRUB_DEFAULT 这一行。
    • 两种修改方式
      • 按序号设置GRUB_DEFAULT=XX 是GRUB菜单中目标系统的序号,从0开始计数)。
        例如:Windows在菜单第3项,则设置为 GRUB_DEFAULT=2
      • 按名称设置GRUB_DEFAULT="菜单标题"(需用双引号包裹完整的菜单标题)。
        例如:GRUB_DEFAULT="Windows Boot Manager (on /dev/sda1)"
  4. 保存并更新GRUB

    • 保存并退出vim
    • 运行以下命令使更改生效:
      sudo update-grub
      
  5. 双系统时间同步问题

    • 如果Windows和Ubuntu时间不一致,可能是由于硬件时钟时区差异。
    • 在Ubuntu中修复:
      timedatectl set-local-rtc 1 --adjust-system-clock
      

二、关于 /etc/default/grub 拓展

在 Ubuntu 中,/etc/default/grub 是 GRUB(GRand Unified Bootloader)的配置文件,用于控制启动菜单的行为。以下是该文件中常见字段的详细解释:

1. GRUB_DEFAULT

  • 作用:设置默认启动的菜单项。
  • 可选值
    • 0(默认):启动第一个菜单项(通常是当前系统)。
    • X:数字,表示菜单项的索引(从 0 开始)。
    • "菜单标题":直接用引号包裹菜单项的名称(如 "Windows Boot Manager")。
    • saved:使用 grub-rebootgrub-set-default 动态设置默认项。

示例

GRUB_DEFAULT=0       # 默认启动第一个菜单项
GRUB_DEFAULT=2       # 默认启动第三个菜单项
GRUB_DEFAULT="Ubuntu, with Linux 5.15.0-76-generic"

2. GRUB_TIMEOUTGRUB_TIMEOUT_STYLE

  • GRUB_TIMEOUT
    • 启动菜单的等待时间(秒)。
    • -1:无限等待用户选择。
    • 0:立即启动默认项,不显示菜单。
  • GRUB_TIMEOUT_STYLE
    • menu:显示完整菜单(默认)。
    • countdown:显示倒计时界面。
    • hidden:隐藏菜单(需按 ShiftEsc 显示)。

示例

GRUB_TIMEOUT=10
GRUB_TIMEOUT_STYLE=menu

3. GRUB_CMDLINE_LINUXGRUB_CMDLINE_LINUX_DEFAULT

  • 作用:向 Linux 内核传递启动参数。
  • 区别
    • GRUB_CMDLINE_LINUX_DEFAULT:仅影响正常启动(如 quiet splash 隐藏启动日志)。
    • GRUB_CMDLINE_LINUX:影响所有启动模式(包括恢复模式)。

示例

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"  # 默认启动参数(静默+图形动画)
GRUB_CMDLINE_LINUX="nomodeset"            # 所有模式禁用显卡驱动

4. GRUB_DISABLE_OS_PROBER

  • 作用:是否禁用自动检测其他操作系统(如 Windows)。
  • 可选值
    • true:禁用检测(双系统需设为 false)。
    • false(默认):允许检测其他系统并添加到菜单。

示例

GRUB_DISABLE_OS_PROBER=false  # 允许检测 Windows

5. GRUB_GFXMODE

  • 作用:设置 GRUB 菜单的图形分辨率(需显卡支持)。
  • 格式宽度x高度auto

示例

GRUB_GFXMODE=1920x1080

6. GRUB_BACKGROUND

  • 作用:设置 GRUB 菜单的背景图片(需图片路径为 .png.tga 格式)。
  • 注意:图片需放在 /boot/grub/ 目录下。

示例

GRUB_BACKGROUND="/boot/grub/ubuntu.png"

7. GRUB_SAVEDEFAULT

  • 作用:是否记住上次选择的启动项(需 GRUB_DEFAULT=saved)。
  • 可选值
    • true:启用记忆功能。
    • false(默认):禁用。

示例

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

8. GRUB_HIDDEN_TIMEOUTGRUB_HIDDEN_TIMEOUT_QUIET

  • 作用:控制菜单隐藏行为(旧版本 GRUB 适用)。
  • 注意:新版 GRUB 改用 GRUB_TIMEOUT_STYLE=hidden

9. GRUB_DISABLE_RECOVERY

  • 作用:是否禁用恢复模式菜单项。
  • 可选值
    • true:禁用恢复模式。
    • false(默认):显示恢复模式。

示例

GRUB_DISABLE_RECOVERY=false

10. GRUB_ENABLE_CRYPTODISK

  • 作用:是否支持加密磁盘启动(如全盘加密的 LUKS)。
  • 可选值
    • y:启用。
    • n(默认):禁用。

11. GRUB_DISTRIBUTOR

  • 作用:设置 GRUB 菜单中显示的 Linux 发行版名称。
  • 默认值
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

默认值显示效果:

Ubuntu
Advanced options for Ubuntu
Windows Boot Manager (on /dev/nvme0n1p1)

示例

GRUB_DISTRIBUTOR="MyLinux"

显示效果:

MyLinux
Advanced options for MyLinux
Windows Boot Manager (on /dev/nvme0n1p1)

12. 修改后如何生效

运行以下命令更新 GRUB 配置:

sudo update-grub
http://www.xdnf.cn/news/17022.html

相关文章:

  • Windows本地使用dify搭建知识库+ollama+deepseek
  • Java单元测试和设计模式
  • winscp 连openwrt 返回127错误码
  • InfluxDB 与 Node.js 框架:Express 集成方案(一)
  • 【网络原理】HTTP协议(一)
  • Chisel芯片开发入门系列 -- 17. CPU芯片开发和解释7(5级流水线指令原理)
  • 【Flutter3.8x】flutter从入门到实战基础教程(八):公共state的集中管理机制
  • WordPress AI写作插件开发实战:从GPT集成到企业级部署
  • 【Java】不允许直接操作数据表中的数据,开发前台界面来实现对多个数据表的增删改查
  • 【LeetCode刷题指南】--二叉树的前序遍历,二叉树的中序遍历
  • 力扣-105.从前序与中序遍历序列构造二叉树
  • Makefile 从入门到精通:自动化构建的艺术
  • 【人工智能agent】--服务器部署PaddleX 的 印章文本识别模型
  • 详解Python标准库之互联网数据处理
  • 电脑手机热点方式通信(下)
  • 基于OAuth2与JWT的微服务API安全实战经验分享
  • 【云计算】云主机的亲和性策略(四):云主机组
  • Go语言中的闭包详解
  • 【读代码】 KAG项目:开源知识图谱自动构建与推理平台原理与实践
  • Spring框架深度学习实战
  • 深度学习核心:神经网络-激活函数 - 原理、实现及在医学影像领域的应用
  • 进阶向:自动化天气查询工具(API调用)
  • Munge 安全认证和授权服务的工作原理,以及与 Slurm 的配合
  • SpringCloud实战:机器人对战系统架构
  • 电脑手机热点方式通信(上)
  • 什么是AWS Region和AWS Availability Zones
  • 算法复杂度分析
  • 服装ERP系统:高效整合管理,优化生产流程
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现道路上头盔的检测识别(C#代码,UI界面版)
  • 排查解决 nvidia-suspend 导致的 linux 系统无响应/死机问题