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
在對應的安裝點下編輯。