Linux控制启动过程

启动过程

1.计算机接通电源,系统固件(UEFI或BIOS)运行开机自检(POST),初始化部分硬件;

使用系统BIOS或UEFI配置屏幕(F2键进行配置)

2.系统固件搜索可启动设备;

使用系统BIOS或UEFI配置屏幕(F2键进行配置)

3.系统固件从磁盘读取启动加载器,将系统控制权交给启动加载器;

使用grub2-install命令进行配置,将会安装GRUB2作为磁盘的启动加载器

4.GRUB2从/boot/grub2/grub.cfg文件加载配置并显示一个菜单,可以选择要启动的内核;

使用/etc/grub.d/目录、/etc/default/grub文件和grub2-mkconfig命令进行配置以生成/boot/grub2/grub.cfg文件

5.选择内核或超时到期后,启动加载器从磁盘中加载内核和initramfs,并放入内存;

使用/etc/dracut.conf.d/目录、dracut命令和lsinitrd命令进行配置以检查initramfs文件

6.启动加载器将控制权交给内核,传递启动加载器的内核命令中指定的选项和initramfs在内核中的配置;

使用/etc/grub.d/目录、/etc/default/grub文件和grub2-mkconfig目录进行配置以生成/boot/grub2/grub.cfg文件

7.对内核可在initramfs中找到驱动程序的所有硬件初始化,作为PID1从initramfs执行/sbin/init,红帽Linux8中/sbin/init是一个指向systemd的连接;

使用内核init=命令行参数进行配置

8.initramfs中的systemd实例执行initrd.target目标的所有单元,包括将磁盘上的root文件系统挂载于/sysroot目录;

使用/etc/fstab进行配置

9.内核将root文件系统从initramfs回转为/sysroot中的root文件系统,systemd使用磁盘安装的systemd副本自行重新执行;

10.systemd查找从内核命令行传递或系统中配置的默认目标,然后启动(或停止)单元以符合目标的配置,解决单元间的依赖关系。

使用/etc/systemd/system/default.target和/etc/systemd/system进行配置

重新启动和关闭

systemctl poweroff    停止所有运行的服务,卸载所有文件系统,然后关闭系统。

systemctl reboot        停止所有运行的服务,卸载所有文件系统,然后重启系统。

你可能感兴趣的:(linux,linux,运维,服务器,initramfs,systemd)