一.系统启动流程
(一)启动流程
1、BIOS加电自检、检测硬件、决定启动介质、找到引导扇区1、BIOS加电自检、检测硬件、决定启动介质、找到引导扇区
2、读取并且执行第一个开机设备中的MBR的bootloader(grub程序)
3、依据bootloader设置去加载内核和驱动
4、内核启动init进程
5、系统初始化
6、init找到/etc/inittab文件,决定系统的运行级别(X)
7、触发相应的运行级别的事件,运行/etc/rcX.d下的脚本
8、执行/etc/rc.local文件,来到登录界面
9、输入用户名密码,进入到系统中
dd命令:dd 的主要选项:
指定数字的地方若以下列字符结尾乘以相应的数字:
b=512, c=1, k=1024, w=2, xm=number m
if=file #输入文件名,缺省为标准输入。
of=file #输出文件名,缺省为标准输出。
ibs=bytes #一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
obs=bytes #一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
bs=bytes #同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
cbs=bytes #一次转换 bytes 个字节,即转换缓冲区大小。
skip=blocks #从输入文件开头跳过 blocks 个块后再开始复制。
seek=blocks #从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。
count=blocks #仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
conv=conversion[,conversion...] #用指定的参数转换文件。
(二).修复MBR:
1.备份文件的方式:dd if=/dev/sda of=/loring/sda.mbr.bak bs=512 count=1
2.模拟扇区故障:
dd if=/dev/zero of=/dev/sda bs=512 count=1
3.恢复
dd if=tempdir/sda.mbr.bak of=/dev/sda bs=512 count=1
实验:
mkdir loring
mount /dev/sdb1 /loring
dd if=/dev/sda of=/loring/mbr.bak bs=512 count=1
dd if=/dev/zero of=/dev/sda bs=512 count=1
打开电源进入到bios里面,boot里面设定光盘启动
进入到修复模式
/mnt/sysimage(挂载点)
mkdir /backup
mount /dev/sdb1 /backup
dd if=/backup/mbr.bak of=/dev/sda bs=512 count=1
(三).grup故障修复
MBR中的grub坏掉了
grub.conf文件损坏或者丢失
(系统引导不了,停住,显示grup>提示符)
1.手动引导
2.进入救援模式,修复grup
配置文件:/boot/grub/grub.conf
cd /boot/grub mv grub.conf文件
1.root (hd0,0)
kernel (/vmlinuz-2.6.32... ro root=UUID#)
initrd /initra...
boot
进入到救援模式,默认会找到根分区,并挂载到/mnt/sysimage
chroot /mnt/sysimage
修复grub
BIOS(boot sequence)>MBR(bootloader,446)
kernel 在内存中解压,探测硬件
init
1、root密码
安装系统时候给root设置密码
破解root密码:
前提:能重启系统
进入单用户模式
2、grub密码
为了防止用户进入单用户模式修改root密码,怎么办呢?
给grub加上密码
1)明文密码 —— 修改grub配置文件
# vim /boot/grub/grub.conf
在timeout下面添加一行
---------------------------
password 123456
---------------------------
# reboot
重启之后,想要编辑grub进入单用户的话,需要提供grub的密码
按p:输入密码
必须正确输入grub的密码,然后才能编辑grub
2)密文密码
(1)生成加密后的字符串
# grub-md5-crypt
Password:
Retype password:
$1$r5htQ$IRUJY./85zdZT3a6JDmfv0 //加密后的字符串
(2)修改grub配置文件
# vim /boot/grub/grub.conf
password --md5 $1$r5htQ$IRUJY./85zdZT3a6JDmfv0 //修改password那行
3、破解grub密码
前提条件:手头要有光盘
需要进入救援模式
想要进入到救援模式,需要进入bios修改引导介质的优先级,让cdrom优先
虚拟机进入BIOS:按F2 真机进入BIOS:一般按(. del键)
将光盘移动到硬盘上面,按F10保存
选择救援已安装系统 Rescue
目前我们选的是本地光盘,以后可能选择URL,网络修复系统。
如果你救援的时候想和别人交流,那么就选择yes;否则我就选择No
你可以执行chroot /mnt/sysimage可以切换到真正的系统的根目录
修改grub配置文件,将password那行删除掉
bash-4.1# reboot
重启之后又可以进到单用户模式了。
4、BIOS密码
为了防止用户进入救援模式,给BIOS加密码
重启系统,按F2想要进入BIOS时候,
小总结:
1、如果破解root密码,需要进入单用户模式
2、防止进入单用户模式,给grub加密码
3、破解grub密码,需要进入救援模式
4、防止进入救援模式,给BIOS加密码
要想进入单用户模式的前提,需要能够重启系统
要想进入救援模式,要有光盘,而且能够进入BIOS修改引导介质的顺序