Мне приходится часто заниматься ремонтов компьютеров, а большинство так называемых "ремонтов" заключается в восстановлении работоспособности операционной системы. В какой-то момент времени мне надоело возится с загрузочными дисками. И мой взгляд устремился на работающий почти в холостую сетевой накопитель synology DS110J.

И вот тут я задался вопросом: "А что если мне его сделать сервером сетевой загрузки?"

Ну что ж будемь пробывать.

Первое что нужно сделать это включить службу ssh для консольного доступа к устройству. Заходим через веб интерфейс, потом "Панель управления -> Терминал" ставим галочку на "Включить службу SSH".

Окошко панели управления терминала

Дальше нам потребуется разрешить доступ к сервису в Браундмауэре, заходим в "Панель управления -> Браундмауэр и QoS" нажимаем кнопочку "Создать".

Порт выбираем со списка встроенных приложений, нас интересует "Зашифрованная служба терминала"

Теперь нам нужен клиент для терминала, для этих целей нам подойдет Putty который можно взять здесь, запускаем ее. В поле Host Name (or IP address) вбиваем IP адрес нашего будущего сервера.

Нажимаем кнопочку "Open". На приглашения ввода логина вбиваем “root” пароль аналогичен учетной записи админа.

Первым делом нужно узнать какой процессор в нашей железке стоит. Для этого переходим на официальный сайт и ищем там свой накопитель, в колонке CPU Model узнаем имя процессора. В моем DS110J находится “Marvell Kirkwood mv6281 ARM Processor”, это совместимый с “Marvel Kirkwood 88F6281 (ARM) CPU” процессор. Здесь нужно выбрать и установить правильный менеджер пакетов.

Скачиваем и устанавливаем его.

Media-Station> wget http://ipkg.nslu2-linux.org/feed.../syno-mvkw-bootstrap_1.2-7_arm.xsh
Media-Station> sh syno-mvkw-bootstrap_1.2-7_arm.xsh
Media-Station> rm syno-mvkw-bootstrap_1.2-7_arm.xsh
Media-Station> ipkg update
Media-Station> ipkg upgrade

Для загрузки по сети нам понадобится dhcp сервер

Media-Station> ipkg list | grep DHCP
dhcp - 4.1-ESV-R2-1 - A DHCP Server
dnsmasq - 2.59-1 - DNS and DHCP server
Media-Station>

Я выбрал dnsmasq так как он умеет быть примитивным dns сервером. (Позже наткнулся на пакет SynDnsmasq, но изучать вопрос мне стало лень, так что если интересно то посмотреть и скачать пакет можно здесь). Итак устанавливаем пакет dnsmasq

Media-Station> ipkg install dnsmasq

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

Media-Station> cat /opt/etc/dnsmasq.conf
# Пересылать только полные доменные имена
domain-needed
# Никогда не пересылать не маршрутизированные адреса
bogus-priv
# Блокируем все SRV запросы
filterwin2k
# Пересылать запросы только в строгом порядке
strict-order
# Не использовать /etc/resolv.conf
no-resolv
no-poll
# Не использовать hosts no-hosts # Слушать запросы только на интерфейсе eth0 interface=eth0 # dns сервера которые опрашиваем если не находим записей в кэше # первый это адрес моего модема, два следующих это общедоступные dns-ы гугля server=192.168.1.1 server=8.8.8.8 server=8.8.4.4 # здесь немного наших dns записей address=/diskstation/192.168.1.254 address=/wiki/192.168.1.254 # указываем на каких адресах слушать запросы listen-address=127.0.0.1,192.168.1.254 # здесь уже идут настройки dhcp сервера # указываем диапазон выдаваемых IP адресов # в нашем случае это от 192.168.1.2 до # 192.168.1.253 и время аренды 24 часа dhcp-range=192.168.1.2,192.168.1.253,24h # маска подсети dhcp-option=1,255.255.255.0 # шлюз dhcp-option=3,192.168.1.1 # dns сервер dhcp-option=5,192.168.1.254 # указываем адрес tftp сервера и имя файла # который нужно загрузить dhcp-boot=pxelinux.0,192.168.1.254 dhcp-leasefile=/opt/var/log/dnsmasq.leases # доверять этому dhcp серверу dhcp-authoritative # количество запоминаемых имён cache-size=150 no-negcache log-queries log-dhcp
Media-Station> ipkg list | grep tftp
atftp - 0.7-9 - Advanced TFTP server and client
linksys-tftp - 1.2.1-1 - TFTP Client customized for a non-standard tftp authentication process. 
tftp-hpa - 5.0-1 - A tftp package
Media-Station>

Теперь нужно установить tftp сервер, я выбрал tftpd-hpa так как:

  • работал с им
  • он работает 
  • он умеет rewrite
Media-Station> ipkg install tftp-hpa
# удалим xinetd так как он нам больше не нужен
Media-Station> ipkg --force-depends remove xinetd
Media-Station> cat /etc/inetd.conf | grep tftpd
tftp dgram udp wait root /opt/sbin/in.tftpd /opt/sbin/in.tftpd -s /volume1/boot -m /opt/etc/tftpd.rules

Немного о параметрах: -s /volume1/boot – указывает на корневую папку сервера (для удобства создаем ее через "Панель управляения => Папка общего доступа") -m /opt/etc/tftpd.rules - указывает на файл конфигурации правил remap-ов Вот пример моих правил:

r bootmgr.exe /win7/bootmgr.exe
r ntldr /winxp/ntldr
r BOOTFONT.BIN /winxp/bootfont.bin
r ntdetect.com /winxp/ntdetect.com
r winnt.sif /winxp/winnt.sif
rg \ /
rg ([A-Z]) L1
r /boot/ /win7/boot/

Спустя несколько лет у меня дошли руки что бы завершить данную заметку :-) За это время вышло немало обновлений прошивки на мое устройство, теперь нам не нужно ставить dhcp, dns и tftp сервера. Все делается гораздо проще, через веб интерфейс.

Последнее изменение:
Опубликовано: