​从实验来了解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
下一篇 2016-06-09

相关推荐

  • 数据库的备份和恢复

    数据库的备份和恢复 一 (理论篇)、数据库备份与恢复基础 1、数据库的备份与恢复 备份:存储的数据副本; 原始数据:持续改变; 恢复:把副本应用到线上系统; 仅能恢复至备份操作时刻的数据状态; 时间点恢复: binary logs; 2、为什么备份? 灾难恢复: 硬件故障(冗余)、软件故障(bug)、自然灾害、黑客攻击、误操作、…&nb…

    2016-11-22
  • haproxy 简单实现80转后端8000

    一,安装 yum -y install gcc automake autoconf libtool make tar -xzf haproxy-1.6.8 cd haproxy-1.6.8 make TARGET=linux2628 make install 二,编辑配置文件 Haproxy配置中分成五部分内容,当然这些组件不是必选的,可以根据需要选择作为配…

    Linux干货 2016-09-19
  • linux文本查找工具之locate、find

       linux文本查找工具之locate、find    一、文件查找分为两类:               1、非实时查找:locate   &n…

    Linux干货 2017-04-08
  • LNMP编译安装-week16

    1、源码编译安装LNMP架构环境; 系统: CentOS 7.2IP: 172.16.0.11版本: nginx-1.10.3 php-5.6.30 mysql-5.6.30 一.安装开发包组 ~]# yum -y groupinstall “Development Tools” “Server Platform Development” 二.编译安装ngi…

    2017-05-11
  • 网络协议端口号查询表

    TCP 0= ReservedTCP 1=TCP Port Service MultiplexerTCP 2=DeathTCP 5=Remote Job Entry,yoyoTCP 7=EchoTCP 11=SkunTCP 12=BomberTCP 16=SkunTCP 17=SkunTCP 18=消息传输协议,skunTCP 19=SkunTCP 20=F…

    Linux干货 2017-08-15
  • LAMP (php-fpm模式)部署出现的奇葩问题

    1. 安装环境:(cent6.5) yum install -y php php-devel httpd  php-fpm mysql 2. 修改配置文件 vim /etc/httpd/conf/http.conf 注释掉DocumentRoot vim /etc/httpd/conf.d/vhost.conf <VirtualHost *:…

    2017-04-10