linux系统引导和Systemd服务管理
目录
一.Linux 系统引导过程
① 开机自检(POST)
② MBR 引导
③ GRUB 引导菜单
④ 加载 Linux 内核
⑤ init 进程初始化
二.Systemd 服务管理
① Systemd 的核心优势
② 运行级别与 Systemd 目标(Target)
③ 设置与切换运行级别
④ 服务管理
三.课后扩展
① chkconfig 命令 centos 6 httpd
② systemd 与 chkconfig 的对比
四.小结与案例
五.总结
一、Linux 系统引导过程(5 个阶段)
一.Linux 系统引导过程
① 开机自检(POST)
过程:按下电源键后,BIOS 首先对 CPU、内存、显卡、键盘等关键硬件执行加电自检(POST)。若所有硬件检测通过,则依据 BIOS 中设定的启动顺序(硬盘、光驱、U 盘等)查找可引导设备。
总结:BIOS 完成硬件自检,并选择第一个有效的引导介质(通常为硬盘)。
② MBR 引导
过程:若从硬盘启动,系统读取硬盘第一个扇区(主引导记录 MBR)中的引导代码,该代码进一步加载并执行启动管理器(如 GRUB),从而进入操作系统选择阶段。
总结:MBR 中的引导程序将控制权转交给 GRUB 启动管理器。
③ GRUB 引导菜单
过程:GRUB(Grand Unified Bootloader)显示启动菜单,允许用户选择要启动的操作系统或内核版本。选定后,GRUB 根据配置文件(
/boot/grub2/grub.cfg)加载指定的 Linux 内核文件及初始 RAM 磁盘(initramfs)到内存。总结:GRUB 读取配置文件,将内核与初始文件系统载入内存,并准备跳转至内核入口。
④ 加载 Linux 内核
过程:内核(通常为
vmlinuz)被加载到内存后,解压并初始化自身,建立基本的内存管理、进程调度和硬件抽象层。此时内核已具备管理硬件资源的能力,但尚未启动完整的用户空间。总结:内核镜像被装入内存并完成基础初始化,为后续系统启动做好准备。
⑤ init 进程初始化
过程:内核启动第一个用户空间进程
/sbin/init(在 systemd 系统中为/usr/lib/systemd/systemd)。该进程负责加载硬件驱动、挂载文件系统、启动各类系统服务,并最终显示登录提示符(图形界面或命令行),等待用户登录。总结:init/systemd 完成系统全面初始化,进入多用户运行级别或图形界面,系统启动完毕。
二.Systemd 服务管理
① Systemd 的核心优势
并行启动服务:Systemd 支持多任务并行启动,大幅缩短系统启动时间,克服了传统 SysVinit 串行启动导致的效率瓶颈。
按需启动服务:仅在需要时激活对应服务,避免冗余加载,有效降低资源占用,提升系统整体效率。
总结:Systemd 通过并行化与按需激活机制,显著优化了启动速度与服务管理流程,同时简化了服务配置和依赖管理,弥补了 SysVinit 启动缓慢、脚本编写复杂的不足。
② 运行级别与 Systemd 目标(Target)
在 Linux 系统中,运行级别(runlevel)定义了系统的运行状态。Systemd 通过目标(target)来代替
传统的运行级别。以下是常见的运行级别与对应的 Systemd 目标:
+----------------+---------------------+------------------+
| 运行级别 | Systemd 目标 | 说明 |
+----------------+---------------------+------------------+
| 0(重) | poweroff.target | 关机 |
| 1 | rescue.target | 单用户模式 |
| 2、3、4(重) | multi-user.target | 多用户模式 |
| 5(重) | graphical.target | 图形化界面 |
| 6(重) | reboot.target | 重启 |
+----------------+---------------------+------------------+
0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的;
1 单用户模式,root权限,用于系统维护,禁止远程登录(只能通过实机进去),该模式的进入
方式百度操作即可;就像windows下的安全模式登录;(进入单用户模式的时候root不需要密码就
可以登录,所以在此模式下可以修改root密码)
2 多用户模式,没有NFS和网络支持;
3 完整的多用户文本模式,有NFS和网络,登录后进入控制台命令行模式。 黑屏
4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电池用
尽时,可以切换到这个模式来做一些设置;
5 图形化模式,登录后进入图形GUI模式,X windows系;
6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init6机器就会重启
③ 设置与切换运行级别
查看当前默认目标:
systemctl get-default
图2-1
设置默认目标:
systemctl set-default multi-user.target
图2-2
切换到指定目标:
systemctl isolate graphical.target
图2-3
示例:切换到图形界面:
systemctl isolate graphical.target
④ 服务管理
启用服务开机启动:
systemctl start httpd.service apache
systemctl enable httpd.service
图2-4
查看服务的开机启动状态:
systemctl is-enabled httpd.service
图2-5
禁用服务开机启动:
systemctl disable httpd.service
图2-6
列出所有已启用的服务:
systemctl list-unit-files | grep enabled
图2-7
查看系统中所有已激活的服务:
systemctl list-units --type=service
图2-8
永久修改主机名:
hostnamectl set-hostname newname
homename 主机名 临时修改主机名
查看服务状态:
#查看服务是否在运行,并显示详细状态信息
systemctl status sshd
图2-9
停止服务的运行:
systemctl stop sshd
图2-10
关闭防火墙服务:
systemctl stop firewalld.service
图2-11
启动服务
systemctl start firewalld.service
图2-12
重启服务
systemctl restart firewalld.service
图2-13
重新加载服务配置
systemctl reload firewalld.service
图2-14
三.课后扩展
① chkconfig 命令 centos 6 httpd
chkconfig 是一个用于查看和配置服务是否在特定运行级别下启动的工具。常用命令如下:
查看服务状态:
chkconfig --list httpd
图3-1
添加服务到系统:
chkconfig --add httpd
图3-2
设置服务在特定级别下启动:
chkconfig --level 35 httpd on
图3-3
② systemd 与 chkconfig 的对比
systemd 是现代的服务管理工具,支持并行服务启动和按需启动服务,配置文件为 .service。
chkconfig 用于较早的服务管理,依赖于运行级别和手动设置服务的开机启动。
四.小结与案例
Linux 系统引导过程:包括开机自检、MBR 引导、GRUB 引导菜单、加载内核以及 init 进程初始化。
Systemd 服务管理:替代传统的 init 进程,通过并行启动服务、按需启动服务提高系统启动速度。\
服务管理**:使用 systemctl 命令管理服务的启动、停止和开机启动状态,支持配置服务在特定目标下的运行。
相关案例
启用 Apache 服务开机启动:
systemctl enable httpd.service
图4-1
切换到多用户模式(不带图形界面):
systemctl isolate multi-user.target
图4-2
五.总结
一、Linux 系统引导过程(5 个阶段)
开机自检(POST):BIOS 检测硬件并选择第一个可引导设备(硬盘/U盘/光驱)。
MBR 引导:从硬盘主引导记录加载 GRUB 引导管理器。
GRUB 引导菜单:GRUB 读取
/boot/grub2/grub.cfg,加载指定内核和 initramfs 到内存。加载 Linux 内核:内核初始化硬件管理、内存和进程调度,完成基础环境准备。
init 进程初始化:内核启动 systemd(原
/sbin/init),加载驱动、启动服务,最终显示登录界面。
二. Systemd 两大优势
并行启动:多服务同时启动,大幅缩短开机时间。
按需启动:仅在需要时激活服务,节省资源。
三.新旧工具对比
systemd(现代):
.service文件,支持并行/按需启动,命令为systemctl。chkconfig(传统):基于运行级别,管理
/etc/init.d/脚本,兼容模式下systemctl enable会自动重定向到chkconfig。
