Восстановление пароля

Здравствуйте.

В наличии контролер jetHome d1 настроен и установлен home assistant
Но есть проблема забыты пароли от операционной системы (пользователи root, jethome)
Как восстановить (изменить) пароли не уничтожив уже настроенную автоматизацию.

Добрый день.

…загрузиться в однопользовательском режиме из u-boot, и смонтировать правильный раздел emmc в r/w. Готовой инструкции на этот счёт у нас нету.

Обратите внимание, что JetHome не обеспечивает техническую поддержку программного обеспечения, разработанного третьими лицами (Home Assistant, Zigbee2MQTT и других).

Здравствуйте.

Может кому пригодиться.

  1. Подключаем консоль. У меня jetHome D1 консоль распаяна на плате (необходимо вскрыть корпус устройства) подключаем USB-TTL конвертор на 3.3 вольта скорость 115200
  2. подключаем питание. на плате есть кнопка cpu reset перезагружать устройство будем с помощью нее. перезагружаться придется несколько раз.
  3. В начале загрузки жмен на любые клавиши. это прервет стандартную загрузку и вы попадете в u-boot. увидите
Hit Enter or space or Ctrl+C key to stop autoboot -- :  0
jethome_armbian_j100_v1#
  1. Теперь необходимо изменить параметры загрузки системы. добавить к параметрам загрузки ядра init=/bin/bash. Вот тут есть коварная история все значения переменных в u-boot можно получить командой printenv и переменных там много. И в глаза первыми бросаются bootargs и initargs и в них уже есть строка init=/sbin/init
armbian_bootargs=setenv bootargs root=/dev/mmcblk${armbian_mmc_dev}p${armbian_rootfs_part} blkdevparts=mmcblk${armbian_mmc_dev}:${armbian_partitions} rootflags=data=writeback rw console=ttyAML0,115200n8 console=serial no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0;
bootargs=init=/sbin/init console=ttyS0,115200 no_console_suspend earlycon=aml_uart,0xff803000 ramoops.pstore_en=1 ramoops.record_size=0x8000 ramoops.console_size=0x4000 rootfstype=ramfs jtag=disable slot_suffix=normal androidboot.rpmb_state=0
initargs=init=/sbin/init console=ttyS0,115200 no_console_suspend earlycon=aml_uart,0xff803000 ramoops.pstore_en=1 ramoops.record_size=0x8000 ramoops.console_size=0x4000

Редактировать надо переменную armbian_bootargs

копируете строку(она вам понадобиться в первозданном виде)
Уменя была:

armbian_bootargs=setenv bootargs root=/dev/mmcblk${armbian_mmc_dev}p${armbian_rootfs_part} blkdevparts=mmcblk${armbian_mmc_dev}:${armbian_partitions} rootflags=data=writeback rw console=ttyAML0,115200n8 console=serial no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0;

в конец строки добавляем init=/bin/bash

получаем следующий код:

setenv armbian_bootargs setenv bootargs root=/dev/mmcblk${armbian_mmc_dev}p${armbian_rootfs_part} blkdevparts=mmcblk${armbian_mmc_dev}:${armbian_partitions} rootflags=data=writeback rw console=ttyAML0,115200n8 console=serial no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 init=/bin/bash;

и сохраняем

saveenv
  1. Перезагружаем устройство кнопкой cpu reset
  2. Загружается обычный linux и мы видим приглашение bash меняем пароль командой
passwd

7.Перезагрузка. Опять загружаемся в u-boot/
8. Восстановить старое значение переменной armbian_bootargs и сохранить.

setenv armbian_bootargs setenv bootargs root=/dev/mmcblk${armbian_mmc_dev}p${armbian_rootfs_part} blkdevparts=mmcblk${armbian_mmc_dev}:${armbian_partitions} rootflags=data=writeback rw console=ttyAML0,115200n8 console=serial no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0;

saveenv
  1. Перезагрузка. Все… пароль востановлен.