深入解析系统启动:从紧急模式到根文件系统切换
1. 紧急模式下的Bash Shell
在系统启动过程中,initramfs的不同阶段会为用户提供带有不同提示名称的Bash Shell。当用户向 rd.break
传递其他参数(如 initqueue
)时,这些参数会被注入到 PS1
、 _rdshell_name
和钩子变量中。随后,通过紧急服务调用Bash,Bash会从 /etc/profile
文件中读取 PS1
值,并在提示中显示 initqueue
名称。
以下是不同启动阶段可能出现的提示名称:
| 启动阶段 | 提示名称 |
| ---- | ---- |
| cmdline | cmdline:/# |
| pre - udev | pre - udev:/# |
| pre - trigger | pre - trigger:/# |
| initqueue | initqueue:/# |
| pre - mount | pre - mount:/# |
| pre - pivot | pre - pivot:/# |
| switch_root | switch_root:/# |
2. 救援服务与紧急服务
救援服务在systemd中也被称为单用户模式。若用户请求以单用户模式启动,systemd会在 rescue.service