1、硬件启动阶段:当计算机开机后,BIOS或UEFI会进行一系列的硬件检查,包括内存、硬盘、CPU等硬件信息,这一过程称为POST(PowerOn Self Test)。
2、加载MBR到内存:如果硬件检查没有问题,BIOS将会找到硬盘的第一个扇区,读取前446字节的MBR并将其加载到内存中,MBR负责磁盘操作系统对磁盘进行读写时的分区合法性判别及分区引导信息的定位。
3、GRUB引导阶段:MBR将控制权交给GRUB(GRand Unified Bootloader),GRUB是Linux系统常用的引导程序,GRUB分为多个阶段,其中第一阶段和第二阶段分别存储在硬盘的前两个扇区中,GRUB的主要任务是加载内核和initramfs。
4、加载内核和initramfs:GRUB将Linux内核和初始RAM文件系统(initramfs)加载到内存中,initramfs是一个临时根文件系统,用于在系统启动初期挂载实际的根文件系统。
5、Systemd初始化阶段:一旦内核启动,它就会执行systemd来管理系统服务和进程,systemd是CentOS 7及许多其他现代Linux发行版使用的初始化系统和系统管理工具,systemd取代了传统的SysV init脚本,提供了更高效的服务管理和并行启动能力。
6、执行Target配置:systemd通过执行默认的target配置文件来启动系统,这些target定义了系统的不同运行级别,如多用户模式、图形界面模式等,CentOS 7默认启动到多用户模式(multiuser.target)。
7、启动服务:systemd按照依赖关系启动各种服务和守护进程,包括网络服务、定时任务、日志服务等,这些服务通常在/etc/rc.d/rc.local或/etc/systemd/system目录中定义。
8、启动完成:所有必要的服务启动完成后,系统进入用户登录界面或图形界面,用户可以开始使用系统。
FAQs
1、如何查看CentOS 7的开机启动项?
查看方法:可以使用systemctl listunitfiles | grep enable
命令来列出所有已启用的开机启动项,这个命令会显示所有状态为enabled的服务名称。
2、如何在CentOS 7上添加新的开机启动项?
使用systemd配置自启动:可以通过创建一个systemd服务文件来实现,创建一个名为auto_start.service
的文件,内容如下:
```text
[Unit]
Description=The app auto run when reboot
After=default.target
[Service]
ExecStart=/opt/script/auto_start.sh
[Install]
WantedBy=default.target
```
然后使用systemctl dAEmonreload
和systemctl enable auto_start.service
命令来注册并启用该服务。
CentOS 7的启动流程涉及多个步骤,从硬件初始化到软件服务的启动,每一步都至关重要,通过了解这些步骤,可以更好地管理和优化CentOS 7系统的启动过程。