admin 管理员组文章数量: 1184232
一、开机启动流程图
硬件的角度来看启动流程
二、开机启动流程
1. power on
开机
2. POST 开机自检
开机自检:上电自检(POST,Power On Self Test)
由主板上的
BIOS
程序去完成检查电脑里的硬件是否存在
包括对CPU、系统主板、基本内存、扩展内存、系统ROM BIOS等器件的测试。如发现错误,给操作者提示或警告。简化或加快该过程,可使系统能够快速启动。
电脑的硬件有哪些?
- 机箱:主板,内存条,硬盘,cpu,电源,显卡,网卡,声卡,风扇
- 外设: 机箱外部的设备: 键盘、鼠标、耳机、音箱、摄像头,麦克风、显示器等
什么是BIOS程序?
BIOS(
Basic Input/Output System,基本输入输出系统
)是计算机启动时运行的固件程序,负责硬件初始化、系统自检(POST)和引导操作系统
BIOS存在于主板的电路板上,一般以
ROM
(只读存储器)的形式存储
如何进入BIOS程序
台式机: DEL 或者delete
笔记本: F1 F2 F8 F10 F12 等 fn+F2
服务器: F1
虚拟机:F2
3. 启动顺序检查
BIOS --》boot
第1启动顺序 非常关键
系统会优先从第一个设备尝试启动,若失败则依次尝试下一个
| 第1启动顺序 | removable device 可移动设备 --》u盘,移动硬盘 --》安装系统 |
|---|---|
| 第2启动顺序 | hard drive 硬盘 |
| 第3启动顺序 | cdrom 光驱 --》vcd/dvd 读取光盘的设备 --》安装系统 |
| 第4启动顺序 | Network --》从网络启动–》网络中安装服务器启动 --》安装 |
4. 加载引导程序
MBR
:主引导记录 master boot record
是硬盘里的非常重要的一个位置(磁盘最开始的位置),占一个扇区的空间,一个扇区是512个字节
5. grub2引导程序
加载 Linux 内核和临时文件系统(initramfs)
- GRUB 第一阶段(MBR 中):由于 MBR 空间有限,仅能执行简单操作 —— 加载位于硬盘分区中的 GRUB 第二阶段
- GRUB 第二阶段:读取/boot/grub2/grub.cfg配置文件,显示启动菜单(若有多个系统或内核版本),等待用户选择(默认超时后自动选择)
加载/boot里的文件系统驱动
[root@rocky-1 ~]# ls /boot
config-5.14.0-570.17.1.el9_6.x86_64 loader
efi symvers-5.14.0-570.17.1.el9_6.x86_64.gz
grub2 System.map-5.14.0-570.17.1.el9_6.x86_64
initramfs-0-rescue-58a991a6f6e346d084259ecba89a43ff.img vmlinuz-0-rescue-58a991a6f6e346d084259ecba89a43ff
initramfs-5.14.0-570.17.1.el9_6.x86_64.img vmlinuz-5.14.0-570.17.1.el9_6.x86_64
initramfs-5.14.0-570.17.1.el9_6.x86_64kdump.img
[root@rocky ~]# ls /boot/grub2/
device.map fonts grub.cfg grubenv i386-pc locale
-
加载内核与 initramfs到内存:根据用户选择,从
/boot分区读取内核文件和临时文件系统镜像到内存
vmlinuz-5.14.0-570.17.1.el9_6.x86_64
内核文件 --》二进制文件–》直接运行
内核是操作系统内部最核心的软件
initramfs-5.14.0-570.17.1.el9_6.x86_64.img
--》压缩文件 --》 给内核配置文件或者程序的文件
initialize 初始化
ram RAM random access memory 随机访问存储器 --》内存
rom ROM read only memory 只读存储器—》光盘
fs --》file system
6. 启动systemd进程
根文件系统挂载后,内核会执行根目录下的初始化程序(
usr/lib/systemd/systemd
),并将进程 ID(PID)设为 1(系统第一个用户态进程),负责启动后续所有用户态服务
启动对应的运行级别里的服务
现代Linux系统已用
systemd
取代
Sysv init
,运行级别被
target
替代
| 传统运行级别 | systemd target | 说明 |
|---|---|---|
| 0 | poweroff.target | 关机 |
| 1 | rescue.target | 救援模式(单用户) |
| 3 | multi-user.target | 多用户命令行模式 |
| 5 | graphical.target | 图形界面模式 |
| 6 | reboot.target | 重启 |
查看默认的运行级别
[root@rocky-1 multi-user.target.wants]# systemctl get-default
multi-user.target
[root@rocky-1 multi-user.target.wants]# runlevel
N 3
# N:表示前一个运行级别为 “无”
# 3:表示当前运行级别为 3
[root@rocky-1 multi-user.target.wants]# cat /etc/inittab
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
设置默认启动为命令行模式
[root@rocky-1 multi-user.target.wants]# systemctl set-default multi-user.target
运行 /etc/systemd/system/multi-user.target.wants/ 下的服务
在目录下添加链接文件
[root@rocky-1 multi-user.target.wants]# systemctl enable sshd
Created symlink /etc/systemd/system/multi-user.target.wants/sshd.service → /usr/lib/systemd/system/sshd.service.
里面的文件都是链接文件,指向Linux中开机自启的服务
[root@rocky-1 multi-user.target.wants]# ls
getty.target systemd-logind.service systemd-user-sessions.service
systemd-ask-password-wall.path systemd-update-utmp-runlevel.service
去除链接文件
[root@rocky-1 multi-user.target.wants]# systemctl disable sshd
Removed “/etc/systemd/system/multi-user.target.wants/sshd.service”.
7.运行 /etc/fstab 以及 /etc/rc.local 文件
/etc/fstab
是文件系统挂载配置文件,记录了系统启动时需要自动挂载的分区、磁盘或网络存储
[root@rocky-1 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue May 27 13:03:41 2025
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk/’.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run ‘systemctl daemon-reload’ to update systemd
# units generated from this file.
#
/dev/mapper/rl-root / xfs defaults 0 0
UUID=e232db92-2650-419f-ac1f-45ebbce6dd4c /boot xfs defaults 0 0
/dev/mapper/rl-swap none swap defaults 0 0
/etc/rc.local
是系统中用于存放开机自启动命令的脚本文件,在系统启动后期执行,适合添加自定义初始化操作
作用:执行用户自定义的开机命令
必须赋予可执行权限
[root@rocky-1 ~]# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
8. login 登录
根据
/etc/passwd
和
/etc/shadow
来检测用户名和密码是否正确
登录后按顺序加载4个环境变量的配置文件
~开头的文件表示只对当前用户生效
配置文件可以存放自定义命令、脚本、环境变量配置等内容,用于在用户登录或开启终端时
自动执行
最终进入 bash 提示符(如 [root@rocky-1 ~]#),完成启动
总结
开机启动流程的意义:
- 掌握让某个软件开机自动运行
- 开机不能正常启动,是什么原因,或者那个环节出现了问题
- 防止黑客植入木马,去查询黑客会把木马放到哪些地方?
版权声明:本文标题:Linux开机关机全揭秘:启动流程一文全懂 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1773514482a3562804.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论