GRUB

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

目录

一、grub legacy

1.功用

2.grub的命令行接口

3.手动在grub命令行接口启动系统

4.配置文件:/boot/grub/grub.conf

5.进入单用户模式

6.安装grub

练习

参考资料

GRUB(Boot Loader):GRand Unified Bootloader

            grub 0.x:grub legacy

            grub 1.x:grub2

一、grub legacy

      stage1:MBR

      stage1_5:mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统

      stage2:磁盘分区(/boot/grub/)

配置文件:/boot/grub/grub.conf <-- /etc/grub.conf

stage2及内核等通常放置于一个基本磁盘分区

1.功用

      ①提供菜单、并提供交互式接口

            e:编辑模式,用于编辑菜单;

            c:命令模式,交互式接口;

      ②加载用户选择的内核或操作系统

            允许传递参数给内核

            可隐藏此菜单

      ③为菜单提供了保护机制

            为编辑菜单进行认证

            为启用内核或操作系统进行认证

如何识别设备:

                  (hd#,#)

                       hd#:磁盘编号,用数字表示;从0开始编号

                       #:分区编号,用数字表示; 从0开始编号

e.g.  (hd0,0)

2.grub的命令行接口

            help:获取帮助列表

            help KEYWORD:详细帮助信息

            find (hd#,#)/PATH/TO/SOMEFILE:

            root (hd#,#)      把某个磁盘分区设定为根设备

kernel /PATH/TO/KERNEL_FILE:设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数

                       例如:init=/path/to/init, selinux=0

initrd /PATH/TO/INITRAMFS_FILE:设定为选定的内核提供额外文件的ramdisk

boot:引导启动选定的内核

3.手动在grub命令行接口启动系统

      grub> root (hd#,#)

      grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE

      grub> initrd /initramfs-VERSION-RELEASE.img

      grub> boot

4.配置文件:/boot/grub/grub.conf

配置项:

default=#:设定默认启动的菜单项;落单项(title)编号从0开始;

timeout=#:指定菜单项等待选项选择的时长;

splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径

hiddenmenu:隐藏菜单

            password [--md5] STRING:菜单编辑认证

title TITLE:定义菜单项“标题”, 可出现多次

root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的“根”

kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核

initrd /PATH/TO/INITRAMFS_FILE:内核匹配的ramfs文件

password [--md5] STRING:启动选定的内核或操作系统时进行认证

grub-md5-crypt命令

5.进入单用户模式

编辑grub菜单(选定要编辑的title,而后使用e命令)

      在选定的kernel后附加

      1, s, S或single都可以

      在kernel所在行,键入“b”命令

6.安装grub

①grub-install

grub-install --root-directory=ROOT /dev/DISK

②grub

        grub> root (hd#,#)

        grub> setup (hd#)

练习

      (1)新加硬盘,提供直接单独运行bash系统

            ①对新加的硬盘进行分区操作

                  fdisk /dev/sdb

      Command (m for help): n

      p

      Partition number (1-4): 1

First cylinder (1-2610, default 1):

Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +100M

Command (m for help): n

Partition number (1-4): 2

First cylinder (15-2610, default 15):

Last cylinder, +cylinders or +size{K,M,G} (15-2610, default 2610): +1G

Command (m for help): t

Partition number (1-4): 2

Hex code (type L to list codes): 82

Changed system type of partition 2 to 82 (Linux swap / Solaris)

Command (m for help): n

Partition number (1-4): 3

First cylinder (147-2610, default 147):

Last cylinder, +cylinders or +size{K,M,G} (147-2610, default 2610): +5G

Command (m for help): w

通知内核重新读取硬盘分区表

命令:partx -a /dev/sdb

命令:cat /proc/partitions  查看内核是否已经识别新的分区

③对分区格式化

命令:mke2fs -t ext4 /dev/sdb1

命令:mke2fs -t ext4 /dev/sdb3

命令:mkswap /dev/sdb2

挂载新磁盘

命令:mkdir -p /test/boot

命令:mount /dev/sdb1 /test/boot

⑤安装grub并明确告诉根在何处

命令:grub-install  --root-directory=/test   /dev/sdb

为boot目录提供内核文件、initramfs

命令:cp /boot/vmlinuz-2.6.32-754.el6.x86_64  /test/boot/vmlinuz-test-1.0

命令:cp /boot/initramfs-2.6.32-754.el6.x86_64.img  /test/boot/initramfs-test-1.0.img

为boot目录提供grub配置文件

命令:vim /test/boot/grub/grub.conf

default=0

timeout=5

title CentOS-Test(Express)

   root(hd0,0)

   kernel /vmlinuz-test-1.0 ro root=/dev/sda3 selinux=0 init=/bin/bash

   initrd /initramfs-test-1.0.img

挂载sdb3

命令:mkdir /test/sysroot

命令:mount /dev/sdb3 /test/sysroot

命令:cd /test/sysroot

命令:mkdir -pv etc bin sbin lib lib64 dev proc sys tmp var usr home root mnt media

添加一个程序

命令:cp /bin/bash /test/sysroot/bin

命令:ldd /bin/bash

P.S. 基于动态编译的程序,还依赖于共享库文件

      ⑩根切换测试

命令:chroot /test/sysroot

      启动效果

      (2)破坏本机grub stage1,而后在救援模式下修复之

            a.破坏后不重启,修复方法1

            ①备份MBR

            命令:

grub-md5-crypt dd if=/dev/sda of=/root/mbr.bak count=1 bs=512

            ②破坏bootloader

            命令:

      dd if=/dev/zero of=/dev/sda bs=446 count=1

            ③修复

            命令:

      grub-install --root-directory=/ /dev/sda

            b.破坏后不重启,修复方法2

            命令:grub

            b.破坏后重启,修复方法

            ①破坏MBR

            dd if=/dev/zero of=/dev/sda bs=123 count=1

     

            ②重启

            ③加载系统安装光盘,进入救援模式(类似于WinPE)修复

     

            boot: linux rescue

            命令:chroot  /mnt/sysimage

            命令:grub-install  --root-directory=/ /dev/sda

命令:reboot

(3)为grub设备保护功能

            ①获取md5密码串

            命令:grub-md5-crypt

           

            ②配置/boot/grub/grub.conf

password --md5 $1$x6lH50$kuKxDqc.Qk3FNjesp9bx4/

            ③启动效果

     

参考资料:

①马哥随堂笔记

②《鸟哥的Linux私房菜-基础篇》

注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。

GRUB配置文件详解(/boot/grub2/grub.cfg、/etc/default/grub、/etc/grub.d/) 编辑。 阅读详情

相关推荐

Installing GRUB using grub-install

平时总是弄得grub出错进不来系统,给我来个grub-rescue,我用livecd的Ubuntu进入系统后,重新安装grub到mbr,方法如下: grub-install --boot-directory=/mnt/boot /dev/sda 其中的boot目录就是挂载的boot分区,如果没有boot分区,那就是根目录 下面是安装文档的原文: 3.1 Installing GRU

crazyleen专栏 2万+

GRUB(bootloader)引导流程 学习笔记

https://www.cnblogs.com/Link-Luck/p/9858869.html GRUB(bootloader)引导流程: GRUB,GRand Unified Bootlader ,是一个来自GUN项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核...

leakey_lg的博客 1483

GRUB2相关命令

当主机安装了多个操作系统(如 Windows + Linux 双系统),需要固定默认启动某个系统。:在 Ansible/Puppet 脚本中,需让服务器下次启动时进入特定模式(如单用户模式)。:新内核(如5.4.0-100)启动失败,需临时切换回旧内核(5.4.0-99)。系统安装了新内核,但希望继续使用旧内核作为默认选项(测试新内核稳定性时)。:系统因内核崩溃进入救援模式,修复后需临时指定一个稳定内核启动。:系统升级了新内核,需测试其稳定性,但不想永久修改默认启动项。

weixin_53389944的博客 1756

Bootloader和BIOS、uboot和grub和bootmgr的区别

  版权声明:本文章参考了《Bootloader和BIOS、Grub、uboot概念》。未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!! 1 Bootloader和BIOS 1.1 BIOS   BIOS(Basic Input Output System):基本输入输出系统。它是一组固化到计算机内主板上一个ROM芯片上的程序 ,保...

liao20081228的博客 1万+

GRUB(bootloader)

GRUBgrub legacy版本 (grub 0.x:grub(legacy) Centos 5,6)stage2及内核等通常放置于一个基本磁盘分区(boot分区)配置文件:/boot/grub/grub.conf grub legacy版本 (grub 0.x:grub(legacy) Centos 5,6) 要加载grub所在的磁盘时,会读取这个磁盘的MBR,同时会加载stage1stage1会尝试读取后扇区的stage1_5阶段, stage1_5阶段会帮助stage1中的bootloader识别s

我的LOG 579

Linux笔记2---grub

GRUB(Boot Loader) grub: GRand Unified Bootloader grub 0.x: grub legacy grub 1.x: grub2 grub legacy: stage1: mbr // 第一阶段 stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统 // 第1.5阶段 sta...

weixin_42974020的博客 1049

Grub 2:拯救你的 bootloader

Grub 2:拯救你的 bootloader 没有什么事情比 bootloader 坏掉更气人的了。充分发挥 Grub 2 的作用,让 bootloader 安分工作吧。 为什么这么说? Grub 2 是最受欢迎的 bootloader ,几乎用在所有 Linux 发行版上。 bootloader 是一个至关重要的软件,但是非常容易损坏。 Gru...

weixin_34246551的博客 149

GRUBGRUB2代码初步解析

初步解析GRUB2代码。

jiangwei0512的博客 7236

Ubuntu下Grub配置详解

1 Grub简介 1.1 GNU GRUB GNU GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序. GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数. GNU GRUB的前身为Grand Unified Boo...

humanof的专栏 4万+

GRUB, GRUB2 and GRUB4DOS

GRUB制作可引导光盘mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso  CDlinuxs mkisofs.sh#!/bin/sh## build CDlinux ISO image

digwtx的专栏 4400

Grub调试总结

最近在龙芯平台调研Grub的实现,在这过程中仔细研究了Grub的代码,就做个总结吧! 首先Grub在uefi上也是以一个Grub.efi的方式运行的,但是这个efi是放在操作系统下面的boot/EFI/下面的,uefi在运行过程总后期加载Grub的时候会去这个目录load这个Grub模块。load到内存之后,就开始执行。这里面不做详细的介绍是如何load以及如何运行的,这部分内容都在uefi中有源...

太初有道 6141

Linux GRUB配置

linux grub2配置介绍

czw 4871

Linux GRUB介绍与设置

GNU GRUB(GNU GRand Unified Bootloader,简称“GRUB”)是一个来自GNU项目的启动引导程序. 这篇文件简要介绍了什么是GRUB以及GRUB工具名,以及自定义GRUB菜单项的方法。

Keep Moving~ 8026

GRUB2的配置方法【涉及/etc/default/grub,/etc/grub.d/*】

介绍    GRUB 2 通过运行/etc/grub.d/folder  目录下的脚本来 建立配置文件 (grub.cfg) ,并且/etc/default/grub这个文件也可以配置。update-grub命令(手动运行,或更新内核的时候会被执行)  可以自动更新grub.cfg .这个命令会激活上面的脚本,并且会寻找系统中存在的操作系统和内核。一旦发现操作系统或内核,那么它们会被加入到 G

duanlove(技术路途)专栏 2万+

Grub编译与调试

界面, 然后回车便可以启动内核, 但是倘若内核无法正常启动, 我们需要加串口调试, 就需要我们按。中可用的选项中输出. 所以建议增加串口后使用, 否则屏幕不支持回翻也挺麻烦的.的情况, 这时, 我们可以稍微背下来两条命令, 这两条也就是。后进入下图, 我们可以将光标通过上下左右按键, 移动至。是高级选项, 通常包含一些恢复模式的选项, 第四项是。可以看到, 界面最下面仍然有一些文字, 告诉我们按下。如图, GRUB界面下列出了几个选项, 其中第一项。通过按上下键选择选项, 按执行进入选项, 按。

Mxdon_on的博客 2349

linux: 探索 GRUB 配置的核心, 理解 /etc/default/grubgrub2.cfg 和 /etc/grub.d/

在 Linux 系统中,GRUB(GRand Unified Bootloader)是最常用的启动加载器之一。它负责在计算机启动时管理多个操作系统的引导过程。grub2.cfg,以及目录,帮助大家理解它们的功能、如何互动,以及如何安全地进行修改。

十年运维开发经验的王义杰在此分享自己的知识和经验 4659

grub 升级到 grub2

为什么80%的码农都做不了架构师?>>> ...

weixin_34128237的博客 1391

grub介绍

grub介绍什么是grubgrub的版本grub的安装grub配置文件grub命令如何进入grub命令模式通过grub命令引导操作系统 什么是grubGRUB 是一个引导加载程序,可以引导各种各样的操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。 grub的版本 目前,GRUB分成GRUB le...

weixin_41649658的博客 2179

开机进入grubgrub rescue怎么办

grub>root (hd0,0) ### 指定grub设定的分区,即内核所在分区 grub>setup (hd0,0) grub>kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root grub> initrd /initramfs-2.6.32-573.el6.x86_64.img grub>boot ### 第三条命令可以是kernel 或者linux,文件名可通过tab补全

niaooer的博客 4355
上一篇: CentOS系统启动流程
下一篇: Linux Kernel
Linux-Web
博客等级 码龄9年 28粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值