- воткнул в сеть и не надо на каждом системнике искать неразболтанный 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, как, например, описано здесь. Но это уже тема для другой статьи.
Комментарии (10)
Rumlin
05.06.2015 07:49Была несколько лет назад мысль сделать сетевую загрузку HirenBootCD, но инструкций не нашел, самостоятельно не получилось.
Maysoft Автор
05.06.2015 09:23Вообще-то в оригинале было сделано по мотивам HirenBootCD, только на основе WinPE, так как большинство утилит под Windows. Единственное принципиальное отличие от Hirens — утилиты находятся на сетевом ресурсе.
ixpict
05.06.2015 20:43А зачем сетапить для этого отдельную железку, да еще с openwrt? Кажется ноутбук + virtualbox + не embedded linux будет вполне удобной альтернативой?
Maysoft Автор
05.06.2015 21:46Во-первых, стоимость домашнего маршрутизатора плюс флешка значительно дешевле самого заволящегося ноутбука и даже нетбука. Во-вторых, в случае с вирусным заражением совсем не полезно использовать ноутбук. В-третьих, вряд ли ноутбук будет использоваться только для таких целей, следовательно есть достаточно большая вероятность, что в самый нужный что-то не заработает (ОС не загрузится, виртуалка зависнет, случайно стерт диск от виртуальной машины и т.д.). В случае с ремонтным девайсом вероятности его «погнуть» меньше, и даже меньше чем у ремонтной флешки.
lolipop
07.06.2015 14:00посоветую TP-Link TL-MR3020
зачем вы советуете роутер, у которого 300миллиампер на выходе юсб?
советую на замену народный nexx wt3020, у него проблем с usb нет, т.к. запитано напрямую от usb-входа.Maysoft Автор
07.06.2015 15:20Вы первый от кого я услышал, про 300мА, но честно сказать не понял суть проблемы. У самого несколько таких устройств было, а жалоб на несовместимость USB не было, и в интернете не было жалоб (может я не нашел). Может это единичная проблема конкретного экземпляра? Я лично не имею ничего против nexx wt3020, более того, посмотрев характеристики, хотел бы купить, но вот купить его не так просто — он не так популярен как tl-mr3020. А советую, я TP-Link TL-MR3020 потому что он — самый дешевый из доступных маршрутизаторов, на которые можно установить openwrt.
lolipop
07.06.2015 20:5614.5 долларов стоит у китайцев nexx 3020, мне кажется, это дешевле, чем tp-link.
а проверяется usb очень просто — подключите жесткий диск 2.5 — если раскрутится и будет работать — значит минимум 500миллиампер ваш тп-линк выдал.Maysoft Автор
08.06.2015 06:35Согласен, но вот когда он будет в магазинах, тогда и посмотрим — сколько он будет стоить. Пока его, увы, кроме как у китайцев не купишь. Спасибо, за объяснение, жесткий диск через USB, лучше подключить непосредственно к системнику, например, в случае с клонированием всего диска или копированием пользовательских данных. Видите ли в чем дело, одно дело загрузить образ WIM в размере 200Мб по 100-мегабитной сети, а совсем другое клонировать весь диск. Поэтому не могли бы вы пояснить: зачем нужно подключать жесткий диск к роутеру?
evnuh
Что-то у вас с USB постоянно проблемы, то дырки расшатаны, то сгорело всё)
Maysoft Автор
Проблемы у пользователей, а их очень много. Есть системники, где материнка не выдерживает питание нескольких USB-устройств. Есть чипсет с микровзрывом — все работает, кроме USB. Есть, в прямом смысле раздолбанные, разъемы USB. Был один системник, где были неправильно подключены контакты переднего разъема, он жег любое USB-устройство.