Problema al restablecer la contraseña de root en un dispositivo integrado

Problema al restablecer la contraseña de root en un dispositivo integrado

El sistema de archivos integrado de Linux se ejecuta completamente en flash NAND sin formato, use RootFS de Full Image. Linux v. 2.6.26.5, gestor de arranque U-boot 2009.03. Una vez que el kernel está completamente cargado, cuando intento enviar un comando, el dispositivo muestra el mensaje de inicio de sesión de la consola. Entonces necesito restablecer una contraseña de root en el dispositivo. Intenté hacer esto con U-boot agregando argumentos singley init=/bin/shal final de los parámetros de arranque del kernel:

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

Luego me colocaron en la línea de comando del shell Busybox con privilegios de root, desde aquí intenté ejecutar passwdel comando para restablecer la contraseña de 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

¿Cómo restablecer la contraseña de root?

Editar: desde el registro

# 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

Respuesta1

Estás en un shell de emergencia de Busybox y tu partición raíz real obviamente aún no está montada.

Puede enumerar los dispositivos disponibles ls /devy montar su partición raíz respectiva mediante mount /dev/<root_device> /<mount_point>.

Después de eso, puede editar el passwddebajo del punto de montaje respectivo.

información relacionada