HCRM博客

如何引导CentOS 7系统启动?

CentOS 7的引导过程是一个复杂但有序的系统启动流程,它涉及多个步骤和组件,以下是对CentOS 7引导过程的详细解释:

一、引导过程总览

1、开机自检(POST)

如何引导CentOS 7系统启动?-图1
(图片来源网络,侵权删除)

当服务器或计算机开机时,首先会根据主板BIOS(基本输入输出系统)中的设置进行硬件的初步检测和初始化,包括CPU、内存、显卡、键盘等设备。

2、MBR(主引导记录)引导

在自检完成后,BIOS会找到硬盘的第一个扇区,即MBR,并将其加载到内存中,MBR负责磁盘操作系统对磁盘进行读写时分区合法性的判别及分区引导信息的定位。

MBR将告诉程序下一阶段去哪里找系统的GRUB引导。

3、GRUB菜单

系统控制权传递给GRUB后,GRUB将显示一个菜单,提供用于选择不同操作系统或内核版本的选项。

如何引导CentOS 7系统启动?-图2
(图片来源网络,侵权删除)

用户可以根据需要选择并加载特定的Linux内核文件。

4、加载Linux内核与initramfs

GRUB从本地硬盘中加载Linux内核以及内存文件系统(initramfs),initramfs是一个经过gzip压缩的cpio归档,其中包含启动时所有必要的硬件内核模块和初始化脚本。

5、加载硬件驱动及初始化进程

内核在initramfs中找到驱动程序的所有硬件,然后作为PID 1从initramfs执行/sbin/init,在CentOS 7中,这个init被替换为systemd。

systemd启动initrd.target中的所有单元,并挂载根文件系统,之后从initramfs切换到磁盘根目录,并重新运行/sysroot.systemd。

如何引导CentOS 7系统启动?-图3
(图片来源网络,侵权删除)

systemd继续启动默认target(可能是图形界面或字符终端),最后等待用户登录。

二、关键组件详解

1、init进程

init是由Linux内核加载运行的/sbin/init程序,是系统中的第一个进程,其PID号永远为1。

init进程负责初始化系统环境,启动其他所有系统进程。

2、Systemd进程

从CentOS 7版本开始,systemd成为PID恒为1的初始化进程,取代了传统的init进程。

systemd的目的是将更多的服务并发启动,从而提高系统启动速度,并具有按需启动服务的能力。

systemd使用目标(target)来表示系统的运行级别,不同的运行级别对应不同的systemd目标,如multiuser.target(相当于运行级别3)和graphical.target(相当于运行级别5)。

三、常见问题及解答

Q1: CentOS 7忘记root密码怎么办?

A1: 如果忘记了CentOS 7的root密码,可以通过以下步骤重置:

在GRUB菜单出现时,按下e键进入编辑模式。

在linux16/linux/linuxefi所在参数行尾添加init=/bin/sh

按Ctrl+x启动到Shell

挂载文件系统为可写模式:mount –o remount,rw /

运行passwd命令并按提示修改root密码。

运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启。

Q2: 如何修复CentOS 7的MBR引导问题?

A2: 如果MBR引导出现问题,可以尝试以下步骤修复:

使用安装光盘或救援模式启动系统。

进入救援模式后,使用dd if=/dev/sda of=/root/mbr.bak count=1 bs=512备份MBR。

如果MBR被破坏,可以使用之前备份的MBR进行恢复:dd if=/root/mbr.bak of=/dev/sda bs=512 count=1

如果没有备份,可以尝试使用系统安装盘或其他工具进行MBR修复。

操作涉及系统底层设置和数据安全,请在进行任何操作前确保已备份重要数据,并谨慎操作,如果不确定如何操作,建议咨询专业人士或查阅官方文档。

分享:
扫描分享到社交APP
上一篇
下一篇