在嵌入式设备上重置 root 密码时出现问题

在嵌入式设备上重置 root 密码时出现问题

Linux嵌入式文件系统完全运行在原始NAND闪存上,使用Full Image的RootFS。 Linux v.2.6.26.5,U-boot 2009.03 引导加载程序。内核完全加载后,当我尝试提交命令时,设备显示控制台登录提示。所以我需要在设备上重置root密码。我尝试通过在内核启动参数末尾添加single和参数来使用 U-boot 来做到这一点:init=/bin/sh

setenv bootargs ${bootargs} single init=/bin/sh

然后我以 root 权限进入 Busybox shell 命令行,从这里我尝试运行passwd命令来重置 root 密码。

BusyBox v1.10.2 (2015-09-06 10:58:05 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off
# help

Built-in commands:
-------------------
    . : [ [[ alias bg break cd chdir continue echo eval exec exit
    export false fg hash help jobs let local pwd read readonly return
    set shift source test times trap true type ulimit umask unalias
    unset wait

# passwd
passwd: unknown uid 0
# cd etc
# cat passwd
cat: can't open 'passwd': No such file or directory
# ls -l
...
lrwxrwxrwx    1 1014     1014           11 Oct 26  2015 passwd -> /tmp/passwd

如何重置root密码?

编辑:来自日志

# df
Filesystem           1k-blocks      Used Available Use% Mounted on
df: /proc/mounts: No such file or directory


# cd dev
# ls -l
crw-r--r--    1 0        0          5,   1 Jan  1 00:05 console
crw-r--r--    1 0        0          2,   0 Oct 26  2015 nfs

答案1

您处于 busybox 紧急 shell 中,并且您的实际根分区显然尚未安装。

您可以通过 列出可用设备ls /dev并通过 挂载各自的根分区mount /dev/<root_device> /<mount_point>

之后,您可以passwd在相应的安装点下编辑。

相关内容