记录一次 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 入口。