实验一为grub设置密码
-
先看一看grub是怎么样的
grub有两个版本
grub: GRand Unified Bootloader
grub 0.x: grub legacy
grub 1.x: grub2
Note:grub 1.x是完全重写的只不过是保留grub 0.x的工作机制。
2.利用grub自带命令生成密码grub-md5-crypt
3.把密码保存在配置文件:/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。
这个要通过grub进行引导进入系统需要的密码,也是之前在配置文件设置的。
实验二忘记root的密码 ,就可以用grub来进行改密码
这进入单用户模式进行修改密码
进入单用户模式:
(1) 编辑grub菜单(选定要编辑的title,而后使用e命令);
(2) 在选定的kernel后附加
1, s, S或single都可以;
(3) 在kernel所在行,键入“b”命令;它就会以root身份直接登入,改密码就只需要passwd
实验三.安装grub和修复grub
已经知道进入单用户和配置文件,那也得知道这么安装着个grub。
先对grub进行破坏
grub破坏后,硬盘就没有识别到,直接识别成光盘。
(1) grub-install
grub-install –root-directory=ROOT /dev/DISK
(2) 采用光盘救援模式
grub
grub> root (hd#,#)
grub> setup (hd#)
是要对网络接口进行配置,可以选择no,选择yes会进入以下界面
这是选择back,因为本次实验是对grub修复
选择continue
这里提示切换/,使用chroot /mnt/syscimage,因为grub启动是先会进入一个虚拟的根,然后在转到真实的/
下面就是修复grub
修复完毕。
示例四、制作grub
准备一块硬盘
可以看到系统已经加入了/dev/sdb
这时候就需要进行分区。我这是已经分好区了已经格式化过
安装grub并配置文件
在kernel的后面还需加上 selinux=0 init=/bin/bash
分区完毕就需要进行挂载。并创建一个文件系统所需要的文件夹。
为什么只挂载/dev/sdb3 不挂载2和1呢 因为/dev/sdb1是作为grub /dev/sdb2 是swap分区
查看所依赖的库文件
复制库文件
这是建立好的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所在的分区上的文件系统;
stage2:磁盘分区(/boot/grub/)
配置文件:/boot/grub/grub.conf <– /etc/grub.conf
stage2及内核等通常放置于一个基本磁盘分区;
功用:
(1) 提供菜单、并提供交互式接口
e: 编辑模式,用于编辑菜单;
c: 命令模式,交互式接口;
(2) 加载用户选择的内核或操作系统
允许传递参数给内核
可隐藏此菜单
(3) 为菜单提供了保护机制
为编辑菜单进行认证
为启用内核或操作系统进行认证
如何识别设备:
(hd#,#)
hd#: 磁盘编号,用数字表示;从0开始编号
#: 分区编号,用数字表示; 从0开始编号
(hd0,0)
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: 引导启动选定的内核;
手动在grub命令行接口启动系统:
grub> root (hd#,#)
grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot
配置文件:/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命令
进入单用户模式:
(1) 编辑grub菜单(选定要编辑的title,而后使用e命令);
(2) 在选定的kernel后附加
1, s, S或single都可以;
(3) 在kernel所在行,键入“b”命令;
安装grub:
(1) grub-install
grub-install –root-directory=ROOT /dev/DISK
(2) grub
grub> root (hd#,#)
grub> setup (hd#)
grub从无到有:1.对硬盘进行分区并格式化 2.进行挂载 3.制作grub 4.生成根文件系统 5.拷贝对应的库文件 6.从内存中保存一下sync
原创文章,作者:N19_king,如若转载,请注明出处:http://www.178linux.com/17969