Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
USG 4p - Security Gateway Pro 4 - Восстановление после ошибки MMC, UniFi Network
 
У меня есть USG Pro 4, который внезапно перестал работать. При подключении к консоли выдает ошибки, связанные с MMC. С помощью командной строки U-boot я вижу, что ядра на месте — "fatls mmc 0:1" показывает файлы. Другие разделы, насколько я понял, в формате ext3. У меня есть ещё одна рабочая такая же модель, с которой я сделал полный дамп if=/dev/mmcblk0, включая все разделы. Я пытаюсь записать эти разделы на сломанный девайс, чтобы проверить, загрузится ли он, но пока без успеха.

Можно ли получить .bin файл или несколько таких файлов, которые я смогу записать на MMC, чтобы попытаться оживить устройство? На самом деле у меня уже два с такой проблемой, при этом обе единицы уже не на гарантии.

Я скопировал файлы на USB-накопитель. Не знал, сколько RAM можно использовать, поэтому разбил файлы на куски по 512 МБ и записывал их на p1, p2 и p3 MMC, обновляя ядро, используя такие команды:

fatload usb 0:1 ${loadaddr} p2_aa; mmc write ${loadaddr} 0x47800 0x100000;  
fatload usb 0:1 ${loadaddr} p2_ab; mmc write ${loadaddr} 0x47800 0x100000;  
fatload usb 0:1 ${loadaddr} p2_ac; mmc write ${loadaddr} 0x47800 0x100000;  
fatload usb 0:1 ${loadaddr} p2_ad; mmc write ${loadaddr} 0x47800 0x42800

Разбил команды на несколько строк из-за ограничений по длине. Записалось успешно, но результат нулевой.

Может, MMC просто сломан? Если да, есть ли что-то, что я могу сделать? Переместить разделы? Поменять MMC-чип? Буду очень признателен за любые советы и подсказки, чтобы вернуть к жизни эти два устройства.
 
Рад, что люди находят это полезным. У меня есть проект на GitHub, который позволяет достаточно легко собирать новые версии, так что пишите здесь, если нужно сделать новый релиз.
 
ditto - спасибо. У меня был мертвый USG Pro 4, который зацикливался в kernel panic при загрузке. Мне удалось с помощью образа загрузиться через USB, применить, вернуть на mmc. При следующей загрузке всё работало нормально. (Ранее я пробовал сбросы и аппаратные перезагрузки, но всё заканчивалось непрерывной перезагрузкой) https://community.ui.com/questions/USG-PRO-4-Kernel-panic-not-syncing-Fatal-exception/72341987-8bb7-40c7-9456-49c3e44afc86
 
Просто хотел поблагодарить вас обоих за это. Благодаря вам я смог восстановить «мертвый» USG Pro 4. Потратил несколько дней, пытаясь разобраться сам и разочаровываясь из-за отсутствия поддержки USB в ядре. Потом нашёл этот пост — и всё сработало с первой попытки. После успешной загрузки через USB я перепрошил внутреннюю флеш-память, но флешку оставлю про запас на всякий случай. Ещё раз спасибо!
 
Спасибо gschrader за решение этой задачи, без его сборки ядра я бы не смог провести восстановление. Так что у меня всё получилось. Использовал его сборку ядра и дамп MMC с моего исправного USG pro 4 — просто сделал dd с рабочего устройства на USB.

Инструкции:

- USB-накопитель на 2 ГБ и больше
- Консольный последовательный кабель, совместимый с Cisco. Во многих продуктах Unifi есть внутренние кабели, так что можно открыть корпус и подключиться к контактам, но в моём случае кабель припаян к плате, поэтому нужна RJ45 вилка.

Скачайте этот файл: https://drive.google.com/file/d/1p_6DYOGrAKmPuEtlOpBgutjojA5XFG2M/view?usp=sharing

Запишите его на USB. Как это сделать в Windows — не знаю, не пользовался ей много лет, но в Linux нужно выполнить следующие действия:

- Найти устройство своей флешки. Проще всего подключить ее и посмотреть последние строки вывода dmesg. Обычно это /dev/sdx, где x — следующая буква в алфавите в зависимости от количества подключённых дисков.
- Перейти в папку, куда скачали файл. В этом файле содержится ядро от gschrader и дамп моего USG pro 4.
- Запустить команду:  
 dd bs=256k of=/dev/sdx if=usb.img  
 Команда может завершиться с ошибкой на каком-то этапе — это нормально. Мы не используем последний раздел, так как оригинальная прошивка настроена на монтирование третьего раздела MMC, и такой подход обычно работает. Я пробовал на USB по 2 ГБ, 4 ГБ и 16 ГБ — успешно.

- Вставьте флешку в USB-порт USG pro 4.
- Подключите консольный кабель к консольному порту. Я использую minicom для последовательного подключения. Можно так же посмотреть dmesg, чтобы узнать, какой tty используется консолью при подключении. У меня команда запуска minicom выглядит так:  
 minicom -D /dev/ttyUSB0 -b 115200

- Включите USG, постоянно нажимая Enter в консоли, пока не появится приглашение uboot.

- Выполните команду 'printenv' и сохраните вывод, потом выполните:  
 Octeon ubnt_e220# setenv bootcmd 'usb start;fatload usb 0 $(loadaddr) vmlinuxusb;bootoctlinux $(loadaddr) numcores=2 endbootargs mem=0 root=/dev/sda2 rootdelay=10 rw rootsqimg=squashfs.img rootsqwdir=w mtdparts=phys_mapped_flash:640k(boot0),640k(boot1),64k(eeprom)'  
 Octeon ubnt_e220# saveenv  
 Octeon ubnt_e220# reset

После этого USG должен загрузиться впервые. Не могу сказать, сколько прослужит USB-накопитель, использованный таким образом. Полагаю, что там ведутся логи, которые могут быстро износить флешку. Некоторые USB-накопители поддерживают выравнивание износа, и я советую использовать именно такие.
 
Мне тоже удалось заставить скрипт img работать. Этот релиз его содержит.
Страницы: 1
Читают тему (гостей: 1)