
В данной статье я опишу весь процесс восстановления LaCie Network Space 2 (в дальнейшем — NS2) без извлечения непосредственно жесткого диска из корпуса устройства.
Предыстория
Сей девайс я купил еще летом этого года и использовал его в качестве качалки торрентов и сетевого файлообменника. Когда торрентов в списке накопилось достаточно много (порядка 100+), Download Machine (утилита для закачки торрентов и прочих файлов) стала работать нестабильно и в конце концов через пару дней девайс перестал загружаться вообще, причина так и осталась мне неясна. Насколько я понял, поддержка устройств LaCie в России официально не осуществляется, по крайней мере сайта на русском языке у них нет, поэтому я решил попытаться разобраться, что же не так с NS2, самостоятельно. После долгих поисков и мучительного ожидания ответов на мои вопросы на различных форумах и в IRC я, наконец, нашел решение данной проблемы здесь.
Процесс восстановления
Для восстановления девайса понадобится компьютер с ОС Linux на борту. Mac OS X не подойдет, так как в ней отсутствуют необходимые для компиляции библиотеки. Я не исключаю, что есть возможность правильно собрать необходимый пакет и под ней, но это не стоит потраченного времени. Я использовал Ubuntu 11.10. NS2 поддерживает загрузку системы с внешнего носителя через фронтальный USB порт, а также загрузку по сети. В обоих случаях нет необходимости разбирать корпус устройства — это однозначный плюс, гарантийные пломбы остаются на месте. Все мои попытки загрузить систему c единственной свободной USB флешки не увенчались успехом, девайс не хотел распознавать мое устройство. Поэтому я решил пойти по сложному пути загрузки системы через сеть. В качестве альтернативного дистрибутива для загрузки используется Debian ARM. Также понадобится CLUNC — клиент для доступа к консоли девайса.
Конфигурация TFTPD
Загрузка по сети осуществляется с помощью сервиса TFTP, потому, если он отсутствует в системе, его необходимо установить и сконфигурировать. Далее я привожу пример для Ubuntu:
- Устанавливаем tftpd
$ sudo apt-get install xinetd tftpd tftp
- Создаем файл конфигурации:
$ nano /etc/xinetd.d/tftp
Содержание файла:
service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = /tftpboot disable = no }
- Создаём директорию, в которой будут лежать необходимые файлы
$ sudo mkdir /tftpboot $ sudo chmod -R 777 /tftpboot $ sudo chown -R nobody /tftpboot
- Запускаем tftpd
$ sudo /etc/init.d/xinetd start
Сервис TFTP сконфигурирован и запущен.
Установка CLUNC
Для доступа к консоли NS2 нам необходим клиент CLUNC. Понадобится скомпилировать исходники скачанного и разархивированного ранее дистрибутива. Для этого в корневой директории CLUNC необходимо выполнить команду make. Скомпилированный бинарник лежит в папке build/ под именем clunc-open. Следует перенести его в корневую папку CLUNC. На этом установка завершена и можно приступить непосредственно к восстановлению девайса. Пример кода установки:
$ wget ftp://lacie-nas.org/tools/clunc-1.1.tar.gz
$ tar xvzf clunc-1.1.tar.gz
$ cd clunc-1.1/
$ make
$ cp build/clunc-open ~/clunc-1.1/
Загрузка альтернативного дистрибутива
В случае успешной установки CLUNC необходимо подключиться к консоли NS2. Девайс должен быть выключен во время ввода следующей команды (${NAS_IP} — IP девайса):
$ ./clunc -i ${NAS_IP} -w 60
После ввода команды в терминале следует подключить питание устройства, после чего мы попадаем в консоль NS2. Нам необходимо сконфигурировать загрузку дистрибутива. Я использовал следующие параметры:
Marvell>> setenv bootargs ip=dhcp netconsole=6666@${ipaddr}/,6666@${serverip}/ root=/dev/sda2 rootwait;
${ipaddr} — IP девайса, ${serverip} — IP машины, с которой мы заходим в консоль девайса.
Далее необходимо загрузить дистрибутив с TFTP сервера, который мы до этого подняли на нашей машине:
Marvell>> tftpboot 0x800000 uImage;
После этого необходимо запустить на машине в отдельной вкладке терминала утилиту dhcpdump на случай, если вы не знаете, какой ip-адрес будет присвоен устройству после загрузки:
$ dhcpdump -i ${имя_интерфейса}
Имя интерфейса, как правило, wlan0 — для беспроводной сети и eth0 — для Ethernet-соединения, но возможны варианты в зависимости от конфигурации машины.
Теперь вводим команду на запуск системы:
Marvell>> bootm;
Восстановление системы NS2
Девайс запущен, нужно зайти на него через telnet:
$ telnet ${new_nas_ip}
Trying ${new_nas_ip}...
Negotiating binary mode on output.
Connected to ${new_nas_ip}.
Escape character is '^]'.
Новый IP-адрес берем из дампа утилиты dhcpdump, либо его можно посмотреть в логе загрузки ядра во время запуска DHCP-клиента.
Затем нужно ввести в качестве логина root и узнать имя диска (в моем случае — /dev/sda, как видно из лога):
miniroot login: root
BusyBox v1.15.3 (2011-02-28 00:41:01 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.
miniroot ~ # cat /proc/partitions
major minor #blocks name
31 0 512 mtdblock0
8 0 976762584 sda
8 1 1 sda1
8 2 974751907 sda2
8 5 256977 sda5
8 6 8001 sda6
8 7 8001 sda7
8 8 851413 sda8
8 9 875511 sda9
8 10 8001 sda10
9 0 7936 md0
Выяснив имя диска, мы можем загрузить главную загрузочную запись:
# wget http://downloads.lacie.nas-central.org/Users/Mijzelf/Networkspace2/1.0.2/mbr
Дальнейшие действия я проводил вручную, однако позже я нашел готовый скрипт для переформатирования жесткого диска девайса, потому приведу способ его запуска и ссылку на скрипт здесь:
# wget http://01110.ru/files/reformat_ns2
./reformat_ns2 ${имя_диска} # WARNING: use the correct partition here!
После этого остается только скрестить пальцы и надеяться, что все прошло успешно, посылаем девайс в reboot:
miniroot ~ # reboot
miniroot ~ # Connection closed by foreign host.
Заключение
После перезагрузки пробуем зайти на веб-интерфейс девайса по IP. В случае успешной операции нас встречает поле ввода логина и пароля, остается только поздравить друг друга с оживлением девайса. Данные, хранящиеся на диске, в процессе никак не пострадали, так что это вполне гуманный способ восстановления системы, не оставляющий никаких следов вмешательства.

Полезные ресурсы:
LaCie-NAS
NAS-Central
http://www.davidsudjiman.info