​从实验来了解grub

实验一为grub设置密码

  1. 先看一看grub是怎么样的

1465430254911174.jpg

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

1465430969979206.jpg

3.把密码保存在配置文件:/boot/grub/grub.conf

1465431118996558.jpg

配置项:

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: 启动选定的内核或操作系统时进行认证;

1465431422397393.jpg1465431512177929.jpg

输入密码就会原先还没设置密码的grub。 

1465431698142983.jpg

这个要通过grub进行引导进入系统需要的密码,也是之前在配置文件设置的。

1465431845341007.jpg

实验二忘记root的密码 ,就可以用grub来进行改密码

这进入单用户模式进行修改密码

进入单用户模式:

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

1465432150199492.jpg

(2) 在选定的kernel后附加

1, s, S或single都可以;

1465432692208099.jpg

(3) 在kernel所在行,键入“b”命令;1465432745638074.jpg它就会以root身份直接登入,改密码就只需要passwd

1465432824748458.jpg

实验三.安装grub和修复grub

已经知道进入单用户和配置文件,那也得知道这么安装着个grub。

先对grub进行破坏

1465433546958196.jpg

grub破坏后,硬盘就没有识别到,直接识别成光盘。

1465433842868239.jpg

(1) grub-install

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

1465433637420190.jpg

(2) 采用光盘救援模式

grub

grub> root (hd#,#)

grub> setup (hd#)

1465434020356015.jpg

1465434639368063.jpg

1465434663571784.jpg1465434731287415.jpg

是要对网络接口进行配置,可以选择no,选择yes会进入以下界面

1465434749546604.jpg

这是选择back,因为本次实验是对grub修复

1465434779270987.jpg

1465434957432148.jpg

选择continue

1465434992803507.jpg

这里提示切换/,使用chroot /mnt/syscimage,因为grub启动是先会进入一个虚拟的根,然后在转到真实的/

1465435050782817.jpg

1465435075720917.jpg

1465435229282125.jpg

下面就是修复grub

1465435579684867.jpg1465435661333036.jpg

修复完毕。

示例四、制作grub

准备一块硬盘

1465435803305952.jpg

1465435962965280.jpg

可以看到系统已经加入了/dev/sdb 

这时候就需要进行分区。我这是已经分好区了已经格式化过

1465437575526434.jpg

安装grub并配置文件

1465441076416549.jpg

在kernel的后面还需加上 selinux=0 init=/bin/bash

分区完毕就需要进行挂载。并创建一个文件系统所需要的文件夹。1465439513365693.jpg

为什么只挂载/dev/sdb3 不挂载2和1呢  因为/dev/sdb1是作为grub  /dev/sdb2 是swap分区

查看所依赖的库文件

1465440919115619.jpg

复制库文件

1465440955569126.jpg

这是建立好的grub

1465441346139042.jpg

1465441291985196.jpg

总结

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

(0)
N19_kingN19_king
上一篇 2016-06-07 22:03
下一篇 2016-06-09 20:23

相关推荐

  • 1019作业

    1019作业 柴震 软连接 硬连接 软连接和硬链接的区别 属性与定义: 硬链接:新建的文件是已经存在的文件的一个别名,所以创建时链接数递增;而且当原文件删除时,新建的链接文件仍然可以使用,因其直接对应于数据块。 软链接:也称为符号链接。新建的链接文件以“路径”的形式来表示另一个文件,其大小为指向的路径字符串的长度,不增加或减少目标文件in…

    Linux干货 2016-10-19
  • bash

    bash 配置文件   按生效范围划分:存在两类;     全局配置:            /etc/profile       &nbs…

    Linux干货 2015-04-15
  • linux发行版介绍及其哲学思想

    Linux是一种自由和开源的unix-like操作系统。目前运用领域最广泛、使用人数最多的操作系统。该操作系统的内核是Linus Torvalds在1991年10月5日首次发布。是一个多任务,多用户的操作系统,广泛应用在服务器,手机,平板电脑,电视,电子游戏等领域,我们生活中随处都可以见到linux身影。 Linux诞生 1991 年,在芬兰,赫尔辛基大学的…

    2017-09-16
  • HAproxy对wordpress的代理

    一,实验环境 网络拓扑结构 Web2,master是centos7.3 Web1,backup是centos6.8 客服端的window主机首win7 所有的主机通过switch相连,处于172.18.0.0/16的网段中 二,安装的软件 使用wordpress版本4.3.1 Web1安装httpd,php,php-mysql Web2安装nfs-utils…

    Linux干货 2017-05-17
  • 博客作业网络班22期+第4周(8.29-9.4)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 #  ls /home/tuser1 || mkdir /home/tuser1 && cp -R /etc/skel/*  /home/tuser1 && ch…

    Linux干货 2016-09-07
  • 马哥教育网络班21期-第五周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep -E "^[[::space]]\+.*" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;…

    Linux干货 2016-08-08