内核启动

/boot/gurb/gurb.conf 开机选择的内核配置
/lib/systemd/system system
/etc/rc.d init模式脚本 S文件为启动 K文件为关闭
/etc/rc.local 将开启如(/var/local/nginx/nginx)的执行文件放入开机执行(centos7以下 ubnutu需要自己创建)

硬件启动- bootloader(gurb)-内核()-使用initramfs.img挂载/ -/sbin/init-读取默认运行级别-/etc/rc.d/rc.sysinit(运行系统脚本)-/etc/rc#.d/xxx(启动开机服务和关闭服务)-/etc/rc.d/rc.local-设置登录终端

cento6启动流程:
1.BIOS/UEFI 初始化:系统开始启动时,首先进行硬件初始化和自检,然后加载引导程序。
2.在查找(0号磁头0号磁道1扇区磁盘的前446字节,后面的是硬盘分区表)MBR后,将MBR装载到RAM中,bios将控制权交给MBR
3.MBR通过bootloader找到gurb.cfg,找到并加载模块和内核。
4.内核加载initranmfs.img(liunx精简版,用于驱动挂载根)到内存去挂载根。
5.运行第一个系统进程/sbin/init,然后查看/etc/initab去查看定义的模式,初始化脚本/etc/rc.d/sys.init(初始化大量配置以及逻辑卷、时钟等等。),接着运行/etc/rcN.d/Sxx 和/etc/rc.local脚本.
最后启动终端

image

cento7及以后:
1.BIOS/UEFI 初始化:系统开始启动时,首先进行硬件初始化和自检,然后加载引导程序。
2.在查找(0号磁头0号磁道1扇区磁盘的前446字节,后面的是硬盘分区表)MBR后,将MBR装载到RAM中,bios将控制权交给MBR
3.MBR通过bootloader找到gurb.cfg,找到并加载模块和内核。
4.内核加载initranmfs.img(liunx精简版,用于驱动挂载根)到内存去挂载根。
Init 进程替换:Linux 内核启动后,Systemd 作为第一个用户空间进程启动,并替换掉 init 进程。
Systemd 启动:Systemd 开始启动系统中的各种单元(units),包括系统服务单元、挂载点、设备单元等。它会按照单元之间的依赖关系和优先级顺序逐个启动。
Target 单元:Systemd 使用 target 单元来组织系统启动过程。CentOS 7 默认的 target 单元是 multi-user.target,它类似于传统的运行级别3,表示多用户文本模式。
服务单元启动:Systemd 会启动在启动过程中所需的各种服务单元,如网络服务、日志服务、文件系统挂载等。这些服务单元的启动顺序可能会根据它们的依赖关系而有所调整。
用户登录:一旦系统启动完成并且所有服务都正常启动,用户可以登录到系统中进行操作。

init模式
运行级别 0:系统停机状态,即关机状态。在这个运行级别下,系统会关闭所有的服务并停止所有的进程,然后关机。
运行级别 1:单用户模式,也称为救援模式。在这个运行级别下,系统启动后只有一个控制台会话,且不会启动任何网络服务。通常用于系统修复和故障排除。
运行级别 2:多用户模式,但不包括 NFS(网络文件系统)。这个运行级别下,系统启动后提供多个用户会话,但不启动网络文件系统。
运行级别 3:完全多用户模式。与运行级别 2 类似,但启动了所有标准服务。
运行级别 4:未使用。在大多数 Linux 发行版中,运行级别 4 保留为未使用状态,用户可以根据需要自定义。
运行级别 5:图形用户界面模式。在这个运行级别下,系统启动后会自动进入图形用户界面(GUI),通常是 X Window 系统。
运行级别 6:系统重启模式。在这个运行级别下,系统会关闭所有服务并重新启动。
gurb添加密码:
gurb-crypt
输入密码
vim /boot/gurb/gurb.conf
增加 passwd --encrypt 生成密码

chkconfig (控制开启动的脚本)
选项
--list:列出所有系统服务的启动状态信息,包括各个运行级别下的启动和关闭状态。
--list service_name:列出特定服务的启动状态信息,包括各个运行级别下的启动和关闭状态。
--add service_name:将指定的服务添加到系统启动项中,使其在系统启动时自动启动。
--del service_name:从系统启动项中移除指定的服务,使其在系统启动时不再自动启动。
--level levels:指定服务在哪些运行级别下启动或停止。levels 是一个由数字或运行级别名称组成的逗号分隔的列表。例如,--level 35 表示在运行级别 3 和 5 下启动服务。
service_name on:将指定的服务设置为在所有运行级别下启动。
service_name off:将指定的服务设置为在所有运行级别下停止。
service_name reset:将指定的服务重置为默认启动状态。
chkconfig --level 3 crond off
chconfig --list crond off

systemd

设定内核参数
systemd.unit=multi-user.target
systemd.unit=emergency.target
systemd.unit=rescue.target

systemctl:systemctl 是 Systemd 的主要命令,用于管理系统服务和相关功能。
systemctl start :启动指定的服务单元。
systemctl stop :停止指定的服务单元。
systemctl restart :重启指定的服务单元。
systemctl status :显示指定服务单元的状态信息。
systemctl enable :设置指定服务单元在系统启动时自动启用。
systemctl disable :设置指定服务单元在系统启动时不自动启用。
systemd.service:systemd.service 文件是 Systemd 服务的配置文件,用于定义服务的行为和属性。
Type=:指定服务的类型,如 simple、forking、oneshot、dbus 等。
ExecStart=:指定服务启动时执行的命令或程序。
ExecStop=:指定服务停止时执行的命令或程序。
Restart=:指定服务意外停止时的重启策略,如 always、on-failure、no 等。
systemd.unit:systemd.unit 文件是 Systemd 单元的配置文件,用于定义系统中的各种单元,如服务、挂载点、设备等。
Description=:描述单元的文本描述。
Requires=:指定单元所依赖的其他单元。
After=:指定单元应该在哪些其他单元之后启动。
systemd.timer:systemd.timer 文件是 Systemd 定时器的配置文件,用于定义定时执行的任务。
OnCalendar=:指定任务执行的日历时间表,如每天、每周、每月等。
Unit=:指定要执行的单元,可以是服务单元或其他类型的单元。
journalctl:journalctl 是 Systemd 的日志管理工具,用于查看和管理系统日志。
-u :仅显示指定服务单元的日志。
-r:以反向顺序显示日志,最新的日志先显示。
-n :指定要显示的日志行数。
其他选项:
systemd-analyze:用于系统启动时间和性能分析。
systemd-cgtop:显示控制组层次结构中的进程统计信息。
systemd-resolve:用于解析系统的 DNS 查询。
systemd-networkd:用于管理系统的网络配置。

posted @ 2024-04-30 16:02  TestAL4193  阅读(31)  评论(0)    收藏  举报