开机流程一览
开机管理程序(Boot Loader),由于各大 Linux distribution 的主流为 grub2和grub,下面就以它们为主讲解
>简单来说,grub2开机的经过可以总结如下的流程:
- 加载 BISO 的硬件信息与进行自我测试,上电自检。
- 读取并执行第一个开机设备内 MBR 的 boot Loader(grub2、spfdisk 等程序)GRUB 的最主要作用都是将操作系统内核加载到内存并运行。
- 根据 boot loader 的设置加载 Kernel,Kernel 会开始检测硬件与加载驱动程序
- 在硬件驱动成功后,Kernel 会调用 systemd 程序,并以 default.target 的流程开机(systemd 是所有进程的父进程)它负责将 Linux 主机带到一个用户可操作状态(可以执行功能任务)包括挂载文件系统,以及开启和管理 Linux 主机的系统服务等:
- systemd 执行 sysinit.target 初始系统以及 bashic.target 启动其所要求的所有单元,包括各种可执行文件的目录路径、通信 sockets
- systemd 启动 multi-user.target 下的本机与服务器服务
- systemd 执行 multi-user.target 下的/etc/rc.d/rc.local 文件
- systemd 执行 multi-user.target 下的 getty.target 及登录服务
- systemd 执行 graphical 需要的服务
bootfs(用于系统引导)bootfs(boot file system)主要包含 bootloader和kernel,bootloader主要是引导加载kernel,当kernel被加载到内存中后 bootfs就被umount了。--->BootLoader(系统引导加载程序)--->加载内核--->内核挂载一个虚拟的rootfs作为初始文化系统,这一步的作用是形成一个根文件系统挂载点 “ / ”--->挂载rootfs初始文件系统(与上rootfs不同)--->挂载真正根文件系统替换rootfs--->后续工作
典型的Linux文件系统由bootfs和rootfs两部分组成
根文件系统包含
init/systemd
进程的应用程序- 根文件系统
提供了根目录
“ / ” - 挂载分区
/etc/fstab
shell命令
必须运行在根文件系统上(如ls,cd)
文件系统是i节点和block以及超节点组成
>grub2开机的经过可以总结如下的流程
1.BIOS
2.MBR(Kernel Loader)引导
3.grub2加载内核kernel
4.kernel 会开始检测硬件与加载驱动程序,硬件驱动成功后Kernel 会调用 systemd/init 程序
5./etc/inittab 选择开机的运行级别
6./etc/rc.d/rc.sysinit 加载PATH,主机名,网络信息
7./etc/rc.d/init.d 服务service
8./etc/rc.d/rc.local 开机启动自定义区域
9./bin/login 登陆系统
10.shell控管主机