单用户

这是一个涉及 Linux 启动流程、单用户模式、chroot 救援环境、init 区别的高级问题。下面我将从多个角度详细解析:


🧩 一、什么是「单用户模式」(Single User Mode)

✅ 定义:

单用户模式 是 Linux 的一种运行级别(runlevel),用于系统维护和修复,只启动根用户(root)Shell,不启动网络服务、多用户登录或图形界面。


📌 特点:

特性说明
没有网络连接 网络服务不会启动
只允许 root 用户登录 默认直接进入 shell,不需要密码(部分系统需设密码)
最小化服务 仅挂载最基本的文件系统,防止服务干扰
典型用途 修复系统、重设密码、检查文件系统、卸载损坏驱动等

✅ 启动方法:

  1. 在 grub 菜单中按 e 编辑启动项

  2. 找到内核启动行,以 linux 开头,末尾添加:

    single
    

    或:

    systemd.unit=rescue.target
    
  3. Ctrl + X 启动


🧩 二、/sysroot/bin/bash/bin/bash 区别

✅ 情景:你启动的是 救援模式(rescue mode)或 LiveCD

路径含义
/bin/bash 当前救援系统的 shell(LiveCD 内)
/sysroot/bin/bash 原系统(待修复的 Linux 系统)中的 Bash

🔧 chroot /sysroot 意义:

/sysroot 临时变成 /,模拟你原来的系统:

chroot /sysroot /bin/bash

这样你就能像登录正常系统一样执行命令、运行 grub-installpasswd 等。


🧩 三、/bin/init /sbin/init /usr/lib/systemd/systemd 区别

init 是 Linux 启动的第一个用户空间进程(PID 1)


启动路径随系统不同可能是以下几种:

路径说明
/sbin/init 传统 SysVinit 所在位置
/bin/init 某些发行版软链接到 /sbin/init
/usr/lib/systemd/systemd systemd 主程序路径
/lib/systemd/systemd 某些系统中 systemd 的实际位置

systemd 系统中:

/sbin/init -> /lib/systemd/systemd

✅ 启动流程图(简化):

BIOS/UEFI
   ↓
GRUB(加载内核 vmlinuz + initramfs)
   ↓
init(PID 1)
   ↓
加载 systemd 或 SysV 脚本 → 启动服务

🧠 总结对比表

路径来源/作用是否在原系统内启动阶段相关
/bin/bash 当前系统的 Shell 启动后普通 shell
/sysroot/bin/bash 原系统的 Shell(挂载在 /sysroot) chroot 后使用
/sbin/init init 启动入口(SysV) 是,PID 1
/usr/lib/systemd/systemd systemd 主程序 是,PID 1

🧰 常见用途对照

操作用途
single 模式进入系统 忘记 root 密码、修复启动问题
/sysroot + chroot + bash 在 rescue 模式中恢复原系统环境
init=/bin/bash 添加到 grub 启动项 不加载 systemd,直接进入 bash
替换 /sbin/init 为 shell 极端调试,模拟系统早期阶段操作

需要我帮你画一个完整的 Linux 启动流程图(含 initrd、systemd、bash)?或者生成一个命令对照速查表?

 

https://support.huaweicloud.com/trouble-ecs/ecs_trouble_0312.html

posted on 2024-08-16 21:40  吃草的青蛙  阅读(45)  评论(0)    收藏  举报

导航