目录
一、linux 系统引导过程
1.1、引导过程总览
1.2、系统初始化进程 (centos 6和7 的区别)
1.2.1、centos 6 的引导过程 init 进程
1.2.2、centos 7(systemd进程)
二、MBR、GRUB菜单、忘记密码故障修复
2.1、修复MBR扇区故障
模拟故障
重启,进入急救模式
数据恢复操作
2.2、GRUB的故障恢复
模拟故障
重启、进入急救模式
进行故障恢复
2.3、忘记密码的故障恢复
重启、进入急救模式
修改密码操作
三、系统服务控制和运行级别
3.1、系统服务控制
3.2、系统的运行级别
四、优化启动过程
五、扩展
一、linux 系统引导过程
1.1、引导过程总览
开机自检:检测出第一个能够引导系统的设备
MBR 引导:运行放在MBR扇区里的启动GRUB引导程序
GRUB 菜单:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
加载 Linux 内核:把内核和镜像文件系统加载到内存中
init 进程初始化:加载硬件驱动程序,内核把init进程加载到内存中运行
1.2、系统初始化进程 (centos 6和7 的区别)
1.2.1、centos 6 的引导过程 init 进程
1. 加载BIOS的硬件信息,获取第一个启动设备
2. 读取第一个启动设备MBR的引导加载程序(grub)的启动信息
3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
4. 核心执行init程序,并获取默认的运行信息
5. init程序执行/etc/rc.d/rc.sysinit文件,重新挂载根文件系统
6. 启动核心的外挂模块
7. init执行运行的各个批处理文件(scripts)
8. init执行/etc/rc.d/rc.local
9. 执行/bin/login程序,等待用户登录
10. 登录之后开始以Shell控制主机
1.2.2、centos 7(systemd进程)
1. UEFi 或 BIOS 初始化,运行 POST 开机自检
2. 选择启动设备
3. 引导装载程序, centos7 是 grub2
4. 加载装载程序的配置文件:/etc/grub.d/
5. 加载内核选项
6. 加载 initramfs 初始化伪文件系统
7. 内核初始化,centos7 使用 systemd 代替 init
8. 执行 initrd.target 所有单元,包括挂载/etc/fstab
9. 从 initramfs 根文件系统切换到磁盘根目录
10. systemd 执行默认 target 配置,配置文件/etc/systemd/system/default.target
11. systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统
12. systemd 启动 multi-user.target 下的本机与服务器服务 init 3
13. systemd 执行 multi-user.target 下的/etc/rc.d/rc.local
14. Systemd 执行 multi-user.target 下的 getty.target 及登录服务
15. systemd 执行 graphical 需要的服务 init 5
二、MBR、GRUB菜单、忘记密码故障修复
2.1、修复MBR扇区故障
MBR位于第一块硬盘( /dev/sda) 的第一个物理扇区处,总共512字节
mount /dev/sdb1 /mnt ##挂载
dd if=/dev/sda of=/mnt/sda.bak bs=512 count=1 ##将sda中的文件备份到mnt下的sda.bak
模拟故障
dd if=/dev/zero of=/dev/sda bs=512 count=1 ##利用/dev/zero将/dev/sda里的内容覆盖
重启,进入急救模式
init 6 ##重启
选择 Troubleshooting
进入 Rescue a centos system ##急救模式
写入1进入”安全模式“ 回车
数据恢复操作
mkdir /backupdir ##创建一个用来挂载目录
mount /dev/sdb1 /backupdir ##将之前备份的盘挂载到sdabak上
dd if=/backupdir/sda.bak of=/dev/sda bs=512 count=1
##将备份的完整的MBR引导数据覆盖到sda
exit ##退出安全模式,系统将会重启
2.2、GRUB的故障恢复
模拟故障
重启、进入急救模式
进行故障恢复
chroot /mnt/sysimage ##加载光盘镜像,切换到系统根环境
grub2-install /dev/sda
##重新将GRUB引导程序安装到第一块盘的MBR扇区,如果有多个分区可省略
grub2-mkconfig -o /boot/grub2/grub.cfg ##重新构建GRUB菜单的配置文件
exit ##退出chroot
reboot ##再重启
2.3、忘记密码的故障恢复
重启、进入急救模式
init 6 或者 reboot
进入下面的界面后要按c
按c进入下面的模式
exit ##输入exit进入下图模式
修改密码操作
chroot /mnt/sysimage ##加载光盘镜像,切换到系统根环境
passwd root ##修改root密码
exit ##退出系统根环境
init 6 ##重启
三、系统服务控制和运行级别
3.1、系统服务控制
systemctl 控制类型 服务名称
控制类型
start:启动
stop:停止
restart:重新启动
reload:重新加载
status:查看服务状态
3.2、系统的运行级别
显示结果中的两个字符分别表示切换前的目标、当前的目标。若之前尚未切换过运行级别,则第 1 列将显示“N”
[root@localhost ~]# runlevel
3 5
查看系统默认的运行级别
systemctl get -default #查看当前模式
设置永久运行级别
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
或者:systemctl set -default multi-user.target
切换为视图模式
systemctl isolate multi-user.target 或 init 3
systemctl isolate graphical.target 或init 5
扩展:
永久修改主机名
hostnamectl set-hostname newname
查看主机名的状态
hostnamectl status
设置系统语言为中文
localectl set-locale LANG=zh_CN.utf8
查看当前系统使用的语言
localectl [status ]
四、优化启动过程
systemctl 控制选项 服务名称
enable:开机自动启动。
disable:开机自动关闭。
is-enable:查看开机启动状态。systemctl list-unit-files --type=service ##查看所有已经激活的系统服务
systemctl list-unit-files |grep enabled ##查看所有开机自启动的服务器
五、扩展
chkconfig --list [服务名称] ##查看服务列表
chkconfig --add 服务名称
chkconfig --level 级别列表服务名on/off
chkconfig --add httpd
chkconfig --level 35 httpd on## --level x:x为运行级别。默认情况下,on和off开关只对运行级2,3,4,5有效,reset可以对所有运行级有效。
on、off、reset:用于改变service的启动信息。 on表示开启,off表示关闭,reset表示重置。
运行级别:
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动