Linux 系统启动流程、关键操作及基础运用详解

一、开篇介绍
Linux 系统的启动是一个按序执行的复杂过程,从计算机通电到登录界面出现,涉及多个环节的协同运作。掌握这一流程,有助于理解系统工作机制,也是排查启动故障的基础。本文将详细解析 Linux 系统的启动步骤,以及相关的运行级别设置、GRUB2 操作和 root 密码破解等关键内容,同时补充一些基础运用知识,帮助读者更好地进行系统日常操作。
二、Linux 系统启动的详细步骤
(一)开机自检(POST)
计算机加电后,首先执行开机自检(POST,Power-On Self-Test),该过程由 BIOS(基本输入输出系统)或 UEFI(统一可扩展固件接口)主导。其核心任务是检测内存、CPU、硬盘、显卡、键盘等核心硬件组件的可用性。若硬件存在故障,系统会通过蜂鸣声或屏幕提示等方式报错。
自检完成后,BIOS/UEFI 依据预设的启动顺序(可在固件设置中修改)检索启动设备(如硬盘、U 盘、光盘等),确定启动设备后进入下一阶段。
(二)MBR 引导
启动设备确定后,BIOS/UEFI 读取该设备的主引导记录(MBR)。MBR 位于硬盘第一个扇区,固定为 512 字节,包含引导加载器的关键信息。
Linux 系统中,主流引导加载器为 GRUB2。BIOS/UEFI 读取 MBR 后,将系统控制权移交至 GRUB2,由其继续引导启动流程。
(三)GRUB 菜单
GRUB2 获得控制权后,读取配置文件 /boot/grub2/grub.cfg。该文件记录系统内安装的内核版本、操作系统信息等关键配置。
根据配置文件内容,GRUB2 在屏幕显示引导菜单。若系统存在多个内核或操作系统,用户可通过方向键选择启动项;若未进行操作,GRUB2 将按默认配置启动。
(四)加载 Linux 内核
GRUB2 根据选择加载对应的 Linux 内核文件(通常以 vmlinuz 为前缀)至内存。内核是系统核心,负责管理系统资源。
内核载入内存后,GRUB2 完成使命,控制权移交内核。CPU 随即执行内核代码,进行初始化操作,包括任务调度系统初始化、内存分配机制设置、必要硬件驱动加载等,为内核构建稳定运行环境。
(五)运行 systemd 进程
内核初始化完成后,启动系统首个用户空间进程 systemd,其进程号固定为 1,所有其他进程均由其直接或间接启动。
systemd 启动后,读取 /etc/systemd/system/default.target 文件,该文件用于设定系统运行级别。运行级别决定系统启动的服务及功能范围。
三、运行级别详解
Linux 系统定义 7 种运行级别(0-6),各级别功能明确:
0:关机级别,触发系统关机操作。
1:单用户模式,仅 root 用户可登录,用于系统维护与故障排查(如密码修改)。
2:多用户模式,无网络功能,支持多用户登录但无法联网。
3:完全多用户模式(命令行界面),服务器常用模式,支持多用户登录及网络功能,通过命令行操作。对应 systemd 目标为 multi-user.target。
4:保留级别,暂未定义具体用途。
5:图形化界面模式,启动图形桌面环境,支持鼠标与图标操作。对应 systemd 目标为 graphical.target。
6:重启级别,执行系统重启操作。
(一)查看和设置默认运行级别
查看当前默认运行级别的命令:
systemctl get-default
执行后显示默认目标(如 multi-user.target 对应 3 级,graphical.target 对应 5 级)。
修改默认运行级别的命令:
systemctl set-default 目标名称
示例:
设置为命令行界面(3 级):
systemctl set-default multi-user.target
设置为图形化界面(5 级):
systemctl set-default graphical.target
(二)临时切换到图形化界面
当前为命令行界面(3 级)时,临时切换至图形化界面(5 级)的命令:
systemctl isolate graphical.target
该切换为临时生效,重启后恢复默认运行级别。
四、GRUB2 相关操作
(一)更新 GRUB2 配置文件
安装新内核或修改启动选项后,需更新配置文件 /boot/grub2/grub.cfg 使修改生效,命令为:
grub2-mkconfig -o /boot/grub2/grub.cfg
或
grub2-mkconfig > /boot/grub2/grub.cfg
两者功能一致,均根据系统当前状态重新生成配置文件并保存。
(二)修复 GRUB2
若 grub2 目录被删除导致启动引导器失效,修复步骤如下:
重新在硬盘安装启动引导器:
grub2-install /dev/sda
其中 /dev/sda 为硬盘设备名,需根据实际情况调整。执行后恢复 grub2 目录。
-
重新生成 grub.cfg 文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
(三)GRUB2 加密
为防止未授权修改启动选项,可对 GRUB2 加密,支持明文与密文两种方式。
明文加密:
vim /etc/grub.d/00_header
cat << EOF
set superusers="hina"
password hina 123456
EOF
其中 "hina" 为超级用户名,"123456" 为密码,可自定义。
grub2-mkconfig -o /boot/grub2/grub.cfg
打开配置文件:
在文件中添加:
更新配置使加密生效:
密文加密:
密文加密更安全,步骤如下:
grub2-mkpasswd-pbkdf2
输入密码后,复制生成的密文(注意避免多余空格)。
vim /etc/grub.d/00_header
cat << EOF
set superusers="hina"
password_pbkdf2 hina 粘贴密文密码
EOF
其中 "hina" 为超级用户名,粘贴密文至对应位置
grub2-mkconfig -o /boot/grub2/grub.cfg
生成密文密码:
打开配置文件:
添加内容:
更新配置:
五、破解 Linux 管理员 root 密码
遗忘 root 密码时,可按以下步骤破解:
重启系统,GRUB2 引导菜单出现时按 "e" 进入编辑模式。
找到 Linux 内核所在行,在末尾添加 "rd.break",按 Ctrl+X 启动。
进入伪系统后,重新挂载根目录并赋予读写权限:
mount -o remount,rw /sysroot
进入真实系统:
chroot /sysroot
修改 root 密码,两种方式可选:
输入passwd root,按提示输入新密码并确认。
echo linux123 | passwd --stdin root
直接将密码设为 linux123(可替换为自定义密码)。
为 SELinux 写入标签:
touch /.autorelabel
两次输入exit退出,系统重启后即可用新密码登录 root 用户。
此外,设置 root 密码也可使用:
echo redhat | passwd --stdin root
该命令将密码设为 redhat,可按需修改。
六、基础运用内容
(一)系统状态查看
查看系统版本信息:不同的 Linux 发行版查看系统版本的命令有所不同。在 CentOS 系统中,可使用cat /etc/redhat-release命令;在 Ubuntu 系统中,可使用lsb_release -a命令。这些命令能帮助我们快速了解所使用的系统版本,以便进行相应的操作和配置。
查看系统运行时间:使用uptime命令可以查看系统的运行时间、当前登录用户数以及系统的平均负载。平均负载是指在特定时间间隔内运行队列中的平均进程数,一般来说,平均负载的值不超过系统 CPU 核心数较为合理。
查看内存使用情况:free -h命令可以以人类可读的方式显示内存的使用情况,包括总内存、已使用内存、空闲内存、共享内存、缓冲和缓存等信息。通过这些信息,我们可以判断系统内存是否充足,是否需要进行内存优化或扩容。
查看磁盘使用情况:df -h命令用于查看文件系统的磁盘空间使用情况,包括每个分区的总容量、已使用容量、可用容量以及挂载点等。当磁盘空间不足时,该命令能帮助我们找到占用空间较大的文件或目录,以便进行清理。
查看进程信息:ps aux命令可以显示系统中所有正在运行的进程信息,包括进程 ID、用户、CPU 使用率、内存使用率、启动时间等。如果需要查看特定进程的信息,可结合grep命令使用,例如ps aux | grep nginx可以查看 nginx 进程的相关信息。
(二)服务管理
查看服务状态:使用systemctl status 服务名称命令可以查看指定服务的运行状态,例如systemctl status sshd可以查看 ssh 服务是否正在运行、启动时间等信息。如果服务正在运行,会显示 "active (running)";如果服务未运行,会显示 "inactive (dead)"。
启动服务:systemctl start 服务名称命令用于启动指定的服务,例如systemctl start httpd可以启动 Apache 服务。
停止服务:systemctl stop 服务名称命令用于停止指定的服务,例如systemctl stop mysql可以停止 MySQL 服务。
重启服务:当服务的配置文件进行修改后,通常需要重启服务使修改生效,可使用systemctl restart 服务名称命令,例如systemctl restart nginx重启 nginx 服务。
设置服务开机自启:为了保证服务在系统重启后能自动运行,可使用systemctl enable 服务名称命令设置服务开机自启,例如systemctl enable sshd设置 ssh 服务开机自启。如果需要取消开机自启,可使用systemctl disable 服务名称命令。
(三)日志查看
系统日志:Linux 系统的日志文件通常存放在/var/log目录下,其中/var/log/messages是系统的主要日志文件,记录了系统的各种重要事件,如系统启动、服务启动和停止、错误信息等。使用tail -f /var/log/messages命令可以实时查看日志文件的最新内容,便于及时发现系统问题。
服务日志:许多服务都有自己的日志文件,例如 Apache 服务的日志文件通常在/var/log/httpd目录下,包括访问日志(access_log)和错误日志(error_log);MySQL 服务的日志文件位置可在其配置文件中查看。查看服务日志有助于排查服务运行过程中出现的问题。
七、总结
Linux 系统启动流程包括开机自检、MBR 引导、GRUB 菜单、加载内核、运行 systemd 进程五个核心步骤,各环节紧密衔接。掌握运行级别设置、GRUB2 操作及 root 密码破解等知识,对系统管理与维护至关重要。同时,了解系统状态查看、服务管理和日志查看等基础运用内容,能帮助我们更好地进行日常的系统操作和问题排查。通过本文解析,可全面理解 Linux 启动机制及相关基础运用,为实际操作与故障处理提供支撑。