Мне приходится часто заниматься ремонтов компьютеров, а большинство так называемых "ремонтов" заключается в восстановлении работоспособности операционной системы. В какой-то момент времени мне надоело возится с загрузочными дисками. И мой взгляд устремился на работающий почти в холостую сетевой накопитель 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
теперь настроим его под наши нужды в моем случае файл конфигурации выглядит так:
# Пересылать только полные доменные имена 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 сервера. Все делается гораздо проще, через веб интерфейс.