引导过程
开机自检BIOS:上电后,根据主板上bios的设置进行硬件的自检,它找到可引导的硬盘之后把控制器给MBR
MBR引导:硬盘启动时根据MBR的设置,将系统控制权传递给包含系统操作引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单,启动引导程序boot loader
GRUB菜单:系统控制权传递给GRUB 以后,将会显示提供用于选择,并根据-选项加载linux内核文件
加载内核:系统引导程序从本地中加载内核以及内存文件,其中包含启动的硬件内核模块,初始化脚本等
init进程初始化:在init中找到驱动程序硬件,然后皮带 从init执行
运行级别对应的systemed目标
init 0 :关机
init1:单用户
init 2:字符界面,不联网,多用户
init 3:字符界面,联网,多用户
init4:备用
init5: 图形化界面,多用户
init6:reboot 重启
runlevel :查看当前运行级别
配置文件
/etc/systemed/system/ 存放不同级别的开机自启服务
/run/systemed/system/ 系统执行过程中产生的服务脚本所在的目录
/usr/lib/systemed/system 每个服务最重要的脚本设置
优点
并行处理所有服务,加速开机流程
立即响应
服务依赖性的自我检测
向下兼容init服务脚本
定义所有服务作为服务单位unit,加入不同服务类型中
命令
systemctl status 查看服务状态
systemctl start 开启服务
systemctl stop 关闭服务
systemctl restart 重启服务
systemctl reload 重新加载服务
systemctl enable 设置服务开机自启
systemctl disable 设置服务开机不自启
systemctl is-enable 查看服务开机是否自启
systemctl list-unit-files | grep enable 查看已启用的服务列表
systemctl get-default 查看当前系统默认启动的target
systemctl set-default multi-user target 设置默认的启动target为multi-user.target
systemd analyze 查看系统启动耗时
排除启动故障
BMR扇区故障
MBR扇区修复
1、首先模拟故障
新加一块硬盘,格式化挂载
dd if=/dev/sda of=/opt/sdb/mbr.bak bs=512 count=1
dd if=/dev/zero of=/dev/sda bs=512 count=1
2、重启电脑,无法进入系统
3、设置boot选项从光盘进入
4、选择修复模式进入
5、mkdir /bak
6、重新挂载sdb,mount /dev/sdb /bak
7、dd if=/bak/mbr.bak of=/dev/sda
8、reboot重启
9、boot修改第一启动项为硬盘,顺利进入系统
GRUB 引导故障
从光盘启动,进入救援模式,进入修复shell
执行chroot /mnt/sysimage #初始系统已经挂载到了/mnt/sysimage下面,想要进入初始系统下面,需要执行chroot /mnt/sysimage命令
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
reboot
遗忘root密码
启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式
在linux16/linux/linuxefi所在参数行尾添加以下内容:init=/bin/sh
按Ctrl+x启动到shell
挂载文件系统为可写模式:mount –o remount,rw /
运行passwd,并按提示修改root密码
运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启