千家信息网

学习笔记之grub应用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,GRUB(Boot Loader):基本应用grub: GRand Unified Bootloader版本:grub 0.x: grub legacy传统grub版本grub 1.x: grub2以
千家信息网最后更新 2026年11月02日学习笔记之grub应用

GRUB(Boot Loader):基本应用

grub: GRand Unified Bootloader

版本:grub 0.x: grub legacy传统grub版本

grub 1.x: grub2

以centos6为例;

grub是安装在MBR中的

grub legacy:

stage1: mbr

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

stage2:存放于磁盘分区(/boot/grub/)


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

当系统启动时,如果要加载grub所在的磁盘时,会读取磁盘上的MBR,从此能加载到stage1,stage1加载以后,它会尝试去读取随后扇区的stage1_5,从而之后会读到驱动stage2的磁盘分区了。

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

grub(或stage2)功用:

(1) 提供菜单、并提供交互式接口

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

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

(2) 加载用户选择的内核或操作系统

允许传递参数给内核

可隐藏此菜单

(3) 为菜单提供了保护机制

为编辑菜单进行认证

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


grub如何识别设备:

(hd#,#)

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

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


(hd0,0)


开机时的一个交互界面,敲c可以进入grub命令行模式

grub的命令行接口中的常用命令介绍

help: 获取帮助列表

help KEYWORD: 详细帮助信息

find (hd#,#)/PATH/TO/SOMEFILE:(在磁盘)查找某文件

root (hd#,#):把哪一个磁盘分区设置为grub的根设备

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

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

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

boot: 引导启动选定的内核;


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

grub> root (hd#,#)

grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE (指定内核版本和指定根所在的目录,这里必须注意root必须是你根所在的设备的分区的文件,可以通过df命令查看)

grub> initrd /initramfs-VERSION-RELEASE.img

grub> boot


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

配置项:

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

timeout=#:指定菜单项等待选项选择的时长;(如果用户选择时间超过5秒就自己动选择了)

splashp_w_picpath=(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命令:帮我们生成对应要保护的密码串


进入单用户模式步骤:

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

(2) 移动菜单到kernel项,在选定的kernel后附加

1, s, S或single都可以;之后回车回到菜单项

(3) 在kernel所在行,键入(点击)"b命令";

系统损坏之后,在没有重启的时候可以按照下面的方法来修复

安装grub:

(1) grub-install:安装grub命令grub-install - install GRUB on your drive

grub-install [OPTION] install_device

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

系统没重启修复使用下面的:

(2) grub

grub> root (hd#,#)###此方法必须实现存在有一个grub目录

grub> setup (hd#)

创建一个磁盘,提供一个可以单独运行bash的系统

1、首先添加一块磁盘,并分区创建文件系统,这里设置为/dev/sdb1(做boot和安装grub用),/dev/sdb2(作为swap分区),/dev/sdb3(放根)。

2、安装grub

[root@localhost ~]# mkdir /mnt/boot

[root@localhost ~]# mount /dev/sdb1 /mnt/boot

[root@localhost ~]# ls /mnt/boot

lost+found

[root@localhost ~]# grub-install --root-directory=/mnt /dev/sdb

##安装grub并指明根所在目录

Probing devices to guess BIOS drives. This may take a long time.

Installation finished. No error reported.

This is the contents of the device map /mnt/boot/grub/device.map.

Check if this is correct or not. If any of the lines is incorrect,

fix it and re-run the script `grub-install'.


(fd0) /dev/fd0

(hd0) /dev/sda

(hd1) /dev/sdb

[root@localhost ~]# ls /mnt

boot sysroot

[root@localhost ~]# ls /mnt/boot

grub lost+found

###显示已经成功安装grub

[root@localhost ~]# ls /mnt/boot/grub/

device.map iso9660_stage1_5 stage1 xfs_stage1_5

e2fs_stage1_5 jfs_stage1_5 stage2

fat_stage1_5 minix_stage1_5 ufs2_stage1_5

ffs_stage1_5 reiserfs_stage1_5 vstafs_stage1_5

[root@localhost ~]# cp /boot/vmlinuz-2.6.32-573.el6.x86_64 /mnt/boot/vmlinuz

###复制内核

[root@localhost ~]# cp /boot/initramfs-2.6.32-573.el6.x86_64.img /mnt/boot/initramfs.img

[root@localhost ~]# vim /mnt/boot/grub/grub.conf

default=0

timeout=5

title Centos (express)

root (hd0,0)##此处在新建的系统中识别为第一块磁盘的第一分区

kernel /vmlinuz ro root=/dev/sda3

###此处也一样用的是sda3而非sdb3,对新系统来说它就是磁盘的第三分区

initrd /initramfs.img

#####编辑grub配置文件

##以上为grub配置阶段,下面为创建根文件


[root@localhost ~]# mkdir /mnt/sysroot

[root@localhost ~]# ls /mnt

boot sysroot

[root@localhost ~]# mount /dev/sdb3 /mnt/sysroot

#####挂载分区sdb3,将它作为根文件放的位置

[root@localhost ~]# ls /mnt/sysroot

lost+found

[root@localhost ~]# cd /mnt/sysroot

[root@localhost sysroot]# ls

lost+found

[root@localhost sysroot]# mkdir -pv etc bin sbin lib lib64 dev proc sys tmp var usr home root mnt media

##给根下创建必要的目录

mkdir: created directory `etc'

mkdir: created directory `bin'

mkdir: created directory `sbin'

mkdir: created directory `lib'

mkdir: created directory `lib64'

mkdir: created directory `dev'

mkdir: created directory `proc'

mkdir: created directory `sys'

mkdir: created directory `tmp'

mkdir: created directory `var'

mkdir: created directory `usr'

mkdir: created directory `home'

mkdir: created directory `root'

mkdir: created directory `mnt'

mkdir: created directory `media'

[root@localhost sysroot]# ls

bin etc lib lost+found mnt root sys usr

dev home lib64 media proc sbin tmp var

###此时文件中没有程序,下面我们将bash复制进来作为init来启动

[root@localhost sysroot]# cp /bin/bash /mnt/sysroot/bin/

[root@localhost sysroot]# ldd /bin/bash

linux-vdso.so.1 => (0x00007ffcb40d4000)

libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003d61800000)

libdl.so.2 => /lib64/libdl.so.2 (0x0000003d5ac00000)

libc.so.6 => /lib64/libc.so.6 (0x0000003d5b000000)

[root@localhost sysroot]# cp /lib64/libtinfo.so.5 /mnt/sysroot/lib64

[root@localhost sysroot]# cp /lib64/libdl.so.2 /mnt/sysroot/lib64

[root@localhost sysroot]# cp /lib64/libc.so.6 /mnt/sysroot/lib64

[root@localhost sysroot]# cp /lib64/ld-linux-x86-64.so.2 /mnt/sysroot/lib64

####要将bash所依赖的都复制到相应目录

[root@localhost sysroot]# chroot /mnt/sysroot

bash-4.1#

###检测根系统

##配置根已经成功

一个简单的系统就配置完成了,在之后创建一个虚拟机,将该磁盘装载上面就可以了,但在同时使用手动启动的时候,要在grub菜单项中编辑kernel选项在init前面添加selinux=0之后回车退回菜单项敲击"b命令"就可以启动了。

注:这里面没有任何命令,要使用命令则需另外复制相关文件到系统中




菜单 文件 命令 系统 内核 磁盘 所在 配置 目录 认证 接口 模式 设备 选择 操作系统 版本 面的 帮助 成功 交互式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳互联网科技公司 紫鲸互联网科技 银优互联网科技有限公司 善班互联网科技有限公司 融势互联网科技 友谊互联网络科技 互联网科技咨询 美国互联网前沿科技 互联网汽车科技小镇 互联网科技博主是什么意思 福州新华互联网科技学校 知乎 千方科技属于互联网企业吗 青岛科技大学互联网大赛研究生 互联网科技商业 佛山市拉法互联网科技有限公司 高科技互联网发展前景如何 黑科技 体验场景 互联网大会 宁波跨境商互联网科技有限公司 承德科技产业互联网平台 每日互联网科技新闻 南京欣网互联网络科技有限公司 苏州找大状互联网科技有限公司 A股互联网金融科技公司 科技与互联网发展 世界互联网科技公司市值排名 广州市恰铎互联网科技有限公司 中天科技中国工业互联网 张召忠谈中国互联网科技 互联网科技创业计划的风险分析 广东猫王互联网科技有限公司电话
0