Как сделать портативный ремонтный сервер

от автора

Портативный ремонтный сервер представляет собой домашний маршрутизатор для загрузки компьютеров по сети с целью ремонта, восстановления, проверки и лечения. Перед загрузочной флешкой данный сервер обладает следующими преимуществами:

  • воткнул в сеть и не надо на каждом системнике искать неразболтанный USB-разъем;
  • не рискуешь сжечь флешку на закороченных контактах;
  • единственный способ загрузиться на компьютерах, где сожжен USB-контроллер (загрузка с CD-ROM в расчет не берется), а также на компьютерах, где BIOS не позволяет грузиться с USB-устройств;
  • желательный способ для перепрошивки микропрограмм.

Из недостатком можно отметить более низкую скорость передачи и некоторую сложность по изменению (дополнению) пунктов загрузки, которая сказывается в особенностях сетевой загрузки. В качестве бонуса можно дооснастить ремонтный сервер собственным выходом в интернет через USB-модем, это потребуется для изоляции зараженного вирусами компьютера от других компьютеров в локальной сети. Таким образом, нам потребуется маршрутизатор:

  1. с возможностью перепрошивки OpenWrt;
  2. с USB-разъемом;
  3. компактными размерами.

Последний пункт позволяет легко перенести ремонтный сервер туда, где нам удобнее с ним работать, а не там, где есть сеть и т.д. Как мы уже говорили, в качестве бонуса потребуется USB-концентратор, USB-флешка и USB-модем с работающей симкой. Выбор модема, как ни странно, задача сложная, так нет стопроцентной уверенности в соответствии с пунктом № 1, поэтому не рекламы ради, посоветую TP-Link TL-MR3020 (только не берите очень похожие модели TP-Link TL-WR700N и TP-Link TL-WR702N) или более дорогую модель TP-Link TL-MR3040 со встроенным аккумулятором. Перед покупкой обратите внимание на версию устройства, поддерживаемые версии можно узнать здесь.

Не буду подменять официальную документацию OpenWrt, поэтому перейдите на страницу, купленного вами устройства, и прочитайте порядок установки OpenWrt, как правило достаточно загрузить прошивку вашей модели, и через веб-интерфейс обновить (установить) скачанный файл. Возможно, после перепрошивки и последующей перезагрузки маршрутизатора, будет отсутствовать веб-интерфейс, паниковать не стоит, скачиваем Putty и работаем через консоль. Одно очень важное замечание — перед дальнейшей работой настройте доступ в интернет. Сначала мы перенесем систему на флешку (extroot), а потом будем устанавливать все, необходимые нам для работы, пакеты. Процесс переноса хорошо описан в документации и на хабре есть статья на эту тему. От себя могу порекомендовать следующее:

  • использовать вариант /overlay;
  • использовать файловую систему ext2 (opkg install kmod-fs-ext4);
  • иметь в виду, что в статье подразумевается использование уже размеченной флешки.

Если у вас нет возможности заранее разметить флешку на разделы (подкачка не более 128Мб, остальное под корневой раздел), то вам потребуется установить следующие пакеты: fdisk, e2fsprogs и swap-utils, в статье описано как это сделать. А мы пойдем дальше — теперь можно устанавливать все пакеты, которые вы пожелаете. Если вам нужен веб-интерфейс, то вам сюда, а мы займемся настройкой Samba-сервера, чтобы было удобно заливать файлы на сервер, используя стандартную службу доступа к файлам и принтерам Microsoft. Сначала откроем нужные порты в межсетевом экране, если правило по умолчанию для доступа через сеть установлено в состояние «Отбрасывать». Для этого в файле /etc/config/firewall должен быть следующий участок:

 config 'rule'         option 'src' 'lan'         option 'proto' 'udp'         option 'dest_port' '137-138'         option 'target' 'ACCEPT'  config 'rule'         option 'src' 'lan'         option 'proto' 'tcp'         option 'dest_port' '139'         option 'target' 'ACCEPT'  config 'rule'         option 'src' 'lan'         option 'proto' 'tcp'         option 'dest_port' '445'         option 'target' 'ACCEPT' 

Более подробную информацию по настройке межсетевого экрана смотрите здесь. Далее посмотрим какая доступная версия samba имеется в репозитории:
opkg list | grep samba
Установим пакет, имя которого только что получили. Более детальная информация по работе с пакетами — здесь. Если хотите управлять Samba-сервером через веб-интерфейс, установите соответствующий модуль:
opkg install luci-app-samba
Следует дать некоторые пояснения. Во-первых, вместо доступа на уровне пользователей, лучше перейти на уровень ресурсов, что приблизительно соответствует простому общему доступу к файлам в Windows XP. Во-вторых, файл конфигурации создается каждый раз во время загрузки маршрутизатора, поэтому лучше отредактировать шаблон /etc/samba/smb.conf.template. В нашем случае надо заменить значение user параметра security на значение share. Рассмотрим пример, в котором существует каталог /mnt/pxeboot (да, согласен, папка /mnt используется для монтирования устройств, разделов и т.д., но в openwrt — это наилучший каталог для сетевого ресурса), если такого каталога нет, то создайте его командой:
mkdir -p /mnt/pxeboot
С целью соблюдения мер безопасности, гостевой доступ происходит от имени пользователя nobody, поэтому нам надо владельцем папки pxeboot сделать пользователя nobody:
chown nobody /mnt/pxeboot
Вот теперь прописываем секцию sambashare в файле etc/config/samba:

 ... config 'sambashare' 	option 'read_only' 'no' 	option 'name' 'share' 	option 'path' '/mnt/pxeboot' 	option 'guest_ok' 'yes' 

Включаем и запускаем службу командами:

 /etc/init.d/samba enable /etc/init.d/samba start 

Более подробно настройка Samba описана в документации. Теперь мы можем заливать файлы и каталоги с другого компьютера, поэтому в сетевом ресурсе создадим папку tftpd, а в ней подкаталог: pxelinux.cfg (настройки меню), img (образы дисков), boot и source (для загрузки WinPE, смотри предыдущую статью). Зальем в каталог tftpd необходимые файлы для pxelinux, перечень и описание которых приведено в предыдущей статье.
И вот мы добрались до настройки загрузочного меню, но прежде чем заниматься настройкой, нужно определиться с составом этого загрузочного меню, а вот тут мнений будет столько, сколько человек будет участвовать в споре. Да и спор будет беспредметным, так как одному человеку нужно один набор инструментов, другому — другой. Возьмем абстрактный пример, в котором будет:

  • локальная загрузка;
  • загрузка WinPE;
  • подменю утилит для жесткого диска;
  • Memtest86.

Фактически получается два файла: default и hdd.cfg, причем у последнего мы приведем только два пункта и пункт возврата в главное меню. И одно практическое замечание: не впихивайте в образ WinPE все подряд, достаточно одного файлового менеджера, все остальные инструменты можно получить по сети. Если размер флешки позволяет, то в каталоге /mnt/pxeboot создаем подпапки:

  • tools (windows-утилиты);
  • install (дистрибутивы);
  • wim (образы wim для развертывания различных версий Windows).

Файл default будет выглядеть так:

 UI vesamenu.c32 MENU TITLE Portable PXE-boot server  LABEL bootlocal    MENU LABEL ^Boot local disk    MENU DEFAULT    LOCALBOOT 0  TIMEOUT 80  TOTALTIMEOUT 9000   LABEL winpe    MENU LABEL ^WinPE    KERNEL pxeboot.0  LABEL hddtools   MENU LABEL hdd-tools   KERNEL vesamenu.c32   APPEND pxelinux.cfg/hdd.cfg  LABEL memtest   MENU LABEL Memtest86 6.0   KERNEL memdisk   APPEND iso initrd=img/memtest.iso 

Еще раз напоминаю, что это только пример, соответственно, файл hdd.cfg:

 UI vesamenu.c32 MENU TITLE Hard drive disk tools  LABEL vcr350   MENU LABEL Victoria 3.5   KERNEL memdisk   APPEND img initrd=img/fdd3.52.img  LABEL Seagate7200.12   MENU LABEL Firmware Seagate Barracuda 7200.12   KERNEL memdisk   APPEND iso initrd=img/barracuda12.iso  LABEL return   MENU LABEL Return Main Menu   KERNEL vesamenu.c32   APPEND pxelinux.cfg/default 

Убедитесь, что все файлы скачаны и находятся на своих местах. Теперь можно настраивать dnsmasq — удобный dns-dhcp-tftpd-сервер, конфигурационный файл, которого /etc/config/dhcp:

 config dnsmasq          ...          option enable_tftp '1'         option tftp_root '/mnt/pxeboot/tftpd'         ...   config boot linux         option filename 'pxelinux.0' ...

То есть выставляется только три параметра. Теперь можем проверять все настройки. Замечательно, если у вас все заработает с первого раза. А что делать, если что-то не работает? Конечно же смотреть системный журнал. Большинство Windows-пользователей не догадываются, что в Linux регистр имеет значение, поэтому boot и Boot являются разными папками. Например, для загрузки WinPE потребуются как раз две папки: boot и Boot. В Boot расположится каталог Fonts и файл BCD (именно так, как здесь указано), а в каталоге boot будет файлик boot.sdi. Обращайте внимание и на регистр расширения, например, если в конфигурационном файле указан файл fdd3.52.img, а вы закачаете файл fdd3.52.IMG, то скорее всего вы получите ошибку. Особый случай представляют собой антивирусы, так как для них требуется загрузить еще и огромнейшую антивирусную базу. Обычно тут пользуются двумя путями: либо подгружают и подмонтируют базы через web-сервер, либо впихивают их в файл initrd, как, например, описано здесь. Но это уже тема для другой статьи.

ссылка на оригинал статьи http://habrahabr.ru/post/259161/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *