本文共 2056 字,大约阅读时间需要 6 分钟。
引导过程与服务控制
Linux操作系统引导过程
操作系统引导过程可以概括为以下几个关键环节:
硬件自检:
BIOS通过CMOS芯片读取主板设置,检查硬件设备是否正常工作。如果检测到问题,会报错提示。 MBR引导:
MBR包含三个主要部分: - 启动引导程序(446字节):负责加载内核和提供用户选项。
- MBR分区表(64字节):记录硬盘分区信息。
- 识别码(2字节):用于确认MBR的正确性。启动引导程序会寻找内核,提供用户选择的选项。
内核加载:
内核在加载过程中会重新检测硬件并加载驱动程序。通过虚拟文件系统挂载系统文件,确保内核正常运行。 系统初始化:
- systemd进程(pid=1):作为第一个进程启动。
- sysinit目标:初始化文件系统、用户目录、网络设置等。
- multi-user目标:启动系统自启动服务。
- getty单元:为用户准备登录环境。
- 图形界面启动(可选):启动必要的图形服务。
Systemd单元类型
Systemd支持多种单元类型,主要有以下几种:
- service单元:用于定义服务,例如
apache.service。 - target单元:定义系统运行目标,例如
multi-user.target。
通过这些单元,systemd可以管理系统服务和运行状态。
运行级别与Systemd目标
Systemd使用目标(target)来定义不同的运行级别:
- init0、init3、init5、init6:分别对应不同的运行级别。
- init6=reboot:用于关机后重启。
- shutdown -r:支持按重启模式关机。
- runlevel命令:查看当前运行级别,例如
runlevel显示当前级别,runlevel -r显示之前的级别。
当前系统运行级别为runlevel3 5,表示从未改动过。
配置文件与管理命令
配置文件
- /etc/systemd/system:存放不同运行级别的自启动服务配置。
- /run/systemd/system:系统运行期间产生的临时服务脚本目录。
- /usr/lib/systemd/system:存储服务启动脚本的主要文件,类似于传统的
/etc/init.d目录。
管理命令
- systemctl --version:查看systemd版本信息。
- systemctl start name.service:启动服务。
- systemctl stop name.service:停止服务。
- systemctl restart name.service:重启服务。
- systemctl reload name.service:重新加载服务配置文件。
- systemctl status name.service:查看服务状态。
- systemctl enable name.service:设置服务开机自启动。
- systemctl disable name.service:设置服务不开机自启动。
- systemctl is-enabled name.service:查看服务是否开机启动。
- systemctl list-unit-files|grep enabled:查看已启动的服务列表。
- systemctl is-active name.service:查看服务是否已成功启动。
- systemctl is-failed name.service:查看服务是否启动失败。
- systemctl mask name.service:屏蔽服务。
- systemctl cat kube-apiserver name.service:查看服务配置文件。
- systemctl unmask name.service:取消屏蔽服务。
- systemctl get-default:查看当前系统默认启动目标。
- systemctl set-default multi-user.target:设置默认启动目标为
multi-user.target。 - systemd-analyze:查看系统启动耗时。
系统修复
MBR扇区故障修复
故障原因
- 病毒或恶意软件破坏。
- 不正确的分区操作或磁盘读写错误。
故障现象
解决思路
备份文件:提前备份重要数据。 使用安装光盘进入急救模式: - 按
Esc进入启动菜单。 - 选择
rescue选项。 - 从备份文件恢复系统。
GRUB引导故障修复
故障原因
故障现象
解决思路
手动输入引导命令: - 使用安装光盘进入系统。
- 输入
grub> root并挂载文件系统。 - 输入
grub> boot启动系统。
遗忘root用户密码修复
故障原因
故障现象
解决思路
进入急救模式: - 按
Esc进入启动菜单。 - 选择
rescue选项。 - 按
c进入命令模式。 - 输入
chroot切换根目录。 - 输入
passwd root重置root密码。
转载地址:http://xdpqz.baihongyu.com/