CentOS/RHEL 7/8 系统中以单用户模式

     单用户模式(维护模式)是Linux系统修复环境,仅挂载本地文件系统、不启用网络,提供最小化修复环境。

       系统启动时仅允许 root 用户操作,用于修复多用户环境下无法解决的问题(如密码重置、文件系统修复)。


一、进入单用户模式(CentOS/RHEL 7/8)

方法1:通过 rd.break 参数

GRUB编辑

重启系统 → GRUB界面按 e

在开机显示 GRUB 菜单时,若误按了 c 键(该键功能是进入 GRUB 命令行模式 ),就会进入此界面。GRUB 菜单中,按下 “c” 键通常会进入 GRUB 的命令行模式

不按 “c” 键,而是停留在 GRUB 的图形普通菜单页面,可能是后续需要在这个菜单页面进行某些选择或操作,而不是进入命令行模式去执行命令。

定位 linux16(CentOS 7)或 linux(CentOS 8)行 → 行末添加 rd.break

按 Ctrl+x 启动进入紧急模式,执行以下命令挂载读写文件系统并进入 chroot 环境:

挂载与权限修复

mount | grep root              # 检查只读挂载(ro)
mount -o remount,rw /sysroot  # 挂载为读写模式
chroot /sysroot               # 进入系统环境

方法2:通过 init=/sysroot/bin/sh 参数

GRUB编辑

GRUB界面按 e → 替换 ro 为 rw init=/sysroot/bin/sh

按 Ctrl+x 启动

挂载系统环境

chroot /sysroot  # 进入系统环境

注意:完成后需执行 touch /.autorelabel 修复SELinux标签,再 exit → reboot


二、典型应用场景

系统启动进入单用户模式后,会自动以根(root)用户身份进入命令行界面。此时需要挂载根文件系统,执行命令:

chroot /sysroot
场景1:重置 root 密码
passwd root       # 修改密码
touch /.autorelabel  # 修复SELinux标签
exit              # 退出chroot
reboot            # 重启
场景2:文件系统修复

操作流程

umount /dev/sda3          # 卸载目标分区(若已挂载)
fsck -y /dev/sda3         # 修复ext4分区(-y自动确认)
mount /dev/sda3 /data     # 重新挂载
df -h /data               # 验证挂载

不同文件系统修复命令

文件系统 命令 关键参数说明
ext4 fsck.ext4 -y /dev/sda3 -y自动修复
XFS xfs_repair /dev/sda3 -L 强制清空日志(慎用!)
Btrfs btrfs check --repair /dev/sda3 数据可能丢失风险
场景3:挂载点问题修复

问题1:/etc/fstab 配置错误

vi /etc/fstab              # 修正设备路径(如 /dev/sda3→/dev/sda4)
mkdir -p /data             # 重建挂载目录(若丢失)
mount /dev/sda3 /data      # 测试挂载

问题2:设备繁忙无法卸载

lsof /data                 # 查找占用进程
fuser -m /data             # 查看进程PID
kill -9 <PID>              # 终止进程
umount -lf /dev/sda3       # 强制卸载(-lf参数)

三、关键注意事项

风险操作

xfs_repair -L:可能丢失未提交数据

btrfs --repair:仅作为最后手段(官方警告可能损坏数据)

umount -lf:强制卸载可能导致数据损坏

系统差异

CentOS 7:GRUB中使用 linux16 行

CentOS 8:GRUB中使用 linux 行

SELinux 必选项

touch /.autorelabel  # 密码重置/关键修复后必须执行!

分区检查

fdisk -l           # 确认设备路径
blkid              # 核对UUID

快捷键用法

Ctrl + Alt + Del:在某些系统上,按下该组合键可能会显示一个重启菜单,从中可以选择单用户模式。

      tty1 – tty6 是系统的本地虚拟控制台,是 Linux 预设的 6 个文本命令行终端,每个终端独立运行,支持多用户同时登录操作

      在这些运行级别下,用户都可以通过 tty1 – tty6 进行文本方式登录,然后执行各种命令和操作。

     通过Ctrl + Alt + F1~F6切换到不同的 tty 进行登录,即使图形界面或网络服务不可用,也能提供一种低级别的本地访问方式。

Linux 运行级别 (Runlevel) 详解

基本概念

定义:运行级别是系统预设的工作状态,决定启动哪些服务和功能

历史背景:传统 SysVinit 系统的核心机制,现代 systemd 系统兼容但使用”目标”(target)概念替代

runlevel        # 显示当前运行级别(如 "N 3" 表示当前为3级)
who -r          # 显示当前运行级别及启动时间

# 切换到运行级别3(多用户命令行模式)
init 3

# 切换到运行级别5(图形界面模式)
init 5

# 重启系统(等效 init 6)
telinit 6

systemd 系统(现代发行版):

# 设置默认进入命令行模式(等效 runlevel 3)
systemctl set-default multi-user.target

# 设置默认进入图形模式(等效 runlevel 5)
systemctl set-default graphical.target

# 查看当前默认目标
systemctl get-default

# 查看各级别启用的服务
ls -d /etc/rc[0-6].d

典型应用场景-服务器部署

级别 1:修复文件系统/重置密码
单用户模式 (1级) 安全风险直接获得 root 权限(无需密码)物理访问控制至关重要
# GRUB内核参数添加 single 或 1
linux /vmlinuz root=/dev/sda1 single

桌面环境切换
级别 3:无图形界面的高效运行模式(节省资源)

级别 5:启用图形界面

startx  # 从级别3启动图形界面(临时)
init 5  # 永久切换到图形模式

 注意:现代 Linux 发行版(CentOS 7+/Ubuntu 16.04+)默认使用 systemd,但仍兼容运行级别命令。


7 个标准运行级别

级别 名称 状态描述 典型应用场景 关键注意事项
0 Halt 系统关机状态 安全关闭系统 🚫 不可设为默认级别
1 Single User Mode 单用户维护模式(root权限) 系统修复/密码重置/文件系统修复 禁用网络和远程登录
2 Multi-User (No NFS) 多用户模式(基础网络) 无网络文件共享的本地多用户环境 某些发行版等同3级
3 Full Multi-User 完整多用户模式(带网络服务) 服务器标准运行状态 默认命令行模式
4 Unused 用户自定义保留级别 特殊用途或测试环境 通常未分配功能
5 Graphical Interface 图形界面模式(X11) 桌面环境标准运行状态 在3级基础上加载GUI
6 Reboot 系统重启状态 安全重启系统 🚫 不可设为默认级别

级别 0 和 6

绝对不可设为默认级别(会导致无法正常启动) 

物理机切换快捷键

进入文本终端:按Ctrl+Alt+F1~F6切换到 tty1~tty6。
返回图形界面:按Ctrl+Alt+F7(图形界面通常占用 tty7)。 

虚拟机(如 VMware)切换快捷键

进入文本终端Alt+Shift+Ctrl+F1~F6
注意:虚拟机可能屏蔽物理机快捷键,需按虚拟机软件设定调整。


总结:单用户模式是系统修复的核心环境,需严格按流程操作:

GRUB 编辑内核参数 → 2. 进入紧急模式 → 3. 挂载读写文件系统 → 4. chroot 进入系统 → 5. 执行修复 / 密码重置 → 6. 配置 SELinux 并重启

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
那棵树它开了花的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容