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 个阶段)
  1. 开机自检(POST):BIOS 检测硬件并选择第一个可引导设备(硬盘/U盘/光驱)。

  2. MBR 引导:从硬盘主引导记录加载 GRUB 引导管理器。

  3. GRUB 引导菜单:GRUB 读取/boot/grub2/grub.cfg,加载指定内核和 initramfs 到内存。

  4. 加载 Linux 内核:内核初始化硬件管理、内存和进程调度,完成基础环境准备。

  5. init 进程初始化:内核启动 systemd(原/sbin/init),加载驱动、启动服务,最终显示登录界面。

二. Systemd 两大优势

  • 并行启动:多服务同时启动,大幅缩短开机时间。

  • 按需启动:仅在需要时激活服务,节省资源。

三.新旧工具对比

  • systemd(现代):.service文件,支持并行/按需启动,命令为systemctl

  • chkconfig(传统):基于运行级别,管理/etc/init.d/脚本,兼容模式下systemctl enable会自动重定向到chkconfig