Linux 启动顺序

第一步启动:BIOS/UEFI

BIOS (Basic Input Output System) 即基本输入输出系统。

UEFI (Unified Extensible Firmware Interface) 即可扩展固件接口。

它们的主要作用是为计算机提供直接、底层的硬件控制和设置。UEFT 是 BIOS 的升级替代方案。

第二步启动:MBR/GPT

MBR (Master Boot Record) 即主引导记录。MBR 通常和 BIOS 搭配,最大分区容量不能超过 2T,最多可以有 3 个主分区,1 个扩展分区,不过扩展分区里可以有多个逻辑分区。

GPT (GUID Partition Table) 即全局唯一标识分区表。GPT 通常和 UEFI 搭配。

它们都是读取硬盘时最先读取的分区,里面有各自的启动代码。

第三步启动:GRUB2

GRUB2 (GRand Unified Bootloader version 2) 即多操作系统启动程序,可以选择系统分区上不同的系统内核,同时也可以向启动的内核传递参数。

第四步启动:initrd/Kernel

initrd (init ramdisk) 即初始化内存盘,作用是:
1) 提供开机必备的单 kernel 文件 (vmlinuz) 没有提供的驱动模块。
2) 通过引导加载程序加载内存,将内存视为临时根 “/” 目录,从中运行程序,之后再将根 “/” 目录转移到硬盘上真正的根 “/” 目录上。


注意:系统启动 initrd 的时间默认上限是 90 秒钟,如果 initrd 加载的时间超过 90 秒钟,则系统会报以下错误:

Warning: dracut-initqueue timeout - starting timeout scripts

(补充链接:Linux 解决启动时,某个盘挂不上或者报错 “Warning: dracut-initqueue timeout – starting timeout scripts”

第五步启动:systemdprocess

systemdprocess,即启动各类程序和进程。

[命令] Linux 命令 uname (显示系统信息)

内容一:uname 命令的格式

# uname <option>

内容二:uname 命令的选项

1) -a 或者 –all,显示所有系统信息

(补充:如果系统处理器类型和系统硬件平台处于未知状态则不显示)

2) -s 或者 –kernel-name,显示系统内核
3) -n 或者 –nodename,显示系统节点名称
4) -r 或者 –kernel-release,显示系统内核发布版本
5) -m 或者 –machine,显示系统硬件名称
6) -p 或者 –processor,显示系统处理器类型
7) -i 或者 –hardware-platform,显示系统硬件平台
8) –help,显示帮助信息
9) –version,显示 uname 命令版本

[命令] Linux 命令 hwclock (硬件时钟的管理)

内容一:hwclock 命令的格式

# hwclock <function> <option...>

内容二:hwclock 命令的功能

1) –adjust,以前每次更改硬件时钟的记录,都会被写入到 /etc/adjtime 文件中。使用 –adjust 功能可以根据过往来记录估算和校正硬件时钟
2) –debug,显示执行 hwclock 命令时的详细过程
3) –directisa,hwclock 默认从 /dev/rtc 存取硬件时钟,–directisa 功能可以直接从 I/O 存取硬件时钟
4) –hctosys,将硬件时钟调整到和系统时钟一致
5) –help,显示帮助信息
6) –set –date=,设置硬件时钟的时间
7) –show,显示硬件时钟的时间
8) –systohc,当硬件时钟和系统时钟一致时,将硬件时钟的时区调整到和系统时钟一致
9) –test,测试命令
10) –localtime,将硬件时钟视为本地时间
11) –version,显示命令的版本

[内容] Linux 软件指定版本的升级或降级 (CentOS Linux 7 版) (以系统版本作为指定维度)

内容一:将软件降级到某个版本

# yum --disablerepo='*' --enablerepo='C7.6*' update openssh

(补充:这里以将 openssh 软件升级到 CentOS Linux 7.6 系统版本里的最新版本为例为例)

或者:

# yum --disablerepo='*' --enablerepo='C7.6*' upgrade openssh

(补充:这里以将 openssh 软件升级到 CentOS Linux 7.6 系统版本里的最新版本为例为例)

内容二:将软件降级到某个版本

# yum --disablerepo='*' --enablerepo='C7.6*' downgrade openssh

(补充:这里以将 openssh 软件降级到 CentOS Linux 7.6 系统版本里的最新版本为例为例)