Как сделать портативный ремонтный сервер
Портативный ремонтный сервер представляет собой домашний маршрутизатор для загрузки компьютеров по сети с целью ремонта, восстановления, проверки и лечения. Перед загрузочной флешкой данный сервер обладает следующими преимуществами: воткнул в сеть и не надо на каждом системнике искать неразболтанный USB-разъем; не рискуешь сжечь флешку на закороченных контактах; единственный способ загрузиться на компьютерах, где сожжен USB-контроллер (загрузка с CD-ROM в расчет не берется), а также на компьютерах, где BIOS не позволяет грузиться с USB-устройств; желательный способ для перепрошивки микропрограмм. Из недостатков можно отметить более низкую скорость передачи и некоторую сложность по изменению (дополнению) пунктов загрузки, которая сказывается в особенностях сетевой загрузки. В качестве бонуса можно дооснастить ремонтный сервер собственным выходом в интернет через USB-модем, это потребуется для изоляции зараженного вирусами компьютера от других компьютеров в локальной сети. Таким образом, нам потребуется маршрутизатор: с возможностью перепрошивки OpenWrt; с USB-разъемом; компактными размерами. Последний пункт позволяет легко перенести ремонтный сервер туда, где нам удобнее с ним работать, а не там, где есть сеть и т.д. Как мы уже говорили, в качестве бонуса потребуется 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, как, например, описано здесь. Но это уже тема для другой статьи.