2018-04-23 《鸟哥的Linux私房菜 基础学习篇(第四版)》 第19章 开机流程模块管理与Loader 笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-04-23 《鸟哥的Linux私房菜 基础学习篇(第四版)》 第19章 开机流程模块管理与Loader 笔记相关的知识,希望对你有一定的参考价值。
开机流程:
1. 加载 Bios (Basic Input Output System)
加载 CMOS 的信息,
取得主机的各项硬件配置,
例如 CPU 与接口设备的沟通频率、
开机装置的搜寻顺序、
硬盘的大小与类型、
系统时间、
各周边总线的是否启动 Plug and Play(PnP, 即插即用装置) 、
各接口设备的 I/O 地址、
以及与 CPU 沟通的 IRQ 岔断
等等的信息。
BIOS 进行开机自我测试 (Power-on Self Test, POST)
执行硬件侦测的初始化
设定 PnP 装置
定义可开机的装置顺序
读取开机装置的数据
2. 读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub2, spfdisk 等程序);
3. 依据 boot loader 的设定将Kernel (核心)解压缩(又称为加载)到主存储器当中,Kernel 会开始侦测硬件与加载驱动程序,包括储存装置、CPU、网络卡、声卡等等。
4. 在硬件驱动成功后,Kernel 会主动呼叫 systemd 程序,并以 default.target 流程开机;
o systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统;
o systemd 启动 multi-user.target 下的本机与服务器服务;
o systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local 文件;
o systemd 执行 multi-user.target 下的 getty.target 及登入服务;
o systemd 执行 graphical 需要的服务
开机流程的名词提取:
1、BIOS
2、MBR的boot Loader
3、Kernel
硬件
驱动程序
4、systemd程序
default.target流程
sysinit.target
basic.target
multi-user.target的本机和服务器服务
multi-user.target的/etc/rc.d/rc.local
multi-user.target的getty.target及登入服务
graphical
boot loader 主要的功能如下:
? 提供选单:用户可以选择不同的开机项目,这也是多重引导的重要功能!
? 载入核心文件:直接指向可开机的程序区段来开始操作系统;
? 转交其他 loader:将开机管理功能转交给其他 loader 负责。
initramfs 虚拟文件系统。Initial RAM Disk 或 Initial RAM Filesystem。使用的文件名:/boot/initrd 或 /boot/initramfs
vmlinuz 核心文件。这些核心模块(驱动程序)就放置在 /lib/modules/ 目录内
default.target 预设的操作环境
graphical.target 图形界面
/etc/systemd/system/graphical.target.wants/:使用者设定加载的 unit
/usr/lib/systemd/system/graphical.target.wants/:系统默认加载的 unit
/usr/lib/systemd/system/graphical.target
/usr/lib/systemd/system/multi-user.target 文字界面
/usr/lib/systemd/system/multi-user.target.wants/
/etc/systemd/system/multi-user.target.wants/
? /usr/lib/systemd/system (系统默认的服务启动脚本设定)
? /etc/systemd/system (管理员自己开发与设定的脚本设定)
模块:
? /etc/modules-load.d/*.conf:单纯要核心加载模块的位置;
? /etc/modprobe.d/*.conf:可以加上模块参数的位置
/etc/sysconfig/*
systemctl list-dependencies graphical.target 命令,查看系统的服务启用的流程
systemctl [指令]
指令项目包括如下:
halt 进入系统停止的模式,屏幕可能会保留一些讯息,这与你的电源管理模式有关
poweroff 进入系统关机模式,直接关机没有提供电力喔!
reboot 直接重新启动
suspend 进入休眠模式
reboot # 系统重新启动
poweroff # 系统关机
restart atd # 重新启动 atd 这个服务
enable atd # 让这个服务开机就自动启动
status atd # 查阅一下 atd 目前的状态
[command] [--type=TYPE] [--all]
command:
list-units:依据 unit 列出目前有启动的 unit。若加上 --all 才会列出没启动的。
list-unit-files :依据 /usr/lib/systemd/system/ 内的文件,将所有文件列表说明。
--type=TYPE:就是之前提到的 unit type,主要有 service, socket, target 等
[[email protected] ~]# systemctl [command] [unit.target]
选项与参数:
command:
get-default :取得目前的 target
set-default :设定后面接的 target 成为默认的操作模式
isolate:切换到后面接的模式
hibernate 进入休眠模式
rescue 强制进入救援模式
emergency 强制进入紧急救援模式
list-dependencies [unit] [--reverse]
选项与参数:
--reverse :反向追踪谁使用这个 unit 的意思!
以上是关于2018-04-23 《鸟哥的Linux私房菜 基础学习篇(第四版)》 第19章 开机流程模块管理与Loader 笔记的主要内容,如果未能解决你的问题,请参考以下文章