Linux 組み込みファイルシステムは、フルイメージの RootFS を使用してネイティブ NAND フラッシュメモリで完全に実行されます。 Linux v.2.6.26.5、U-boot 2009.03ブートローダ。カーネルが完全にロードされた後にコマンドを送信しようとすると、デバイスにコンソールログインプロンプトが表示されます。そのため、デバイスのルートパスワードをリセットする必要があります。カーネルブートパラメータの最後にパラメータを追加し、single
U-bootを使用してこれを実行しようとしました。init=/bin/sh
setenv bootargs ${bootargs} single init=/bin/sh
次に、rootとしてBusyboxシェルのコマンドラインを入力し、ここで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
ルートパスワードをリセットする方法は?
編集:ログから
# 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
そのマウントポイントで編集できます。