Linux-grub
grub 功能和组成
bootloader: 引导加载器,引导程序
- Windows: ntloader,仅是启动OS
- Linux:功能丰富,提供菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核
Linux的bootloader
- LILO:LInux LOader,早期的bootloader,功能单一
- GRUB: GRand Unified Bootloader, CentOS 5,6 GRUB 0.97: GRUB Legacy, CentOS 7 以后使用GRUB2.02
GRUB 启动阶段
- primary boot loader :
1.5 stage:MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统
- secondary boot loader :2nd stage,分区文件/boot/grub/
Centos6 grub安装
grub损坏,Linux就不能正常启动
需进入救援模式重新安装grub
安装grub的两种方法:
1、grub-install 安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到 DIR/boot 目录下
grub-install --root-directory=DIR /dev/DISK
1方法,救援模式下,进入光盘启动
执行以下命令,可修复grub,不包括grub.conf配置文件,此文件损坏,只能手动编写
# chroot /mnt/sysimage # grub-install /dev/sda # sync # exit # exit
2、
grub的命令行接口
help: 获取帮助列表 help KEYWORD: 详细帮助信息 find (hd#,#)/PATH/TO/SOMEFILE: root (hd#,#) kernel /PATH/TO/KERNEL_FILE: 设定本次启动的内核文件;额外还可添加许多内核支持使用的 cmdline参数 例如:max_loop=100 selinux=0 init=/path/to/init initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk boot: 引导启动选定的内核
grub legacy识别硬盘设备
(hd#,#) hd#: 磁盘编号,用数字表示;从0开始编号 #: 分区编号,用数字表示; 从0开始编号 示例: (hd0,0) 第一块硬盘,第一个分区
手动在grub命令行接口启动系统
grub> root (hd#,#) grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE grub> initrd /initramfs-VERSION-RELEASE.img grub> boot
grub legacy配置文件:/boot/grub/grub.conf
手动编写,参照红色标记
default=#: #设定默认启动的菜单项;落单项(title)编号从0开始
timeout=#: #指定菜单项等待选项选择的时长
splashimage=(hd#,#)/PATH/XPM_FILE:#菜单背景图片文件路径
password [--md5| --encrypt] STRING: #启动菜单编辑认证
hiddenmenu:#隐藏菜单
title TITLE:#定义菜单项“标题”, 可出现多次
root (hd#,#):#查找stage2及kernel文件所在设备分区;为grub的根
kernel /PATH/TO/VMLINUZ_FILE ro root=/dev/divce:#启动的内核
initrd /PATH/TO/INITRAMFS_FILE: #内核匹配的ramfs文件
password [--md5|--encrypted ] STRING: #启动选定的内核或操作系统时进行认证
grub加密生成grub口令
grub-md5-crypt
grub-crypt
破解root口令:
编辑grub菜单(选定要编辑的title,而后使用a 或 e 命令)
在选定的kernel后附加1, s, S,single 都可以进入单用户模式
在kernel所在行,键入“b”命令
分类:
Linux-系统应用-命令
标签:
Linux启动和内核管理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)