引导过程
开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
BIOS硬件设置,是为了检测下一步是交给硬盘还是光驱还是网卡(第一启动项有问题,会出现不停重启现象)
总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱
MBR引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单
MBR只有446字节,后64字节为分区表,最后2个字节是005A,最后是一个完整的grub程序,前面的grub是一个精简的grub程序(在446字节中的grub),用于引导硬件找到内核,再读取文件系统
运行放在MBR扇区里的启动GRUB引导程序
可以通过hexdump -C -n 512 /dev/sda查看前512字节
GRUB
对于Linux操作系统来说,GRUB (GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB 以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载 Linux内核文件,然后将系统控制权转交给内核。需要注意的是,Centos 7 采用的是 GRUB2启动引导器。 GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
加载内核程序
内核接过系统控制权以后,会控制linux操作系统的运行过程。
把内核和镜像文件系统加载到内存中
CentOS 7系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
init进程
init 进程负责完成整个系统的初始化,最后等待用户进行登录。
加载硬件驱动程序,内核把init进程加载到内存中运行
centos6,7加载进程区别
init进程(centos6)
init进程的PID号永远为1
启动顺序:
- 挨个启动(淘汰了)
systemd进程(centos7)
启动顺序:
- 全部一起启动
systemd代替服务监听 启动
systemd
systemd的新特性
- 系统引导实现服务并行启动
- 按需启动进程
- 系统状态快照
- 基于依赖关系定义服务控制逻辑
- 向后兼容sysv init脚本
- 使用systemctl命令管理,systemctl命令固定不变,补课扩展,非由systemd启动的服务
- systemctl无法与systemd通信和控制
- socket与服务程序分离
- 同时采用socket式与D-Bus总线式激活服务
systemd的核心概念是:unit
systemd单元
- 有很多个后缀,主要为记着三个
运行级别对应的systemd
- 由于2,3,4的释义差不多,级别是同一个,并且systemd的target也是一样的,就卸载同一个里面就好,主要还是记得0,1,5,6,这几个级别
实验
修复MBR分区
- 先备份MBR引导扇区到其他磁盘中去,但是这边我需要先分区,才可以做到备份
- 分区完成,现在开始准备备份
- 复制完成后,开始破坏mbr文件的的前512字节(所谓破坏,就是将其准一到别的地方)
- 需要重启机器,由于mbr损坏就不会进入登录页面
- 鼠标点进去,上下键,选择第三个,进入急救模式
重建grub程序
- 当grub程序损坏时或者被删除时候怎么修复
演示
- 重新启动会出现
- 删除之后,需要重建grub程序,就需要进入急救模式,但是进入急救模式的方法不同
- 需要再重新启动,在读条界面按 Esc 键进入启动菜单(这个时间很短,需要手速很快),改用光盘启动,进入急救模式,重建GRUB菜单配置文件。
以往root密码怎么办
在没有光驱的情况下
- 在读条时候,按e键进入编辑模式
- 光标找到linux开始行,按end键调到行尾,在行尾加上rd.break
- 如果看屏幕上没有,就按住上下键会往下翻
- 按住ctrl+x键启动
- 如果SELinux是启用的,才需要执行下面操作,如没有启动,不需要执行
centos 6修改密码
- 启动时候,按上下键
- 按a
- 输入s,在输入1,进入单用户模式
- 最后passwd修改密码即可