Das eingebettete Linux-Dateisystem läuft vollständig auf rohem NAND-Flash, verwende das RootFS von Full Image. Linux v. 2.6.26.5, U-Boot 2009.03 Bootloader. Nachdem der Kernel vollständig geladen ist, zeigt das Gerät beim Versuch, einen Befehl zu übermitteln, die Konsolen-Anmeldeaufforderung an. Ich muss also ein Root-Passwort auf dem Gerät zurücksetzen. Ich habe versucht, dies mit U-Boot zu tun, indem ich am Ende der Kernel-Boot-Parameter Argumente single
hinzugefügt habe:init=/bin/sh
setenv bootargs ${bootargs} single init=/bin/sh
Dann wurde ich mit Root-Rechten in die Busybox-Shell-Befehlszeile weitergeleitet und habe von hier aus versucht, passwd
den Befehl zum Zurücksetzen des Root-Passworts auszuführen.
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
Wie setze ich das Root-Passwort zurück?
Bearbeiten: aus dem Protokoll
# 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
Antwort1
Sie befinden sich in einer Busybox-Notfall-Shell und Ihre eigentliche Root-Partition ist offensichtlich noch nicht gemountet.
Über können Sie die verfügbaren Geräte auflisten ls /dev
und über Ihre jeweilige Root-Partition mounten mount /dev/<root_device> /<mount_point>
.
Anschließend können Sie passwd
unter dem jeweiligen Einhängepunkt die gewünschten Daten bearbeiten.