【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 ,可以持久化系统日志。

相关推荐
看我干嘛!11 分钟前
GME 和MGRE综合实验
运维·服务器·网络
x_lrong17 分钟前
Linux虚拟机配置jupyter环境并在宿主机访问
linux·运维·笔记·jupyter·虚拟机
羚羊角uou23 分钟前
【Linux网络】Socket编程TCP-实现Echo Server(上)
linux·运维·服务器
少年已不再年少年轻以化为青年31 分钟前
VirtualBox下虚拟机即可访问互联网,又可访问主机
运维·服务器·网络
爱奥尼欧33 分钟前
【Linux笔记】网络部分——数据链路层mac-arp
linux·网络·笔记
Evan_ZGYF丶39 分钟前
深入解析CFS虚拟运行时间:Linux公平调度的核心引擎
linux·驱动开发·嵌入式·bsp
❥ღ Komo·42 分钟前
Elasticsearch单机部署全指南
运维·jenkins
CHN悠远44 分钟前
debian13 安装钉钉后,钉钉无法运行问题的解决办法
linux·运维·服务器·钉钉·debian13
祎直向前1 小时前
在Ubuntu中下载gcc
linux·运维·ubuntu
guygg881 小时前
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
linux·kubernetes·centos