这种事情看起来多少有点无法避免。不过,忘记了一台嵌入式设备的 Linux 系统的 root 密码,实在是一件相当尴尬的事情。解决方法如下:
拔掉电源,再插上,当 DMZ 灯亮的时候,快速按住 RESET 两秒不放,然后会看到 DMZ 灯每一秒闪三下,这个时候 WRT54G 进入到 Failsafe 状态

切换到 192.168.1 网段,然后 telnet 192.168.1.1,可能 telnetd 反应会比较慢,稍微多等一会
进去之后,执行下面这两行指令

mtd unlock /dev/mtd/4
mount -t jffs2 /dev/mtdblock/4 /jffs
将 /jffs/etc/passwd 的 root 那行替换为 root:$1$$oYzVKLfly6aIyQZGRB/WW0:0:0:root:/tmp:/bin/ash
重新启动设备

这样便将 root 密码设置为了 amsterdam。(说来很巧,这串让我碰巧找到的 hash 居然就是 amsterdam,而我今天正好重温了一部老电影《Gangs of New York》,里头 Leonard 的化名就是 Armsterdam)
p.s. 如果在 DMZ 灯未亮的时候就按住 RESET 的话会清空 NVRAM,所以请把握好时机。