linux命令 grub2?

05-30 4910阅读

掌控 Linux 启动核心:GRUB2 命令详解与实战指南

作为现代 Linux 系统的启动核心引擎GRUB2GRand Unified Bootloader 2)是主流发行版的默认引导加载程序,它在计算机启动时率先接管控制权,核心职责是精准加载 Linux 内核与初始化内存盘(initramfs),GRUB2 凭借其模块化架构多系统引导能力以及对 BIOS/UEFI 的全面兼容性,成为系统管理员的核心工具,深入掌握其配置与命令,意味着获得对系统启动链的绝对控制权。


GRUB2 核心配置文件:/boot/grub/grub.cfg

linux命令 grub2?

  • 生成逻辑
    严禁直接编辑此文件!它由三部分动态生成:

    1. 全局配置 /etc/default/grub(定义超时时间、默认启动项等)
    2. 脚本模板 /etc/grub.d/*(按数字顺序执行)
    3. 核心命令 sudo grub2-mkconfig -o /boot/grub/grub.cfg(生成最终配置)
      此机制确保内核更新或参数调整时配置的一致性安全性
  • 核心功能

    • 启动菜单控制:定义菜单项、默认选项、超时时间及主题(如背景图)
    • 内核精准加载:指定 vmlinuz-xxx 内核镜像与匹配的 initramfs-xxx.img
    • 内核参数传递
      linux /vmlinuz root=UUID=abcd ro quiet  # BIOS  
      linuxefi /vmlinuz root=UUID=abcd ro     # UEFI  

      关键参数包括:root=(根分区)、single(单用户模式)、rd.break(调试Shell)

    • 多系统引导
      menuentry "Windows" {  
        chainloader (hd0,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi  
      }  
    • 模块动态扩展
      insmod ext2    # 磁盘文件系统支持  
      insmod gcry_sha256  # 加密模块  
      insmod gfxterm  # 图形终端  

GRUB2 四大核心命令实战

配置生成命令:grub2-mkconfig

linux命令 grub2?

  • 作用:整合 /etc/default/grub/etc/grub.d/ 脚本生成最终配置

  • 典型场景

    # BIOS/Legacy 系统  
    sudo grub2-mkconfig -o /boot/grub/grub.cfg  
    # UEFI 系统(以Fedora为例)  
    sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg  
  • 触发时机

    • 修改内核参数(如 /etc/default/grub 中的 GRUB_CMDLINE_LINUX="ipv6.disable=1")
    • 增删内核或操作系统(如安装 Windows 后需更新菜单)
    • 自定义脚本变更(如修改 /etc/grub.d/40_custom

引导修复命令:grub2-install

  • 核心作用

    • BIOS 系统:向磁盘 MBR 写入 Stage1 引导代码
    • UEFI 系统:安装 grubx64.efi 到 ESP 分区并注册到固件
  • 操作示例

    # BIOS 系统安装到 sda  
    sudo grub2-install /dev/sda  
    # UEFI 系统修复(需提前挂载 ESP 分区)  
    sudo grub2-install --target=x86_64-efi \  
         --efi-directory=/boot/efi \  
         --bootloader-id=Fedora_Linux  
  • 救急场景

    1. 通过 Live CD 挂载原系统:
      mount /dev/sda2 /mnt      # 挂载根分区  
      mount /dev/sda1 /mnt/boot/efi  # 挂载 ESP 分区  
      chroot /mnt  
    2. 执行双重修复:
      grub2-install /dev/sda  
      grub2-mkconfig -o /boot/grub/grub.cfg  

GRUB 命令行:终极故障排除工具

linux命令 grub2?

  • 进入方式:启动时按 c 键进入 grub> 提示符

  • 核心命令
    | 命令 | 作用 |
    |------------------------------|----------------------------------|
    | ls | 列出所有存储设备(如 (hd0,gpt2)) |
    | set root=(hd0,gpt2) | 设置 /boot 所在分区 |
    | linux /vmlinuz root=UUID=xxx | 指定内核及根分区参数 |
    | initrd /initramfs.img | 加载初始化内存盘 |
    | insmod btrfs | 动态加载 Btrfs 文件系统模块 |
    | search --fs-uuid --set=root xxxx | 按 UUID 自动定位分区 |

  • 实战案例(配置文件损坏修复):

    grub> ls  # 识别分区  
    grub> set root=(hd0,gpt2)  
    grub> linux /vmlinuz-5.15.0 root=/dev/mapper/vg0-root ro  
    grub> initrd /initramfs-5.15.0.img  
    grub> boot  # 手动引导系统  

    进入系统后立即执行:sudo grub2-mkconfig -o /boot/grub/grub.cfg


安全加固:GRUB2 密码防护

  • 核心目的:阻止通过编辑启动参数(如 init=/bin/bash)绕过系统认证
  • 实施步骤
    1. 生成 PBKDF2 加密密码:
      grub2-mkpasswd-pbkdf2  
      # 输出:grub.pbkdf2.sha512.10000.2F3A...  
    2. /etc/grub.d/40_custom 添加:
      set superusers="admin"  
      password_pbkdf2 admin grub.pbkdf2.sha512.10000.2F3A...  
    3. 按需限制菜单项:
      menuentry "Ubuntu" --users admin { ... }  # 仅admin可启动  
    4. 使配置生效:
      sudo grub2-mkconfig -o /boot/grub/grub.cfg  

关键总结

  1. 修改配置永远通过 /etc/default/grub/etc/grub.d/拒绝直编辑 grub.cfg
  2. 任何配置更新后必须执行 grub2-mkconfig 生成新配置
  3. 磁盘更换/引导损坏时,grub2-install + grub2-mkconfig 双剑合璧
  4. GRUB 命令行是系统无法启动时的终极救赎工具

优化说明:

  1. 重构技术逻辑链,明确“配置生成-安装修复-命令行急救”工作流
  2. 补充 UEFI/BIOS 双模式操作差异说明
  3. 增加命令输出示例及救急场景代码块
  4. 强化安全防护实操步骤(PBKDF2密码+菜单项权限)
  5. 使用表格对比命令行关键操作,提升信息密度
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码