linux系统启动详细过程
- 通电
- bios初始化
- grub2磁盘引导阶段(mbr)
- 指定boot分区所在分区
- grub2文件引导阶段
- 启动内核,只读挂载 / 设备
- 启动init程序进入初始化阶段(rhel6)
- 启动systemd初始化进程
- 取 /etc/systemd/ 中的文件(之后都是并行的)
- 执行/etc/rc.d/rc.local
- 启动程序
- 启动登陆环境
可总结为以下五个大的过程:
- 内核引导
- 启动init程序进入初始化阶段
- 系统初始化
- 建立终端
- 登录系统
整体流程图:
内核引导
- 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。
- BIOS:BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统"。在IBM PC兼容系统上,是一种业界标准的固件接口。BIOS是个人电脑启动时加载的第一个软件。它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
启动init程序进入初始化阶段
- init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的boss,没有这个进程,系统中任何进程都不会启动。init 程序首先是需要读取配置文件 /etc/inittab。
init程序的类型
- SysV: init, CentOS 5之前, 配置文件: /etc/inittab
- Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf
- Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system
系统初始化
- 它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。
建立终端
- rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。
init接下来会打开6个终端,以便用户登录系统。
用户登录
- 命令行登录
- 图形界面登录
- 远程ssh登录
关机
- 正确的关机流程为:sync > shutdown > reboot > halt
- 关机指令为:shutdown
可以运行如下命令关机:
sync 将数据由内存同步到硬盘中。
shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。
shutdown –h now 立马关机
shutdown –h 20:25 系统会在今天20:25关机
shutdown –h +10 十分钟后关机
shutdown –r now 系统立马重启
shutdown –r +10 系统十分钟后重启
reboot 就是重启,等同于 shutdown –r now
halt 关闭系统,等同于shutdown –h now 和 poweroff
- 最稳妥的关机或重启方法:首先运行 sync 命令,把内存中的数据写到磁盘中,防止数据丢失
- 关机的命令有 shutdown –h now halt poweroff 和 init 0 , 重启系统的命令有 shutdown –r now reboot init 6