单用户模式(维护模式)是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 并重启。
暂无评论内容