Pull to refresh

Восстановление «убитого» LaCie Network Space 2 без извлечения HDD

Reading time4 min
Views5.7K
image
В данной статье я опишу весь процесс восстановления 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. В случае успешной операции нас встречает поле ввода логина и пароля, остается только поздравить друг друга с оживлением девайса. Данные, хранящиеся на диске, в процессе никак не пострадали, так что это вполне гуманный способ восстановления системы, не оставляющий никаких следов вмешательства.
image

Полезные ресурсы:

LaCie-NAS
NAS-Central
http://www.davidsudjiman.info
Tags:
Hubs:
Total votes 16: ↑16 and ↓0+16
Comments8

Articles