记录一次 Arch Linux 重置 root 密码的过程。参考: https://wiki.archlinux.org.cn/title/Reset_lost_root_password, 官方文档已写得十分清楚。

尝试按照 RHEL 系的方式重置密码

linux16 开头的行的行尾添加内核参数 init=/bin/bash(第一个 linux16 开头的行), Ctrl + X 启动修改后的内核。

随后发现键盘无响应了。官方 Wiki 中有提到此问题:「某些键盘可能无法被 init 系统正确加载,导致无法在 bash 提示符下输入任何内容」。 这个没法解决,只能更换方法。

使用 debug shell

systemd.debug_shell 添加到 linux16 开头的行的行尾(第一个 linux16 开头的行), Ctrl + X 启动修改后的内核。

这会正常启动操作系统,不过会启动 debug-shell.service。按下 Ctrl + Alt + F9 切换到 tty9 进入 debug shell,无需密码。 随后使用 passwd 重置 root 密码。完成后需要停止 debug-shell.service,不然任何人无需密码都可以使用 debug shell; 我选择直接重启,随后使用新的密码登录系统。

重置完成后务必停用或重启以关闭 debug shell,避免留下无需密码的 tty 入口。