一、Linux引导过程


1.引导过程

(1)开机自检:根据主板BIOS对CPU、内存等进行检测,成功后根据启动顺序移动系统控制权
(2)MBR引导:根据硬盘第1个扇区中MBR(主引导记录)的设置,将系统控制权传给包含系统的分区,
		或者根据引导信息调用启动菜单(如GRUB)
(3)GRUB菜单:显示启动菜单用户选择,根据选项(或默认值)加载Linux内核文件,将控制权交于内核
(4)加载Linux内核:内核加载,掌控整个Linux系统运行过程;/boot存放内核文件
(5)init进程初始化:读取/sbin/init程序加载到内存中运行,完成一系列系统初始化,等待用户登录

2.Linux启动方式

(1)Centos 6:Upstart
(2)Centos 7:Systemd

二、运行级别


1.init进程

 内核第一个加载程序,PID(进程的身份标记)总为1
 RHEL 6采用Upstart启动方式,将初始化配置分散存放,以前全部存放在/etc/inittab配置文件中
配置文件 作用
/etc/inittab 配置默认运行级别
/etc/sysconfig/init 控制tty终端的开启数量、终端颜色方案
/etc/init/rcS.conf 加载rc.sysinit脚本,完成系统初始化任务
/etc/init/rc.conf 兼容脚本,负责各运行级别的调用处理
/etc/init/rcS-sulogin.conf 为单用户模式启动/sbin/sushell环境
/etc/init/control-alt-delete.conf 控制终端下的Ctrl+Alt+Del热键操作
/etc/init/start-ttys.conf 配置tty终端的开启数量、设备文件
/etc/init/tty.conf 控制tty终端的开启

2./etc/inittab配置文件

vim /etc/inittab
id:3:initdefault:
标识名:运行级别:动作:开机需执行命令
0:关机;不要设置为默认
1:单用户模式;一般用于维护或救援操作
2:多用户模式;不支持网络
3:完整的多用户模式;大多数使用
4:未定义
5:图形化
6:重启;不要设置为默认

3.运行级别控制

1.runlevel //查看当前系统运行级别
	N 3
	上次运行级别 当前运行级别
	N=从未切换运行级别
	S=与1效果一样,运行级别为1
2.init  <运行级别> :切换运行级别;一次生效

三、Linux服务控制


1.方式一

 service 服务名称 控制类型

2.方式二

 /etc/init.d/服务名称 控制类型

控制类型

  start:启动
  stop:停止
  restart:重启
  reload:重新加载配置文件
  status:查看服务状态
	````
**例**:
(1)service sshd start :启动sshd远程服务
(2)/etc/init.d/ntpd restart :重启ntpd时间同步服务
(3)/etc/init.d/ntpd status :查看ntpd服务状态;is running为正在运行、is stopped为停止状态
## 四、服务的自启动控制

-----


	1.ntsysv:交互式控制服务的自启动状态;批量控制较常见
		ntsysv --level 35 //运行级别35设置服务的自启动状态;如未使用--level选项则为当前运行级别设置
	2.chkconfig:非交互式控制服务的自启动状态;控制单个服务较常使用
		chkconfig --level 35 sshd { on | off }  //设置sshd服务在35运行级别为开启|禁用;如未使用--level选项则为当前运行级别设置
	3.chkconfig --list  //查看所有服务的自启动状态
	4.chkconfig --list sshd  //只查看sshd服务的自启动状态
## 五、故障恢复

-----


### 1.MBR故障
**(1)备份MBR**
**新建硬盘,并分区挂载到/hehe/目录下**
![](http://i2.51cto.com/images/blog/201806/22/87ea1b0a7964a49bc2b314b640f47915.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/e544daf335e71dd6373cd445d6e5b71e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/40c8f9f48faf35c6a06a4b7dde202123.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/bde69ac48916ef3732c4b697a91b3641.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/bec13d2598dbfc2e49f271381c6d859d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
```
dd if=/dev/sda of=/hehe/mbr.bak bs=512 count=1    //将系统磁盘头部的512字节MBR引导拷贝到/hehe/mbr.bak
```
![](http://i2.51cto.com/images/blog/201806/22/189d2c49c27bf7cf5eda62234248bf64.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
**(2)模拟故障**
```
dd if=/dev/zero of=/dev/sda bs=512 count=1     //使用/dev/zero文件覆盖掉/dev/sda的512字节头部MBR引导
```
![](http://i2.51cto.com/images/blog/201806/22/3c502189bc76d8a4e401a013e7ef3409.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
**(3)放入光盘,进入救援模式**
![](http://i2.51cto.com/images/blog/201806/22/33a46af1b36681d6555e8bcfd70f09c2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
**(4)还原**
```
mkdir /aa     //新建目录/aa
```
![](http://i2.51cto.com/images/blog/201806/22/2724e3912106eea1267dea5eacd1d731.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
```
mount /dev/sdb1 /aa     //挂载/dev/sdb1到/aa
```
```
dd if=/aa/mbr.bak of=/dev/sda bs=512 count=1       //将之前备份出的/aa/mbr.bak怼到/dev/sda头部的512字节
```
![](http://i2.51cto.com/images/blog/201806/22/d1bf2f2d334a32adbcf8fcfce4c64e6f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
**(5)验证结果,重启查看是否能启动系统**
![](http://i2.51cto.com/images/blog/201806/22/182fd4dcbb182a26e638221411486980.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
### 2.GRUB菜单
~~#Centos 7以上(Grub2)
#chroot /mnt/sysimage
#grub-mkconfig -o /boot/grub/grub.cfg~~
**Centos 6以下(Grub1)**
**(1)备份Grub文件**
```
cp /boot/grub/grub.conf /hehe/      //将grub配置文件拷贝到/hehe/
```
![](http://i2.51cto.com/images/blog/201806/22/ba10acc384510756fff7d08f946f3362.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
**(2)模拟故障**
```
rm -rf /boot/grub/grub.conf      //删除grub引导
```
![](http://i2.51cto.com/images/blog/201806/22/901be77cff0fe4d9a9574443140e7938.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
**(3)放入光盘,进入救援模式**
**(4)还原**
```
chroot /mnt/sysimage			//切换到原系统环境
```
#如不使用chroot
```
{
mkdir /aaa
mount /dev/sdb1 /aaa
cp /aaa/grub.conf /mnt/sysimage/boot/grub/
exit
}
```
```
mount /dev/sdb1 /hehe       //挂载/dev/sdb1到/hehe
```
```
cp /hehe/grub.conf /boot/grub/          //将之前拷贝出的文件还原到/boot/grub
```
![](http://i2.51cto.com/images/blog/201806/22/2ef0030ee4e8d316b1cd109ff952fba7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
```
exit
reboot        //退出重启系统
```
![](http://i2.51cto.com/images/blog/201806/22/09ccbca922ae552ca66fc76d4736b978.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/de39b479e2555b61fbea2da43c294964.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
### 3.testdisk 	<要恢复的磁盘>	//Linux下恢复分区表命令
### 4.root用户密码恢复
```
(1)GRUB菜单 --> e --> kernel一行按e --> 空格1 --> 回车 --> b      //进入单用户
```
![](http://i2.51cto.com/images/blog/201806/22/c6c917e13cfa66666ae77a8f09469057.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/3cad0b90593d475e2d506313555d8784.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/b08e395a8054834bb962e406aed196ac.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/fbcfc00e07181fcdab30e85ecb821a05.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201806/22/142a687ae7f70e997cfd91e51feefa13.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
```
(2)passwd root 或 echo "密码" | passwd --stdin root       //重置密码
```
![](http://i2.51cto.com/images/blog/201806/22/03e4809d932635a6581edd0f38869b48.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)