上一篇
linux7如何进入单用户
- Linux
- 2025-08-04
- 8
nux7进入单用户模式:重启进GRUB界面选内核按“e”,改“ro”为“rw”并加“init=/bin/sh”,按Ctrl+X启动。
是关于Linux 7(以CentOS 7为例)如何进入单用户模式的详细步骤说明:
通过GRUB修改内核参数并添加init=/bin/sh
- 重启系统并进入GRUB界面
- 重新启动服务器,在启动过程中快速按下键盘上的
Esc
或Shift
键(不同设备可能响应按键略有差异),此时会显示GRUB引导菜单,若未及时按下这些键导致直接进入了正常启动流程,则需要再次重启尝试捕捉时机,使用方向键选择对应的启动项,通常是标注为 “CentOS Linux 7” 的那个选项。
- 重新启动服务器,在启动过程中快速按下键盘上的
- 编辑内核启动参数
- 选中目标启动项后按
e
键进入编辑模式,找到以linux16
开头的那一行(linux16 /vmlinuz...
),这一行包含了当前系统的内核路径和其他一些重要的启动参数。 - 将原本的
ro
(只读模式)修改为rw
(读写模式),确保后续能够对文件系统进行写入操作,然后在该行的末尾添加init=/bin/sh
,这样设置的目的是让系统在启动时不运行默认的初始化进程,而是直接启动一个Shell环境,从而进入单用户模式,修改后的示例如下:linux16 /vmlinuz... root=/dev/mapper/centos-root rw init=/bin/sh
。
- 选中目标启动项后按
- 启动到单用户模式
- 完成上述修改后,按
Ctrl+X
或F10
键,系统会使用新的参数开始启动,并最终进入单用户Shell环境,在这个环境中,您拥有root权限,可以进行各种高级操作。
- 完成上述修改后,按
- 挂载文件系统(可选但推荐)
- 如果发现文件系统仍然是只读状态,可以手动执行命令
mount -o remount,rw /
将其重新挂载为读写模式,以便后续的操作如修改密码等可以顺利进行。
- 如果发现文件系统仍然是只读状态,可以手动执行命令
- 修改Root密码
- 在单用户模式下,可以直接输入命令
passwd root
,然后按照提示设置新的root密码,这是解决忘记root密码问题的常用方法之一。
- 在单用户模式下,可以直接输入命令
- 更新SELinux上下文(可选)
- 如果系统启用了SELinux安全机制,为了确保更改生效且不影响系统的正常运行,建议执行命令
touch /.autorelabel
,这个操作会在下一次系统重启时自动重新标记文件的安全上下文。
- 如果系统启用了SELinux安全机制,为了确保更改生效且不影响系统的正常运行,建议执行命令
- 退出单用户模式并重启
- 完成所有必要的操作后,可以通过两种方式退出单用户模式:一是输入命令
exec /sbin/init
,这会使系统恢复到正常的运行级别;二是直接输入reboot
命令重启系统。
- 完成所有必要的操作后,可以通过两种方式退出单用户模式:一是输入命令
使用rd.break
参数强制进入紧急模式
- 重启并编辑GRUB配置
- 同样先重启系统,在GRUB菜单中选择启动项后按
e
键进入编辑界面,定位到以linux16
(针对CentOS 7)或linux
(适用于CentOS 8及以上版本)开头的那一行,在其末尾添加参数rd.break
。
- 同样先重启系统,在GRUB菜单中选择启动项后按
- 启动至紧急维护壳
- 添加完参数后按
Ctrl+X
启动系统,此时会进入一个特殊的紧急维护Shell环境,这种模式主要用于当系统遇到严重问题无法正常启动时的故障排查和修复工作。
- 添加完参数后按
- 挂载根目录为可写状态
- 在这个紧急环境中,首先需要检查当前的挂载情况,可以使用命令
mount | grep root
查看根文件系统的挂载信息,确认是只读挂载后,执行命令mount -o remount,rw /sysroot
将其重新挂载为可写模式。
- 在这个紧急环境中,首先需要检查当前的挂载情况,可以使用命令
- 切换至Chroot环境
- 接着使用命令
chroot /sysroot
切换到系统的根目录环境,这样就可以像在正常系统中一样对文件进行操作了。
- 接着使用命令
- 执行修复操作
- 在这里可以进行诸如重置密码、修复损坏的配置文件等一系列关键的修复任务,要修改root密码,可以使用
passwd root
命令。
- 在这里可以进行诸如重置密码、修复损坏的配置文件等一系列关键的修复任务,要修改root密码,可以使用
- 通知SELinux重新标记策略
- 如果涉及到对系统文件的重大更改,尤其是影响到SELinux策略的情况,应创建空文件
touch /.autorelabel
,以便在下次启动时SELinux能正确应用新的策略。
- 如果涉及到对系统文件的重大更改,尤其是影响到SELinux策略的情况,应创建空文件
- 退出Chroot并重启系统
- 完成所有修复工作后,先输入
exit
退出chroot环境,然后可以选择执行exec /sbin/init
或者reboot
来重新启动系统,使更改生效。
- 完成所有修复工作后,先输入
步骤序号 | 操作描述 | 命令示例 | 备注 |
---|---|---|---|
1 | 重启并进入GRUB编辑界面 | 按Esc/Shift键调出菜单,选启动项后按e键 | |
2 | 修改内核参数为rw并添加init=/bin/sh或rd.break | 将ro改为rw,行尾加init=/bin/sh或rd.break | 根据需求选择合适的方式 |
3 | 启动系统进入单用户/紧急模式 | 按Ctrl+X或F10键 | |
4 | 确保文件系统可写 | mount -o remount,rw /或mount -o remount,rw /sysroot | 视实际情况而定 |
5 | 切换至系统根环境 | chroot /sysroot | |
6 | 执行所需操作(如改密) | passwd root | 利用此机会进行必要的维护 |
7 | 更新SELinux标签(可选) | touch /.autorelabel | 仅当系统启用了SELinux时需要 |
8 | 退出并重启 | exec /sbin/init或reboot | 保存成果并恢复正常运行 |
FAQs
Q1: 如果GRUB界面没有出现怎么办?
A: 确保BIOS/UEFI设置中的“Quick Boot”(快速启动)已禁用,因为该功能会跳过部分启动过程导致无法捕捉到GRUB菜单,某些云服务商可能默认隐藏了GRUB界面,此时需通过控制台的特殊按键组合调出(如连续多次按任意键),若仍无法解决,可以尝试从救援介质启动并修复引导记录。
Q2: 单用户模式下无法修改网络配置怎么办?
A: 单用户模式默认关闭网络服务以提高安全性,如需临时启用网络进行调试,可在chroot后手动启动网络服务(如systemctl start network
),但需注意这可能会引入安全风险,更推荐的做法是在完成基础修复后尽快重启进入多用户模式