Встроенная файловая система Linux полностью работает на сырой флэш-памяти NAND, используется RootFS Full Image. Linux v. 2.6.26.5, загрузчик U-boot 2009.03. После полной загрузки ядра, когда я пытаюсь отправить команду, устройство показывает приглашение на вход в консоль. Поэтому мне нужно сбросить пароль root на устройстве. Я попытался сделать это с помощью U-boot, добавив аргументы single
и init=/bin/sh
в конце параметров загрузки ядра:
setenv bootargs ${bootargs} single init=/bin/sh
Затем меня перебросило в командную строку оболочки Busybox с правами root, отсюда я попытался запустить 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, и ваш реальный корневой раздел, очевидно, еще не смонтирован.
Вы можете просмотреть список доступных устройств с помощью ls /dev
и смонтировать соответствующий корневой раздел с помощью mount /dev/<root_device> /<mount_point>
.
После этого вы можете редактировать passwd
в соответствующей точке монтирования.