組み込みデバイスでルートパスワードをリセットする際の問題

組み込みデバイスでルートパスワードをリセットする際の問題

Linux 組み込みファイル システムは、完全に raw NAND フラッシュ上で実行され、Full Image の RootFS を使用します。Linux v. 2.6.26.5、U-boot 2009.03 ブートローダー。カーネルが完全にロードされた後、コマンドを送信しようとすると、デバイスにコンソール ログイン プロンプトが表示されます。そのため、デバイスのルート パスワードをリセットする必要があります。カーネル ブート パラメータの末尾に引数singleを追加して、U-boot でこれを実行しようとしました。init=/bin/sh

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

次に、ルート権限で Busybox シェルのコマンド ラインにドロップし、ここからpasswdルート パスワードをリセットするコマンドを実行しようとしました。

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

ルートパスワードをリセットするにはどうすればいいですか?

編集: ログより

# 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 の緊急シェルを使用しており、実際のルート パーティションはまだマウントされていないことは明らかです。

使用可能なデバイスを 経由で一覧表示しls /dev、 経由でそれぞれのルート パーティションをマウントできますmount /dev/<root_device> /<mount_point>

その後、passwdそれぞれのマウント ポイントの下を編集できます。

関連情報