03 апреля 2014

Восстановление окружения EntWare.



Флешки не вечны и периодически выходят из строя, при этом любят это делать постепенно, делая вид, что всё в порядке.
Подобная беда пришли и ко мне. На днях начала помирать флешка, вставленная в роутер RT-N66U. Для торрентов она не использовалась, и жило на ней окружение Entware со всякими полезными программами.

Замечать проблемы я стал, когда при перезагрузке роутера перестали запускаться некоторые программы, ссылаясь на какие-то невнятные ошибки. Сами собой портились конфигурационные файлы. Пришло время менять флешку, но надо как-то перенести окружение, чтобы заново всё не настраивать.

Для начала подключил флешку к машине с Linux на борту и прогнал по ней fsck в режиме автоматического лечения:

fsck -y -f -C /dev/sdc1

Волосы от сообщений у меня шевелились практически везде, но пути назад уже не было.
После ремонта я попробовал смонтировать флешку, чтобы оценить масштабы разрушения. Кроме полной папки "lost+found" некоторые файлы разжирели до 2 гигабайт на брата. Пришлось их тоже отлавливать и удалять.
Потом я подготовил новую флешку, отформатировав её в ext3 с меткой "entware", чтобы было, как раньше.

mkfs.ext3 -L entware /dev/sdc1

Тут же примонтировал её и перекинул остатки окружения. Теперь оставалось надеяться, что менеджер пакетов opkg остался жив, и список установленных пакетов тоже не пострадал. Вставив новую флешку в роутер я в этом убедился первым делом:

opkg update
opkg list-installed


Список доступных пакетов скачался, а список установленных успешно отобразился.
Теперь надо было скачать все установленные пакеты из репозитория и заново их установить, чтобы возможные поврежденные файлы заменились заведомо исправными.
Сначала скачиваем:

cd /opt/tmp
opkg list-installed|cut -d " " -f 1|xargs opkg download

На всякий случай надо сделать резервную копию папки "etc":

tar czvf /opt/tmp/etc-backup.tar.gz /opt/etc

Теперь можно и резать по живому, т.е. ставить пакеты:

opkg install *.ipk

Теперь надо перезагрузить роутер, проверить логи системы и по необходимости восстановить затертые конфиги.

-->