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
在相应的安装点下编辑。