【学了就忘Linux启动引导与修复】— 4.grub加密

【学了就忘Linux启动引导与修复】— 4.grub加密,第1张

上篇文章说了,系统在开机的时候,有一个5秒的读秒时间,方便你进入到 grub 界面中。如下图:

此时我们按下Enter键,就可以进入到 grub 界面中。如下图:

在选择框的正下方可以看到有几行提示:

可以看到提示,按e键就能编辑 grub 配置文件中的启动选项内容。

按e键,如下图:

提示再按e键可直接修改内容。

而grub加密,就是在图2的状态时,需要先输入我们设定的密码,才能按e键编辑系统启动参数。也就是说给grub设置一个密码, 避免像上边那样直接进入grub,并编辑其中的系统启动参数。

[root@localhost ~ ] # grub-md5-crypt

Pas sword:

Retype pas sword:

生成MD5加密密码字符串

Y84LB1$8tMY2PibScmu0Cc8z8U351

一定在 timeout 属性之后,在 splashimage 属性之前,添加 password 选项,一定是这个顺序,放在其他位置不生效。如下:

重启系统后,我们发现进入到 grub 界面中,下面的提示,原来的e键变成了p键。

我们再按e键都是没有反应的,按p键就会让你输入密码,不输入密码你就不能编辑grub的配置文件。如下图:

输入后按Enter键,才进入到可编辑的 grub 界面中,e键提示又出来了。如下图:

当你在图4的时候,就算你不知道密码,直接按Enter键,系统是可以直接启动的。所以说grub加密是对grub配置文件的编译进行了加密,而不是对系统的启动进行加密。

如果我想启动CentOS系统时,既需要grub的整体加密,又需要系统启动时输入正确的grub加密密码,才能正常启动。那应该怎么做呢?

很简单,方法如下:在grub的 /boot/grub/grub.conf 配置文件中,在title字段中加入lock,代表锁死,如果不输入正确的grub密码,系统是不能启动的。如下图:

lock这个属性千万不要添加,如果添加了lock属性在grub的配置文件中,当你在图4的时候,直接按Enter键,是不能直接进入系统的,会报错,如下图:

提示错误32,按任意键继续,就又回来了。

在系统启动的时候,进入到grub启动引导,此时系统还没有启动完成,网卡是还没加载生效,所以远程终端是连接不上服务器的,这时候就只能拿键盘做本地输入。但现在我们的服务器一般都放在机房或者远端,你会十分的不方便。所以坚决不能用lock锁定grub的配置文件。

Linux引导文件可以引导WINPE。

在PE打开BOOTICE(一般PE都会带吧),然后选择你的硬盘,接着点“主引导记录”,d出一个框,如果是XP,就选Windows NT 5.X默认引导,如果是WIN7,就选Windows NT 6.X默认引导。

当ControlSet的镜像CurrentControlSet被加载时,NTLDR将把控制权传递给NTOSKRNL.EXE,至此引导过程将结束。

加载内核:

在加载内核阶段中,NTLDR将加载NTOKRNL.EXE内核程序,然后NTLDR将加载硬件抽象层(HAL.dll),接着系统将加载注册表中的“HKEY_MACHINESystem”键值,这时NTLDR将读取“HKEY_MACHINESystemselect”键值来决定哪一个ControlSet将被加载。

所加载的ControlSet将包含设备的驱动程序以及需要加载的服务。再接着NTLDR加载注册表“HKEY_LOCAL_MACHINESystemservice”下的start键值为0的底层设备驱动。

Linux系统启动的大致过程

Linux *** 作系统是基于UNIX *** 作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日。下面我准备了关于Linux系统启动的大致过程,提供给大家参考!

第一阶段:BIOS启动引导阶段

在该过程中实现硬件的.初始化以及查找启动介质

从MBR中装载启动引导管理器(GRUB)并运行该启动引导管理

第二阶段:GRUB启动引导阶段

装载stage1

装载stage1.5

装载stage2

读取/boot/grub.conf文件并显示启动菜单

装载所选的kernel和initrd文件到内存中

第三阶段:内核阶段:

运行内核启动参数

解压initrd文件并挂载initd文件系统,装载必须的驱动

挂载根文件系统

第四阶段:Sys V init初始化阶段:

启动/sbin/init程序

运行rc.sysinit脚本,设置系统环境,启动swap分区,检查和挂载文件系统

读取/etc/inittab文件,运行在/et/rc.d/rc<#>.d中定义的不同运行级别的服务初始化脚本

打开字符终端1-6号控制台/打开图形显示管理的7号控制台

同时在上述过程中各阶段所需要读取的文件和 *** 作的对象:

BIOS启动引导阶段 GRUB启动引导阶段 内核阶段 /init/sysinit阶段

====================================================================================

None /boot/grub/grub.conf /boot/vmlinuz- /etc/rc.d/rc.sysinit

/boot/grub/stage1_5 /boot/initrd- /etc/inittab

/boot/grub/stage2 /etc/rc.d/rc<#>.d

/etc/rc.d/init.d/*


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8513369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存