美文网首页
面试题:简述Linux启动流程(2024新版本)

面试题:简述Linux启动流程(2024新版本)

作者: 狼牙之光 | 来源:发表于2024-01-06 11:38 被阅读0次

概要

Linux运维经典面试题:

请简述Linux启动过程

最近刷面试题发现,网上很多关于Linux启动流程的面试题标准答案,都是基于10年前的CentOS 6 版本的。但随着Systemd普及后,现在的系统启动流程有比较大的变化。所以我尝试重新写一份答案,兼顾了新旧两种版本的Linux发行版本的启动流程。

Linux启动流程答案

1. 主板固件加载硬盘

  • 传统服务器用BIOS(基本输入输出系统)自检
  • 新服务器也可能用UEFI(统一可扩展固件接口)自检

2. 读取引导文件

  • 传统的引导文件是MBR(Master Boot Record)
  • 大于2T的硬盘只能用GPT(GUID Pattition Table)引导(主板固件必须是UEFI)

3. GRUB 引导菜单(Boot Loader)

4. 加载内核kernel

5. Kernerl 执行 init

  • 传统版本:init 启动调用 System V init
  • Systemd 版本: init 启动 systemd, 并将PID设置为1

6. 设定运行级别

  • 传统版本: 根据 inittab 文件
  • Systemd版本: 根据 /lib/systemd/system/default.target

7. 根据(/etc/fstab)加载文件系统

  • 传统版本:init进程执行挂载任务
  • Systemd版本: init进程执行挂载任务。具体:systemd 会先启动服务,如 local-fs.target, swap.target 和 cryptsetup.target,用于挂载文件系统

8. 启动服务

  • 传统版本:init调用 /etc/init.d/rcS, 按顺序启动服务,同时间只能启动一个服务
  • Systemd版本:根据服务配置文件的After和Before参数决定启动顺序,可以并发启动服务(service)

9. 执行自定义开机任务

  • 传统版本:运行 /etc/rc.local ( 红帽系是 /etc/rc.d/rc.local
  • Systemd版本: 调用rc-local.service, 如果 /etc/rc.local ( 红帽系是 /etc/rc.d/rc.local)文件属性是可执行,则执行它。

10. 进入系统登录界面

  • 传统版本:/etc/init.d/xdm运行图形界面或者登录提示符,以便用户登录和使用系统
  • Systemd版本: systemd (systemd-logind.service)会运行图形界面或者登录提示符,以便用户登录和使用系统

参考资料

UEFI是什么?与BIOS的区别在哪里?
MBR VS GPT
The Difference Between System V and SystemD
CentOS8启动流程

相关文章

网友评论

      本文标题:面试题:简述Linux启动流程(2024新版本)

      本文链接:https://www.haomeiwen.com/subject/hxrwndtx.html