当前位置: 首页 > ds >正文

【Linux】第二十三章 控制启动过程

1. 请简要说明 RHEL9的启动过程。

(1)计算机通电。系统固件 (UEFI 或 BIOS) 开机自检 (POST),并初始化部分硬件,然后,固件会寻找启动设备(如硬盘、USB、网络等),并将控制权交给引导加载程序。

(2)一旦固件完成硬件检查,它会加载 GRUB2(Grand Unified Bootloader) 引导加载程序。GRUB2 显示引导菜单,用户可以选择启动内核或进入恢复模式。默认情况下,GRUB2 会从硬盘的引导分区中加载操作系统的内核(vmlinuz 文件)和初始内存盘(initramfs 文件)。

(3)GRUB2 启动后,加载并执行内核镜像(通常是 /boot/vmlinuz)。内核负责初始化硬件设备、挂载根文件系统(/),并启动操作系统的基本服务。

(4)在内核启动过程中,initramfs(初始内存文件系统)被加载到内存中。initramfs 是一个临时的根文件系统,通常包含用于挂载根文件系统所需的驱动程序和脚本。initramfs 会执行一些系统初始化任务,如检查磁盘、加载必要的内核模块、设置网络等。一旦initramfs完成其任务,他将卸载自身并挂载真正的根文件系统。

(5)内核完成初始化后,它会启动用户空间的第一个进程,通常是 systemd。它是所有进程的父进程,负责启动其他系统服务和进程(如网络、时间同步、磁盘挂载等)。systemd 会读取 /etc/systemd/system/default.target 来决定系统的启动级别,并启动相应服务。

2. 系统重启和关机的命令分别是什么?

系统重启:systemctl reboot 或 reboot。

系统关机:systemctl poweroff 或 poweroff。

3. Systemd target是什么?

systemd 可以管理所有的系统资源,Unit 是 systemd 管理系统资源的基本单位,systemd 通过单元文件控制 Unit 的启动。

target 就是一种单元文件,target 单元文件用于定义和描述不同的系统目标或状态,这些目标通常表示系统在不同运行级别或状态下应该启动的一组服务单元。 

在运行的系统中,可使用 systemctl isolate 命令切换到其他 target。

4. 重置丢失的root密码需要哪些步骤?

  • (1)重启系统。
  • (2) 按任意键(Enter 除外)中断 boot loader 倒计时。
  • (3)将光标移至要启动的内核条目。
  • (4)按 e 编辑选定的条目。
  • (5)将光标移到内核命令行(以 linux 开头的行)。
  • (6)将 rd.break 附加到行末, 利用该选项,系统从 initramfs 向实际系统移交控制权前,系统将会中断。 
  • (7)按 Ctrl+x 进行启动。
  • (8)以读/写形式重新挂载 /sysroot :mount -o remount,rw /sysroot。
  • (9)进入 /sysroot 中的 chroot 存放位置:chroot /sysroot。
  • (10)修改root密码:passwd root
  • (11)由于 passwd 命令重新创建了不带 SELinux 上下文的 /etc/shadow 文件,所以要确保所以文件重新获得标记:touch /.autorelabel。
  • (12)输入 exit 两次,第一次退出chroot,第二次退出 initramfs debug shell。

此时,系统将继续启动,执行完整的 SELinux relabel ,然后再次重新启动。

5. 如何让系统日志在重启后持久保留?

系统日志默认保存在 /run/log/journal 目录中,系统重启后将被删除。

可在 /etc/systemd/journald.conf 中将 Storage 参数设置为 persistent ,可以持久化系统日志。

http://www.xdnf.cn/news/7719.html

相关文章:

  • 汇川PLC通过Profinet转ModbusTCP网关读取西门子PLC数据案例
  • 【c# 中 == 和jave 的== 区别】
  • idea中,git的cherry-pick怎么用
  • Linux:库与链接
  • 基于Qwen3-7B FP8与基石智算打造高性能本地智能体解决方案
  • 佰力博科技与您浅谈低温介电材料特性及应用分析
  • 基于 STM32 单片机的实验室多参数安全监测系统设计与实现
  • 怎样解决photoshop闪退问题
  • OpenCV图像边缘检测
  • 第12天-Python+Qt5开发实战:10大经典案例与深度解析
  • JVM的面试相关问题
  • C++修炼:map和set的使用
  • TrollStore(巨魔商店)的由来介绍
  • 【typenum】 13 类型级无符号整型(uint.rs)
  • 分频电路设计
  • 中级网络工程师知识点9
  • 目标检测DINO-DETR(2023)详细解读
  • 【Linux】Linux 多线程
  • Java 中 final 与 static 的区别
  • 关于element-ui的table type=“expand“ 嵌套表格展开异常问题解决方案
  • 【C# 自动化测试】Selenium显式等待机制详解
  • Docker网络全景解析:Overlay与Macvlan深度实践,直通Service Mesh集成核心
  • 三轴云台之高精度稳定技术篇
  • 什么是 ERP、MES、PLM,生产制造中如何应用
  • 【C++算法】70.队列+宽搜_N 叉树的层序遍历
  • 软件架构之-论分布式架构设计及其实现
  • Day122 | 灵神 | 二叉树 | 二叉树的层序遍历 二叉树的锯齿状遍历
  • FactoryBean是什么,Spring如何实现FactoryBean的?
  • mac上将 Excel 文件的扩展名从 .xls 改为 .xlsx 后,打开时报错:“文件格式或文件扩展名无效”。
  • C++初阶-vector的模拟实现1