grub应用

本文详细介绍了GRUB的组成部分,包括stage1、stage1_5和stage2的功能,并探讨了如何在GRUB中设置保护功能,如密码加密。此外,还通过实例展示了如何在新增硬盘上配置GRUB以运行单独的bash系统。当GRUB stage1遭到破坏时,文章提供了三种修复方法:使用grub-install命令、grub命令和救援模式。通过这些实践,读者将深入理解GRUB的工作原理和维护技巧。
摘要由CSDN通过智能技术生成

一.grub

1.grub legacy

1.在BIOS读取相关的有引导加载器的设备之后,接下来就要去启动的设备中的MBR读取Boot Loader,由其提供一个菜单,加载内核。

2.grub流程:
1)stage1:运行boot loader主程序,这个程序需要被安装在MBR中,即0扇区的446bytes中,
2)stage1_5:位于mbr之后的山区,让stage1中的bootloader能识别stage2所在分区的文件系统
3)stage2:通过bootloader加载所有配置文件及相关的环境参数信息

[root@kasumi rc5.d]# cd
[root@kasumi ~]# ls /boot/grub/
device.map     ffs_stage1_5      jfs_stage1_5    reiserfs_stage1_5  stage2           xfs_stage1_5
e2fs_stage1_5  grub.conf         menu.lst        splash.xpm.gz      ufs2_stage1_5
fat_stage1_5   iso9660_stage1_5  minix_stage1_5  stage1             vstafs_stage1_5
grub配置文件
1./boot/grub/grub.conf
2./etc/grub.conf

ps:若根分区未使用逻辑卷,boot可以放在根分区上。一般将boot放在不同分区上是为了实现根分区实现复杂化。因为boot一般并不大,并不会装载lvm,软raid等复杂的驱动程序,所以stage2及内核通常放在基本磁盘分区上。

3.grub功能:
1)提供菜单,并提供交互式接口

e:编辑模式,用于编辑菜单
c:命令模式,交互式接口

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

1.允许传递参数给内核
2.可隐藏此菜单

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

1.为编辑菜单进行认证
2.未启用内核或操作系统进行认证

4.识别相关设备:(hd#,#)
1)hd#:磁盘编号,用数字表示,从0开始编号
2)#:分区编号,用数字表示,从0开始编号
3)(hd0,0):表示第一块磁盘上的第一个分区

5.grub的命令行接口:

1.help:获取帮助列表
2.help KEYWORD:详细帮助信息
3.find:查找相关文件(hd#,#)/path/file
4.root:设置根目录(hd#,#)
5.kernel /path/to/kernel_file:设定本次启动时用到的内核文件,额外可以添加许多内核支持使用的cmdline参数
   1)例如:init=/path/to/init,selinux=0
6.initrd  /path/to/initramfs_file:设定为选定的内核提供额外文件的ramdisk
7.boot:引导启动选定的内核

6.手动在grub命令行接口启动系统:
1)进入grub菜单
在这里插入图片描述
2)进入命令行接口
在这里插入图片描述
3)输入相关命令

1.设定临时根目录为Boot:root (hd0,0)
2.选定指定启动内核:kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda2
3. 设定为选定内核提供额外文件的ramdisk:initrd initramfs-2.6.32-696.el6.x86_64.img
4. 启动选定内核:boot
ps:kernel命令中root=/dev/DEVICE,要根据实际根目录做出调整

在这里插入图片描述

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

配置项
1.default=#:设定默认启动的菜单项,其编号从0开始
2.timeout=#:指定菜单项等待选项选择的时长
3.splashimage=(hd#,#)PATH/TO/XPM_PIC_FILE:指明grub菜单背景图片文件路径
4.hiddenmenu:隐藏菜单
5.password [--md5] STRING:菜单编辑认证
6.title:定义菜单项标题,可配置多个
   1)root (hd#,#):grub查找stage2及kernel文件所在设备分区,为grub的根
   2)kernel /path/to/kernel_file [内核参数]:启动的内核
   3)initrd /path/to/kernel_file:内核匹配的ramfs文件
   4)password [--md5] STRING:启动选定的内核或操作系统时进行认证
[root@kasumi ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0  
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-696.el6.x86_64)
	root (hd0,0)
	kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=f0cd8153-0a1b-4816-a703-4264ed1b4c20 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
	initrd /initramfs-2.6.32-696
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值