В этой статье речь пойдет о расширении функционала сетевого хранилища Zyxel NSA 220 путем запуска Debian Lenny на данном девайсе. Установка будет происходить не во внутреннюю flash память, а на внешний USB stick, сделав его загрузочным для данного устройства с помощью специализированного скрипта, тем самым вы ничем не рискуете и всегда (отсоединив USB накопитель от устройства) можете вернуться к оригинальной прошивки.

Преимущества Debian перед оригинальной прошивкой: это конечно же гибкость настройки и установки ПО (все упирается в аппаратные ресурсы).

Недостатки оригинальной прошивки: лично мое мнение, да и не только мое, заводская прошивка с очень ограниченным функционалом по сравнению с аналогичными устройствами других производителей обновляется очень редко, добавляя где-то сомнительный функционал, не забыв добавить дополнительные «глюки»(встроенный торрент-клиент - «отдельная история и песня»). Хотя я не исключаю и того, что для кого-то встроенный функционал будет более чем достаточен, как в свое время был достаточен для меня.
Сразу предупрежу, что все нижеследующие операции вы выполняете под своей ответственностью и за потерянные данные я ответственности не несу, у меня все заработало, но это не значит, что все заработает у вас!

Переходим к процессу установки:
Сам процесс установки достаточно хорошо описан автором «сборки» debian под NSA 220 на форуме http://forum.dsmg600.info/viewtopic.php?id=5244. Материал изложен на английском, поэтому здесь я опишу процесс на «великом и могучем», дополнив что-то от себя.
Для начала скачиваем сам архив сборки по следующему адресу:http://www.mediafire.com/download.php?y42tvz0myn2, форматируем flash накопитель в файловую систему ext3, это можно сделать с помощью графической утилиты gparted, консольных — fdisk, parted, mkfs либо средствами самого NSA220(что еще проще), не забываем размонтировать устройство перед началом работы с ним.
Пример:

# umount /dev/sdb1
# mkfs -t ext3 /dev/sdb1

или

# mkfs.ext3 /dev/sdb1

Следующим шагом нужно распаковать содержимое скаченного архива в корень flash накопителя уже отформатированного в ext3. Структура каталогов и файлов в корне flash накопителя должна быть следующей:

    nsa220_check_file
    usb_key_func.sh
    usb_key_func.salted_md5sum
    extract_me.tgz

Файл usb_key_func.sh должен иметь права на исполнение, в консоли linux это можно сделать следующим образом:

# chmod +x /путь до скрипта/usb_key_func.sh

Настраиваем сеть:
Теперь, что касается настройки сети. По умолчанию сетевой интерфейс будет иметь MAC адрес 12:34:56:78:9a:bc, а все настройки сети получать от dhcp сервера, тем самым подключив устройство NSA220 к сети с нашей кастомной сборкой «на борту», сеть «подхватится» от dhcp сервера, а чтобы подключиться к консоли устройства IP адрес можно посмотреть в логах самого dhcp сервера сориентировавшись на MAC NSA220.

Теперь подключаем USB stick к NSA220 и включаем устройство, как только в логах dhcp сервера обозначится информация о присвоении IP адреса устройству с MAC адресом 12:34:56:78:9a:bc, запускаем telnet клиент, вводим IP нашего NSA и переходим к интерактивному приглашению аутентификации пользователя на сервере. По умолчанию у нас супер пользователь root с аналогичным паролем, вводим эти данные. Чтобы не забыть в последствии сразу меняем пароль для root(советую воспользоваться каким-нибудь генератором паролей и с генерировать случайный пароль из 12 символов)

# passwd root

Меняем конфигурацию сети на статическую:

# nano /etc/network/interfaces

В исправленном виде конфигурационный файл должен примерно принять такой вид:

# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
auto lo egiga0
iface lo inet loopback
 
#iface egiga0 inet dhcp
#	hwaddress ether 12:34:56:78:9a:bc
 
iface egiga0 inet static
	hwaddress ether 12:34:56:78:9a:bc
	address 192.168.1.2
	netmask 255.255.255.0
	broadcast 192.168.1.255
	network 192.168.1.0
	gateway 192.168.1.1

Параметры разумеется выставляете свои на основе вашей конфигурации сети. Сохраняем изменения: Ctrl+o, Enter, Ctrl+x, Enter.

Последние штрихи в установке Debian на Zyxel NSA220:

Обновим базу данных доступных пакетов:

# apt-get update

Обновляем установленные пакеты:

# apt-get upgrade

Устанавливаем пакет для взаимодействия с устройствами softraid:

# apt-get install mdadm

В процессе настройки я выбрал параметр “All” для объединения 2 жестких дисков.

Удаляем не безопасный telenetd:

# apt-get remove telenetd

Для администрирования сервера устанавливаем openssh-server:

# apt-get install openssh-server

Для исправления индикации sys на передней панели NSA220(вы наверное уже успели заметить постоянно мигающий индикатор sys) отредактируем скрипт /etc/init.d/nsa220.sh.

# nano /etc/init.d/nsa220.sh

Во первых ставим комментарий на строку:

# [ -x "$DAEMON" ] || exit 0

Во вторых в функцию do_start() после строки

if  ps -A | grep fanctrld | grep -v grep ; then 
		return 1 
	fi

Вносим следующий код:

DECOMPRESS_PATH=/usr/AllPack 
 
	if [ -f /mnt/firmware/AllPack.lzma ]; then 
   	 if [ ! -d ${DECOMPRESS_PATH} ]; then 
        	mkdir ${DECOMPRESS_PATH} 
        	cd ${DECOMPRESS_PATH} 
        	lzma -d /mnt/firmware/AllPack.lzma -c | tar x -C ${DECOMPRESS_PATH} 
        	rm AllPack.tar