​从实验来了解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

相关推荐

  • Linux网络管理

                          Linux网络管理   本章内容: 网络概念 OSI七层模型 网络设备 TCP/IP IP地址 配置网络 实现网络组 测试网络 网络工具   网络用户应用程序: WEB浏览器(…

    系统运维 2016-09-12
  • 用户管理和组管理

         Linux是一个多用户多任务的系统 ,因此学习用户管理和组管理,对我们工作和学习有很大的帮助。用户是你登录这个操作系统的凭证,因此用户的创建和修改,删除是用户管理的基本工作,所以你掌握这些,对你的工作有很好的帮助。 用户账号管理 /etc/passwd username:x: UId:gid:comment:…

    Linux干货 2016-08-10
  • OpenSSH

    ssh: secure shell, protocol, 22/tcp, 安全的远程登录 OpenSSH: ssh协议的开源实现; dropbear:另一个开源实现;  SSH协议版本 v1: 基于CRC-32做MAC,不安全;man-in-middle v2:双方主机协议选择安全的MAC方式 基于DH算法做密钥交换,基于RSA或DSA算法实现身份…

    Linux干货 2015-06-21
  • 第六周作业

    请详细总结vim编辑器的使用 模式化的编辑器 基本模式: 编辑模式,命令模式 输入模式 末行模式: 内置的命令行接口; 打开文件: # vim [options] [file ..] +#:打开文件后,直接让光标处于第#行的行首; +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的首; 模式转换: 编辑模式:默认模式 编辑模式 …

    Linux干货 2017-03-21
  • 7 文件系统权限(二):权限

    rwx, chmod, chgrp, chown, SUID, SGID, Sticky, chattr, lsattr, umask, ACL, setfacl, getfacl 权限 假设这样几个场景:     1) A用户在/testdir目录中创建了A.txt文件,B用户是否可以删除、修改、移动、重命…

    Linux干货 2016-08-19
  • Linux创建CA和申请认证

    Linux创建CA和申请认证 背景: 在学习Linux运维中,学习到了CA的创建和申请认证,为了加深对CA的理解,这里做一个创建CA和申请认证的实验并记录下来供以后回顾。 介绍: 什么是CA认证? 电子商务认证授权机构(CA, Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任…

    2017-09-09