Тарифы Услуги Сим-карты

Бездисковая загрузка Windows. Бездисковая загрузка по технологии iSCSI на базе ОС Windows

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

Предпосылкой к изучению данного вопроса стало наличие в сети компьютера, с вышедшем из строя дисковым накопителем. Необходимо было запустить на данном ПК «полноценную» 64-битную операционную систему Windows 7 без использования дополнительного Linux-сервера, ограничившись только имеющимися в локальной сети Windows системами. Приводимые в данном посте программные продукты могут работать как на серверных, так и на пользовательских версиях Windows.

Разговор пойдет о замечательной технологии iSCSI, и как мы её можем использовать для загрузки по локальной сети, чтобы сэкономить на стоимости покупки нового дискового оборудования. Постараюсь описать весь процесс конфигурирования наиболее доступным языком как для начинающих администраторов, так и для непросвещенных пользователей.

Для понимания происходящего определимся немного с терминологией:

  • iSCSI (англ. Internet Small Computer System Interface) - протокол, который базируется на TCP/IP и разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами;
  • iSCSI Target: (Цель iSCSI) - программа или аппаратный контроллер (HBA), осуществляющие эмуляцию диска и выполняющие запросы iSCSI;
  • iSCSI Initiator: (Инициатор iSCSI) - клиентская программа или аппаратный контроллер, который взаимодействует с iSCSI Target;
  • IQN: (iSCSI Qualified Name) - уникальный идентификатор (имя) iSCSI Target’a или iSCSI Initiator’а;
  • LUN: (Logical Unit Number) - адрес блочного устройства в диапазоне 0-127;
  • DHCP (англ. Dynamic Host Configuration Protocol - протокол динамической настройки узла) - сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP;
  • TFTP (англ. Trivial File Transfer Protocol - простой протокол передачи файлов) используется главным образом для первоначальной загрузки бездисковых рабочих станций.

Введение

Современные операционные системы Windows 7, Windows Server 2008 и всё, что старше, умеют подключаться напрямую на iSCSI target. Проблема только в том, как инициализировать удаленное блочное устройство при включении ПК.

Вспомним, что почти все современные сетевые карты умеют загружаться по технологии PXE. А вот с iSCSI дружат в основном только дорогостоящие серверные сетевые карты, например Intel. Однако, существует как минимум два open source проекта gPXE и iPXE позволяющий при загрузке ПК подключаться iSCSI устройствам. Последний, к слову, форк первого, с немного доработанной системой вывода ошибок и дополнительными опциями.

Есть много способов, как загружаться через gPXE и iPXE. В данном посте мы будем рассматривать загрузку с использованием iPXE и подключением для него необходимых скриптов в процессе загрузки.

Суть такова - при запуске компьютера PXE загрузчик получает необходимые настройки через DHCP и загружает PXELINUX, который задает необходимые параметры и загружает iPXE, который, в свою очередь, выступает iSCSI инициатором и передает управление диску. До момента инициализации блочного устройства передачу файлов по сети обеспечивает протокол TFTP.

Для чего мы загружаем PXELINUX?

Некоторые могут спросить - а для чего загружать PXELINUX? Во первых, через PXELINUX загрузчик iPXE получает необходимый скрипт для инициализации нужного iSCSI target-а. Во вторых, чтобы можно было построить удобное меню с выбором различных вариантов загрузки. В третьих, если в сети существует несколько бездисковых рабочих станций, то нужно чтобы каждый ПК подключался «к своему» iSCSI-диску и не имел доступа к «чужим» дискам, а значит их нужно как то отделять друг от друга, например, по MAC-адресам. Для этих целей будет использоваться двухстадийная загрузка с использованием PXELINUX.

Но обо всем по порядку. Начнем с установки и настройки в системе Windows необходимого софта для реализации DHCP, TFTP и iSCSI Target-а. Для этого я использовал бесплатно распространяемые программные продукты Tftpd32 и StarWind Virtual SAN . Программа Tftpd32 используется как в роли DHCP сервера, так и в роли TFTP сервера, ну а StarWind Virtual SAN соответственно будет использоваться в роли iSCSI target-а. Скачать данные программы можно на сайте разработчиков, ссылки которых указанны в их названиях. Для скачивание программы StarWind Virtual SAN необходимо будет выбрать на сайте Free версию программы и пройти процесс регистрации, с указанием корпоративного почтового адреса. На указанный вами почтовый адрес придет лицензионный ключ и ссылка на скачивание самой программы.

Настройка программы Tftpd32

Данная программа довольно простая и интуитивно понятная, поэтому приведу просто скриншоты своих настроек:


На вкладке «GLOBAL» у меня отмечены галочкой сервисы TFTP Server, Syslog Server и DHCP Server. На вкладке TFTP в поле Base Directory указана точка, которая означать, что в качестве корневой директорией будет использоваться папка, куда установлена сама программа Tftpd32. На вкладке DHCP в поле Boot File указан название загружаемого файла, которую мы рассмотрим дальше в настройках PXELINUX. На вкладке SYSLOG настройки не требуются.

Цель iSCSI. Настройка программы StarWind Virtual SAN

При установке программа никаких настроек не запрашивает, единственное может дополнительно запустить установку.NET Framework 4, если она еще не установлена в системе. После установки программа запускает свои службы и сразу готова к работе. На рабочем столе создается ярлык StarWind Management Console для управления.

Открываем StarWind Management Console, жмем кнопку Add Server и создаем новый сервер с IP-адресом 192.168.0.1. Имеющийся по умолчанию сервер с IP-адресом 127.0.0.1 можно удалить.
Далее выбираем созданный нами сервер и нажимаем ссылку Add Target. В появившемся окне можем указать свое название IQN цели, активировав галочку Target Name. В частности я указал iqn.2014-11.home:win7-64bit.
Далее выбираем созданный нами Target и нажимаем ссылку Add Device. В появившейся окне выбираем Hard Disk Device, далее выбираем Virtual Disk, указываем расположение и объем создаваемого диска, затем несколько раз нажимаем кнопку Next и создаем дисковое устройство нажатием кнопки Create.

В итоге получаем настроенный и готовый к работе iSCSI Target, имеющий следующий вид:



При необходимости мы можем создавать необходимое количество iSCSI Target-ов и на каждый из них подключить необходимое количество iSCSI дисков. А также обеспечить безопасности доступа к iSCSI Target-ам с использованием CHAP-аутентификации клиентов, нажав по ссылке Add Permission.

Настройка PXELINUX

PXELINUX входит в комплект программ syslinux. Поэтому идем на сайт www.syslinux.org/wiki/index.php/Download и загружаем zip архив с набором загрузчиков syslinux. Открываем загруженный архивный файл и распаковываем файлы pxelinux.0 из директории core и menu.c32 из директории com32/menu. Файл pxelinux.0 является загрузчиком, который передается клиентскому ПК DHCP сервером, а файл menu.c32 отвечает за построение загрузочного меню. Распакованные файлы размещаем в папку, куда установлена программа Tftpd32 (куда указывает путь в поле Base Directory в настройках TFTP).

В папке программы Tftpd32 создаем вложенную папку pxelinux.cfg, а в нем создаем файл default следующего содержания:
default menu.c32
gfxmenu /erdpxe
prompt 0

MENU TITLE Boot Menu (select the OS to boot)
MENU AUTOBOOT Windows 7 64bit in # seconds
TIMEOUT 50
TOTALTIMEOUT 3000

LABEL Windows 7 64bit
MENU DEFAULT
KERNEL IPXE.KRN
INITRD win7.ipxe

Думаю излишнем писать подробный комментарий к данному файлу, рассмотрим только две последние строчки:
KERNEL IPXE.KRN - указывает на ядро iPXE, которую нужно загрузить.
INITRD win7.ipxe - указывает на файл скрипта с параметрами iPXE

Указанных настроек PXELINUX вполне достаточно для использования дефолтной конфигурации и можно перейти к дальнейшей настройке iPXE, поэтому остающуюся часть текста решил убрать под спойлер.

Создание отдельного загрузочного меню для каждого ПК

Если в сети существует несколько бездисковых рабочих станций, и нужно чтобы каждый ПК имел доступ только «к своему» iSCSI-диску и не имел доступа к «чужим» дискам, то нам нужно будет создать несколько файлов с загрузочным меню для каждого ПК.

При получении файла конфигурации от TFTP сервера клиент ищет подходящую для себя в следующем порядке:
pxelinux.cfg/01-88-99-aa-bb-cc-dd
pxelinux.cfg/C0A800FE
pxelinux.cfg/C0A800F
pxelinux.cfg/C0A800
pxelinux.cfg/C0A80
pxelinux.cfg/C0A8
pxelinux.cfg/C0A
pxelinux.cfg/C0
pxelinux.cfg/С
И если ничего подходящего нет -
pxelinux.cfg/default

Здесь pxelinux.cfg - сама папка с файлами конфигурации.
01-88-99-aa-bb-cc-dd - файл с названием МАС-адрес клиента, в нижнем регистре, разделенный тире, с префиксом 01-.

Соответственно, для каждой бездисковой рабочей станции нам нужно написать «свое» загрузочное меню и разместить в папке pxelinux.cfg с названием файла 01-mac-адрес клиента, в нижнем регистре. Содержимое этих файлов может отличаться, к примеру, только последней строчкой INITRD win7.ipxe .

Используя Предварительную загрузку (Preboot Execution Environment (РХЕ)), вы може­те поместить загрузочные файлы в папку на другом компьютере сети, после чего загрузить ПК, используя эти файлы. Придется потрудиться, но это проще, чем загрузка с диска.

Для начала нужен рабочий компьютер с выходом в Интернет. Установите Па­кет автоматической установки Windows (Windows Automated Installation Kit (WAIK)), который можно бесплатно скачать с http://go.microsoft.com/fwlink/?LinkId=136976 . Из меню Пуск откройте Утилиты командной строки Windows РЕ (Windows РЕ Tools Command Prompt) и, если вы устанавливаете 32-битную версию Windows 7, на­берите

  • copype.cmd х8б C:\output

или, для 64-битной (х64) версии,

  • copype.cmd amd64 C:\output

и нажмите Enter. Командный файл автоматически создаст лапку C:\output. После копирования файлов наберите следующую команду для подсоединения обра­за Утилиты предварительной установки Windows (Windows Preinstallation Environment (РЕ)):

  • imagex /mountrw C:\output\winpe.wiro 1 C:\output\mount

Далее откройте Проводник Windows и создайте гюдпапку внутри c:\output, назвав ее boot Скопируйте все файлы из C:\output\mount\Windows\Boot\PXE в новую папку C:\output\boot. После этого отсоедините образ Windows РЕ:

  • imagex /unmount C:\output\mount

Скопируйте файл boot.sdi из установочной папки WAIK в папку C:\output\boot. Если вы устанавливаете 32-битную версию Windows 7, возьмите boot.sdi из C:\Program Files\Windows AIK\Tools\PETools\x86\boot, а если 64-битную (х64) версию, то возьмите его из C:\Program Files\Windows AIK\Tools\PETools\amd64\boot.

Вернитесь к окну командной строки и скопируйте файл winpe.wim в папку boot переименовав его в boot.wim:

сору C:\output\winpe.wim c:\output\boot\boot.wim

После этого остается ввести еще несколько команд для создания файла Данных конфигурации загрузки (Boot Configuration Data (BCD)), используя bcdedit.exe, ту же утилиту, которая применяется для создания двойной загрузки. Просто загрузите makebcd.bat с http://files.creativelement.com/annoyances/makebcd.bat и запустите ее на своем ПК. Чтобы скопировать и вставить GUID, щелкните правой кнопкой мыши на любой области окна командной строки, выберите Пометить (Mark), вы­делите текст в фигурных скобках, расположенный над командой, затем нажмите Enter, чтобы скопировать текст. Снова щелкните правой кнопкой мыши, выберите Вставить (Paste), чтобы вставить текст, и нажмите Enter для продолжения. Если все в порядке, появится сообщение Операция успешно выполнена (The operation completed successfully).

Последний шаг - установка серверной программы Trivial File Transfer Protocol (TFTP), например Tftp32, чтобы ком­пьютер мог подсоединиться к рабочему ПК для извлечения файлов загрузки. Уста­новите Tftp32 и запустите tftpd32.exe. Нажмите Найти (Browse), выберите папку C:/output и нажмите ОК, чтобы установить Текущий каталог (Current Directory). Далее выберите вкладку Сервер DHCP (DHCP server), нажмите Помощь (Help) и заполните поля, следуя подсказкам. В поле Загрузочный файл (Boot file) наберите boot. sdi. После этого нажмите Сохранить (Save).

После настройки сервера РХЕ необходимо активировать сетевую загрузку РХЕ в настройке BIOS вашего ПК. Вам понадобится имя хоста и IP-адрес компьютера, действующего в качестве сервера РХЕ.

PXE -совместимые прошивки используются производителями при изготовлении сетевых карт и BIOS материнских плат с интегрированными сетевыми картами. Поэтому для бездисковой загрузки потребуется сетевая карта укомплектованная прошивкой PXE . Если у вас сетевая карта без прошивки, но Вы желаете сделать бездисковую загрузку, то как единственный выход в использовании прошивок Etherboot . Этот вариант здесь не рассматривается.

Как работает PXE

1.PXE запрос DHCP сервера: сетевая карта с поддержкой PXE запрашивает DHCP сервер на получение параметров, таких как IP-адрес клиента, маска подсети, IP-адрес TFTP сервера, на котором находится образ, а также - имя образа.

2.Ответ DHCP сервера – сервер назначает IP-адрес и затем передает его для использования клиенту вместе с другими параметрами.

– клиент загружает с указанного DHCP-сервером IP-адреса TFTP сервера сначала PXE загрузчик - pxelinux. 0, с помощью которого загружается уже ядро операционной системы Linux - vmlinuz и образ файловой системы - initrd, включающий все необходимое для работы клиента.

загрузочные скрипты системы Linux получают c TFTP-сервера конфигурационные файлы, в которых описаны необходимые параметры для соединения клиента с терминальным сервером.

5.Инициализация терминального клиента – в зависимости от параметров конфигурационного файла запускается RDP или ICA клиент, который устанавливает соединение с терминальным сервером.

Настройка сервера DHCP и TFTP на linux

Пример настройки на Slackware.

В slackware чтобы inetd слушал запросы TFTP , нужно расcкомментировать строку в файле /etc/inetd.conf :

Tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot -r blksize

И сделать рестарт сервиса inetd :

Host:~# killall -1 inetd

Потом создать директорию tftpboot и дать права:

Host:~# mkdir /tftpboot host:~# chmod -R 777 /tftpboot

Option domain-name "example.com"; option domain-name-servers 192.168.0.1; server-identifier NAME_HOST; authoritative ; allow booting; allow bootp; max-lease-time 172800; ignore client-updates; ddns-domainname "example.com"; ddns-updates on; ddns-update-style interim; default-lease-time 86400; log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 192.168.0.1; one-lease-per-client on; range 192.168.0.20 192.168.0.30; } group { filename "pxelinux.0"; next-server 192.168.0.1; host 1 { hardware ethernet 00:0E:8F:32:B6:C5; fixed-address 192.168.0.10; } host 2 { hardware ethernet 08:20:07:26:C0:A5; fixed-address 192.168.0.11; } }

Распаковываем образ thinstation с pxe в /tftpboot

Установка в Debian stretch.

Ставим сервер DHCP:

Apt-get install isc-dhcp-server

Конфиг /etc/default/isc-dhcp-server

DHCPDv4_CONF=/etc/dhcp/dhcpd.conf DHCPDv4_PID=/var/run/dhcpd.pid INTERFACESv4="eth0"

Конфиг /etc/dhcp/dhcpd.conf как в примере выше.

Ставим сервер TFTP:

Apt-get install tftpd-hpa

Конфиг /etc/default/tftpd-hpa

TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS="192.168.0.2:69" TFTP_OPTIONS="--secure"

где 192.168.0.2 внешний IP интерфейса сервера

Перезапускаем сервис:

/etc/init.d/tftpd-hpa restart

Для записи логов в /var/log/dhcpd.log нужно прописать в dhcpd.conf :

Log-facility local7;

В /etc/rsyslog.conf добавить в конец файла:

Local7.* /var/log/dhcpd.log

Перезапустить сервисы:

/etc/init.d/rsyslog restart /etc/init.d/isc-dhcp-server restart

Настройка сервера Windows 2003

Службы и сервисы, необходимые для работы «тонких» клиентов

Вы можете использовать в качестве терминального сервера:

Microsoft® Windows® Terminal Server

Citrix® MetaFrame®

Если Вы используете в качестве терминального сервера Windows® Terminal Server, выберите следующие службы и сервисы:

Terminal Server

Если Вы используете в качестве терминального сервера Citrix® MetaFrame®, выберите следующие службы и сервисы:

Citrix® MetaFrame®

Пакет файлов для загрузки по PXE

Настройка DHCP Server

Для настройки DHCP Server выполните следующие действия:

2. Нажмите кнопу Add or remove a role.

3. В открывшемся диалоговом окне Preliminary Steps нажмите кнопку Next.

4. В открывшемся диалоговом окне Configuration Options выберите элемент Custom Configuration и нажмите кнопку Next.

5. В списке Server Role выберите DHCP Server и щелкните на кнопке Next дважды.

6. В диалоговом окне Welcome to the new Scope Wizard нажмите кнопку Next.

7. В диалоговом окне Scope Name в полях Name и Description введите имя и описание, после чего нажмите кнопку Next.

8. В диалоговом окне IP Address Range выполните следующие действия для выдачи DHCP сервером IP адресов для тонких клиентов:

Введите Start IP Address (Начальный IP адрес)

Введите End IP Address (Конечный IP адрес)

Нажмите кнопку Next.

9. В открывшемся диалоговом окне Add Exclusions допускается указать диапазон адресов, которые не будут выделяться DHCP сервером. Нажмите кнопку Next.

10. В открывшемся диалоговом окне Lease Duration можете указать время использования IP-адреса тонкими клиентами. Нажмите кнопку Next.

11. В диалоговом окне Configure DHCP Options выберите No, I will configure these options later. Нажмите кнопку Next, затем кнопку Finish.

12. Подтвердите действие очередным нажатием кнопки Finish.

13. Выберите Start→Programs→Administrative Tools→Manage Your Server.

14. В открывшемся диалоговом меню выберите элемент Manage this DHCP server

15. В диалоговом окне выберите элемент Server Options. Нажав правую клавишу мыши, в открывшемся контекстном меню выберите Configure Options.

16. В списке выполните следующие действия:

Выберите пункт 066 Boot Server Host Name и укажите IP адрес TFTP сервера, на который устанавливали DHCP сервер

Выберите пункт 067 Bootfile Name и введите имя pxe-загрузчика, а именно pxelinux.0

17. Нажмите кнопку Apply.

18. В диалоговом окне выберите элемент Scope . Нажав правую клавишу мыши, в открывшемся контекстном меню выберите Activate.

Настройка DHCP сервера завершена.

Настройка TFTP Server

1. Выберите Start→Settings→Control Panel→Add or Remove Programs.

2. Нажмите кнопку Add/Remove Windows Components.

3. В списке Components выберите Remote Installation Services и нажмите кнопку Next.

4. Нажмите кнопку Finish и на запрос о перезагрузке выберите No. Перезагрузку сервера осуществите позднее.

Настройка Terminal Server

1. Выберите Start→Programs→Administrative Tools→Manage Your Server.

2. нажмите кнопку Add or remove a role.

3. В диалоговом окне Preliminary Steps нажмите кнопку Next.

4. В списке Server Role выберите элемент Terminal Server и нажмите кнопку Next дважды.

5. В открывшемся диалоговом окне Configure Your Server Wizard появится предупреждение о перезагрузке сервера. Нажмите кнопку Ok.

6. После перезагрузки нажмите кнопку Finish.

Настройка TFTP Server на автоматический запуск

2. Раскройте список Services and Applications и выберите элемент Services.

3. Справа в появившемся списке нажмите правую клавишу мыши на пункте Trivial FTP Daemon и в контекстном меню выберите Properties.

4. В закладке General в выпадающем меню Startup type выберите Automatic. Нажмите кнопку Apply, затем кнопку Ок.

Создание пользователей терминальных сессий

1. Нажмите правую клавишу мыши на ярлыке My Computer и выберите Manage.

2. В раскрывающемся списке Local Users and Groups выберите папку Users.

3. В появившемся справа списке пользователей нажмите правую клавишу мыши и в открывшемся контекстном меню выберите New User.

4. В диалоговом окне New User введите User name (Имя пользователя) и Password (Пароль). Допустимо отменить выделение User must change password at next logon (Пользователь должен изменить пароль при следующем подключении) и установить необходимые вам пункты: User cannot change password (Пользователь не может изменить пароль), Password never expires (Срок действия пароля никогда не истекает), Account is disabled (Учетная запись отключена). Нажмите кнопку Apply, затем кнопку Ок.

5. В списке выберите папку Groups, и в списке справа нажмите правой клавишей мыши на имени группы Remote Desktop Users, далее выберите Propeties.

6. В появившемся меню выберите General, нажмите кнопку Add и введите имя пользователя, которому Вы хотите разрешить терминальный доступ к серверу. Затем щелкните на кнопке Check Names и подтвердите свой выбор нажатием на кнопку Ок.

7. Нажмите кнопку Apply и кнопку Ок.

Копирование файлов, необходимых для загрузки «тонких» клиентов

1. Создайте папку C:\tftpdroot.

2. Скопируйте в нее файлы pxelinux.0, vmlinuz, initrd, thinstation.conf.network.

3. Создайте папку с:\tftpdroot\pxelinux.cfg.

4. Скопируйте файл default в папку c:\tftpdroot\pxelinux.cfg

5. Теперь необходимо отредактировать конфигурационные файлы. Подробное опи¬са¬ние действий представлено в части 3. «Изменение параметров конфи¬гура¬ци¬он¬ных файлов».

Настройка сервера для передачи звука тонким клиентам Внимание! Для передачи звука «тонким» клиентам необходимо, чтобы на сервере была установлена ОС Microsoft® Windows® 2003, звуковая карта и необходимые драйверы.

1. Выберите Start→Settings→Control Panel

2. Откройте Sounds and Audio Devices и установите выделение в пункте Enable Windows Audio. Нажмите кнопку Ok.

3. На запрос о перезагрузке нажмите кнопку Yes.

4. После перезагрузки вызовите Microsoft® Management Console (Start→Run→mmc).

5. Затем выполните следующие действия: File→Add/Remove Snap-in и нажмите кнопку Add.

6. Выберите Group Policy Object Editor и нажмите кнопку Add, затем последовательно нажимайте на кнопки Finish, Close,Ok.

7. Откройте элемент Local Computer Policy→Computer Configuration→Administrative Templates→Windows Components→Terminal Services→Client/Server data redirection.

8. В списке справа правой клавишей выберите Properties в пункте Allow audio redirection.

9. Выделите пункт Enabled и нажмите кнопку Apply, затем кнопку Ок.

Изменение параметров конфигурационных файлов

Конфигурационные файлы

При запуске «тонкого» клиента происходит поиск на TFTP-сервере конфигурационных фай-лов в следующем порядке:

1. thinstation.conf.buildtime - Задает параметры в загрузочном образе

2. thinstation.conf.network – глобальный конфигурационный файл. Этот файл может использоваться, если Вам требуются одинаковые настройки для всех «тонких» клиентов. Если вам необходимы по различным причинам (разные частотные характеристики развертки мониторов, клиенты должны устанавливать сессии только с определенными терминальными серверами, обеспечение передачи звука только определенным клиентам) разные настройки «тонких» клиентов, то используйте ниже описанные конфигурационные файлы.

3. thinstation.hosts – конфигурационный файл содержащий информацию о клиентах (имя компьютера, MAC-адрес, группу). Для объединения клиентов в группы используется совместно с файлом thinstation.conf.group-ИМЯ_ГРУППЫ. Для ин¬ди¬ви¬ду-альной настройки клиентов по имени компьютера используется совместно с thinstation.conf-ИМЯ_КОМЬЮТЕРА.

4. thinstation.conf.group-ИМЯ_ГРУППЫ – конфигурационный файл группы. Ис¬поль-зуется совместно с thinstation.hosts (например, thinstation.conf.group-managers).

5. thinstation.conf-ИМЯ_КОМПЬЮТЕРА – конфигурационный файл для инди¬ви¬ду-альной настройки клиента по имени компьютера. Используется совместно с thinstation.hosts (например, thinstation.conf-ivanov).

6. thinstation.conf-IP_АДРЕС - конфигурационный файл для индивидуальной на¬строй-ки клиента по IP-адресу (например, thinstation.conf-192.168.0.1).

7. thinstation.conf-MAC_АДРЕС - конфигурационный файл для индивидуальной на-строй¬ки клиента по MAC-адресу (например, thinstation.conf-000C6ED598AC).

8. thinstation.conf.user - локальный конфигурационный файл, размещаемый на локальных носителях (жесткий диск, дискета, флэшка) в каталоге thinstation.profile

Последовательность применения переменных из файлов конфигурации:

Первым применяется thinstation.conf.buildtime при начальной загрузки образа, затем происходит получение файла thinstation.conf.network, и далее индивидуальные файлы конфигурации.

Если значение переменной SESSION_0_TYPE=rdesktop в файле thinstation.conf.network, а в thinstation.conf-ИМЯ_КОМЬЮТЕРА уже SESSION_0_TYPE=freerdp, то в результате загрузится freerdp.

Но если уровень загрузки программы rc.0, то программа инициализируется раньше чем подхватываются файлы конфигурации. В таком случае параметры для этой программы можно задать только при сборке образа системы в файле thinstation.conf.buildtime.

Объединение клиентов в группы

Используя файлы thinstation.hosts и thinstation.conf.group-ИМЯ_ГРУППЫ можно объединить клиентов в группы с одинаковыми конфигурациями. Для этого нужно внести сведения в файл thinstation.hosts, такие как ИМЯ_КОМПЬЮТЕРА,MAC_АДРЕС, ИМЯ_ГРУППЫ. Отредактировать файл thinstation.conf.group-ИМЯ_ГРУППЫ. Подробное описание синтаксиса конфигурационных файлов можно посмотреть в конце этого раздела.

Индивидуальная настройка «тонких» клиентов Для индивидуальной настройки «тонких» клиентов следует использовать следующие группы файлов:

1. Используя thinstation.hosts и thinstation.conf-ИМЯ_КОМПЬЮТЕРА можно настроить клиент с определенным именем компьютера. Для этого в файл thinstation.hosts нужно внести сведения, такие как ИМЯ_КОМПЬЮТЕРА и MAC_АДРЕС. Кроме этого, требуется отредактировать файл thinstation.conf.group-ИМЯ_КОМПЬЮТЕРА.

2. Используя thinstation.conf-IP_АДРЕС можно передать настройки клиенту с конкретным IP-адресом. Так как IP-адрес выдается DHCP сервером, то необходимо настроить сервер так, чтобы каждому клиенту выдавался уникальный IP-адрес.

3. Используя thinstation.conf-MAC_АДРЕС можно передать настройки клиенту с конкретным MAC-адресом. Для этого достаточно отредактировать файл thinstation.conf-MAC_АДРЕС.

Синтаксис конфигурационных файлов

Синтаксис конфигурационного файла thinstation.hosts:

#ИМЯ_КОМПЬЮТЕРА MAC_АДРЕС ИМЯ_ГРУППЫ КОМЕНТАРИИ thinstation1 000103014152 samba # IVANOV thinstation2 000103014152 # PETROV

Синтаксис конфигурационных файлов thinstation.conf.network , thinstation.conf.group-ИМЯ_ГРУППЫ, thinstation.conf-ИМЯ_КОМПЬЮТЕРА, thinstation.conf-IP_АДРЕС, thinstation-MAC_АДРЕС:

# --- Пример конфигурационного файла # --- Опции сессий # # # SESSION_TITLE Описание сессии # SESSION_TYPE Тип сессии: # - rdesktop Терминальный клиент к Microsoft® Terminal # Services # - ica Терминальный клиент к Citrix® MetaFrame® # # SESSION_SCREEN Экран сессии на котором запускается X server # SESSION_AUTOSTART On/Off Автоматический ввод логина и пароля # SESSION_WORKSPACE Workspace для запуска программ # SESSION_PACKAGE_SERVER IP адрес терминального сервера # SESSION_PACKAGE_OPTIONS опции терминального клиента # # # --- Опции клиента Citrix # #ICA_USE_SERVER_KEYBOARD Использовать раскладку клавиатуры сервера, # В противном случае используйте KEYBOARD_MAP #ICA_BROWSER_PROTOCOL Протокол браузера, HTTPonTCP или UDP #ICA_ENCRYPTION Уровни шифрации #ICA_COMPRESS Компрессия, On/Off #ICA_AUDIO Audio, On/Off #ICA_AUDIO_QUALITY Качество Audio: Low, Medium, High #ICA_APPLICATION_SET Опубликованное приложение (Не используется если есть ICA_SERVER) #ICA_SERVER Сервер Citrix (не используется если есть # ICA_APPLICATION_SET) # Настройки по умолчанию для всех сессий SCREEN=0 WORKSPACE=1 AUTOSTART=Off ICA_USE_SERVER_KEYBOARD=On ICA_BROWSER_PROTOCOL=HTTPonTCP ICA_SERVER=192.168.88.100 ICA_ENCRYPTION=Basic ICA_COMPRESS=On ICA_AUDIO_QUALITY=Medium ICA_AUDIO=On # Индивидуальные настройки, # Внимание! Будьте уверены, что Вы начинаете с SESSION 0. В противном случае Вы # получите ошибку при загрузке SESSION_0_TITLE="Citrix MetaFrame Terminal Server" SESSION_0_TYPE=ica SESSION_0_SCREEN=1 SESSION_0_ICA_SERVER=192.168.88.100 # Опция -a указывает глубину цвета # Будьте уверены, что ваш сервер поддерживает такую глубину цвета, так как # в противном случае это приведет к ошибке SESSION_1_TITLE="Microsoft Terminal Server" SESSION_1_TYPE=rdesktop SESSION_1_SCREEN=0 SESSION_1_RDESKTOP_SERVER=192.168.88.100 SESSION_1_RDESKTOP_OPTIONS="-u user -a 16 -r sound" # SESSION_0_AUTOSTART=Off # --- Главные настройки # # KEYBOARD_MAP Раскладка клавиатуры # AUTOPLAYCD автоматическое проигрывание CD # RECONNECT_PROMPT Переподключение к серверу: On/Off KEYBOARD_MAP=ru # AUTOPLAYCD=On RECONNECT_PROMPT=On # --- Сетевые настройки # # NET_HOSTNAME Имя компьютера, если не используется # thinstation.hosts, # символ * будет заменен на MAC address NET_HOSTNAME=ts_* # --- Настройки XServer # # SCREEN_RESOLUTION Разрешение экрана 1024х768,800х600,640х480 # SCREEN_COLOR_DEPTH Число бит на пиксель (8,16,24) # SCREEN_HORIZSYNC Горизонтальная частота в Khz. # SCREEN_VERTREFRESH Вертикальная частота в Hz. SCREEN_RESOLUTION="800x600" SCREEN_COLOR_DEPTH="16 | 8 | 24" SCREEN_HORIZSYNC="30-64" SCREEN_VERTREFRESH="56-87"

Пример основныx настроек thinstation.conf.user:

NET_USE_DHCP=off # Если не используете DHCP, то обязательно указать OFF NET_USE_TFTP=off # Для загрузки файлов конфигурации с диска поставить OFF NET_IP_ADDRESS=XXX.XXX.XXX.XXX # IP клиента NET_MASK=255.255.255.0 # Маска подсети #NET_GATEWAY=XXX.XXX.XXX.XXX # Если нужно указать шлюз #NET_DNS1=XXX.XXX.XXX.XXX # IP адрес DNS сервера #NET_DNS2=XXX.XXX.XXX.XXX SCREEN=0 WORKSPACE=1 AUTOSTART=Off # Для нескольких сессий выбрать off. SESSION_0_TITLE="terminall server 1" # Название сервера или имя клиента, отображаеться в режиме AUTOSTART=Off SESSION_0_TYPE=rdesktop # Тип сессии SESSION_0_SCREEN=1 # Экран сессии SESSION_0_RDESKTOP_SERVER=XXX.XXX.XXX.XXX # IP терминального сервера SESSION_0_RDESKTOP_OPTIONS="-u "user"" # Имя пользователя #SESSION_1_TITLE="terminall server 2" #SESSION_1_TYPE=rdesktop #SESSION_1_SCREEN=1 #SESSION_1_RDESKTOP_SERVER=XXX.XXX.XXX.XXX #SESSION_1_RDESKTOP_OPTIONS="-u "user2"" # Подключение устройств в RDP сессии. RDESKTOP_SOUND=Off RDESKTOP_FDD=On RDESKTOP_CDROM=Off RDESKTOP_HDD=Off RDESKTOP_USB=On RDESKTOP_1394=Off RDESKTOP_COM3=Off RDESKTOP_COM4=Off RDESKTOP_SLOWLINK=On # Оптимизация под модемное соединение RDESKTOP_COMPRESSION=On # Использование компрессии для RDP данных RDESKTOP_COLOR_DEPTH="16" # Глубина цвета KEYBOARD_MAP=en_us # Раскладка клавиатуры TIME_ZONE="Europe/Moscow" USB_ENABLED=On # Включение драйверов USB AUDIO_LEVEL=67 AUTOPLAYCD=On # Автоматическое проигрывание музыкальных CD DAILY_REBOOT=On # Если в течении дня нет соединения с сервером, то происходит перезагрузка CUSTOM_CONFIG=off RECONNECT_PROMPT=menu # Действие при отключении сессии, варианты: ON (переподключиться), OFF (не переподключаться), MENU (показывать меню), MENUXX (где XX - время паузы в мин. перед отключением). Работает в режиме AUTOSTART=On NET_HOSTNAME=host # Имя компьютера клиента NET_TELNETD_ENABLED=On # Доступ к клиенту по сетевому протоколу telnet SCREEN_RESOLUTION="1024x768" # Разрешение экрана SCREEN_HORIZSYNC="30-65" # Для CRT лучше поставить 30-75 SCREEN_VERTREFRESH="75" # Для LCD мониторов, для CRT поставить 85 SCREEN_COLOR_DEPTH="16" # Глубина цвета иксов MOUSE_PROTOCOL=IMPS/2 # Протокол для мыши MOUSE_RESOLUTION=100 # Разрешающая способность мыши MOUSE_ACCELERATION="1" # Ускорение мыши, например значение 1/8 замедлит движение X_DRIVER_OPTION1="swcursor On" # Аппаратный курсор POWERBTN_ACTION=Off # Выключение кнопкой питания, если не указывать эту переменную, то переход в режим standby PRINTER_0_NAME=parallel # Имя принтера PRINTER_0_DEVICE=/dev/printers/0 # Устройство принтера PRINTER_0_TYPE=P # Для принтера подключенного к параллельному порту PRINTER_1_NAME=usb # Имя принтера PRINTER_1_DEVICE=/dev/usb/lp0 # Устройство принтера PRINTER_1_TYPE=U # Для USB принтера

Сегодня автоматизируется все больше задач, для максимальной отдачи серверов все шире используют виртуализацию. Но устанавливать операционки по-прежнему приходится. Каждый делает это по-своему: у кого-то полные карманы различных образов на все случаи жизни, кто-то по старинке носит с собой «барсетку» с дисками, а то и две. Как правило, администраторы выполняют эту работу с невеликим удовольствием. Давай посмотрим, как сократить время на тривиальные задачи, как научить компьютеры устанавливать системы самостоятельно, вообще без участия админа, используя при этом только локальную сеть.

Итак, сегодня мы научимся: устанавливать Windows и Linux по сети, грузить небольшие ISO-образы, полезный софт (всяких там Касперских, Акронис, WinPE, мемтесты), разворачивать тонкие клиенты и рулить ими. Чтобы, например, бухгалтер, работающая с 1С по RDP, не прибила тебя за то, что у нее слетела винда, а отчет нужно было подготовить еще вчера… Или скупой начальник, который не хочет обновлять свой комп, восхитился твоим профессионализмом, когда увидит, как на стареньких компах летает Windows 8… В достижении наших коварных целей нам поможет сервер, предоставляющий загрузку по сети (PXE).

У любого системного администратора в заначке есть универсальный USB-диск для экстренной реанимации компьютера. Согласись, было бы куда лучше иметь ту же функциональность, используя одну лишь сетевую карту. Нельзя при этом не отметить возможность одновременной работы с несколькими узлами сразу. Итак, исходя из наших потребностей у нас есть два пути решения: использовать PXE или LTSP.

LTSP нам не очень подходит: он призван грузить по сети ОС, установленную на самом сервере, что позволяет использовать приложения сервера LTSP. Это не совсем то, что нам нужно. PXE - инструмент для загрузки компьютера по сети без использования локальных носителей данных, так же как и LTSP. PXE позволяет организовать мультизагрузочное меню загрузки, аналогичное универсальному «USB-реаниматору».


Что будем реализовывать?

Началось все с необходимости иметь под рукой инструмент для удаленной установки Ubuntu/Debian Server по сети, с возможностью загрузки Live CD маленькой системы, вроде SliTaz или Kolibri OS.
Как говорится, аппетит приходит во время еды: намеченное не успели реализовать, а к плану добавился еще ряд «хотелок». В итоге список получился весьма внушительным.

  1. Тонкие клиенты на базе Thinstation Linux.
  2. Раздел Linux.
    1. Установка Ubuntu 14.04 x86.
    2. Установка Ubuntu 14.04 x64.
    3. Установка Ubuntu 12.04 x86.
    4. Установка Ubuntu 12.04 x64.
  3. Раздел Windows.
    1. Установка Windows 2012.
    2. Установка Windows 7.
  4. Acronis.
    1. Windows PE с пакетом полезного ПО.
    2. Acronis True Image.
      1. Legacy BIOS.
      2. UEFI.
    3. Acronis Disk Director.
      1. Legacy BIOS.
      2. UEFI.
  5. Касперский Rescue v 10.
  6. ERD Commander от 5 до 8 через ISO-образ.
  7. Memtest.

Собираем все в кучу и взлетаем

В качестве дистрибутива для сервера выбор пал на Ubuntu Server 14.04.2 LTS. Можно остановиться на любой другой ОС, разница будет только в синтаксисе. Итак, приступим. Нам потребуется TFTP, DHCP (необязательно установленный на этом же сервере, в роли DHCP-сервера может выступить роутер), сервис для организации сетевой файловой системы NFS. Рассматривать будем только те настройки, которые нас интересуют в рамках темы. Первым делом установим все необходимое, предварительно сделав все обновления:

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

Технология PXE опирается на стандартные протоколы, в том числе TCP/IP и Dynamic Host Configuration Protocol.

Много лет назад для того, чтобы сконфигурировать пользовательский компьютер или устранить на нем возникшую неисправность, кому-то из специалистов ИТ-службы или корпоративной службы HelpDesk приходилось брать установочные диски для программных продуктов, а также диски со средствами диагностики и драйверами, и идти к этому проблемному ПК.

С созданием корпоративных сетей было найдено и решение этой задачи. В середине 90-х годов Intel, наряду с множеством других производителей аппаратного и программного обеспечения, начала поддерживать спецификации, созданные на основе открытых стандартов и получившие название Wired for Management (WfM).

Эти спецификации, направленные на снижение общей стоимости владения, позволяли системным администраторам по сети обращаться к ПК для проведения мониторинга, обновления и конфигурирования, используя стандартизованное коммуникационное программное обеспечение и приложения удаленного управления. Потребовалась стандартизация аппаратного обеспечения (в том числе микросхем, BIOS, памяти, источников питания и сетевых плат) в пользовательских ПК. Спецификация WfM поддерживает широкий спектр сетевых технологий для ПК, в том числе Desktop Management Interface, удаленный запуск (также называемый запуском по локальной сети или сервисной загрузкой) и Preboot Execution Environment (PXE).

PXE возвращает нас к тому времени, когда не все компьютеры имели внутренние жесткие диски. Как правило, PXE предусматривает загрузку компьютера из микропрограммы, то есть из памяти, доступной только на чтение, или из микросхемы ROM, а не с магнитного носителя. Загрузка из микропрограммы позволяет избавиться от проблем, связанных с использованием электромеханического устройства (физического диска), что увеличивает надежность, избавляет от ошибок чтения диска и ускоряет процесс загрузки. Кроме того, PXE может использоваться для загрузки компьютера по сети.

Несмотря на то что WfM была вытеснена более новыми стандартами на управление, такими как Intel Active Management Technology, возможности, которые поддерживала PXE, сетевые администраторы по-прежнему считают весьма полезными.

Технология PXE предназначена для автоматизированного дистанционного управления пользовательскими ПК и рабочими станциями. Она опирается на стандартные для отрасли Internet-протоколы, в том числе TCP/IP и Dynamic Host Configuration Protocol (DHCP). Компьютеры, поддерживающие PXE, как правило, имеют сетевую плату, которая остается активной и подключенной к локальной сети даже тогда, когда питание самого ПК выключено. Эта плата просматривает трафик локальной сети в поисках специальной последовательности данных - уникального для ПК адреса контроля доступа к носителю, повторенного шесть раз. Когда сетевая плата получает этот «волшебный пакет», она включает ПК. Для того чтобы это произошло, поддержка запуска по локальной сети должна быть активирована в BIOS данного ПК. Запуск по локальной сети в некоторых очень старых ПК может не поддерживаться, поскольку он требует электрического соединения между сетевой и системной платами - обязательное аппаратное требование, которое не может быть выполнено одним только обновлением BIOS. Однако большинство корпоративных ПК отвечает этому требованию к аппаратному обеспечению.

Как только включается локальный ПК, сетевая плата активизируется и выполняется конфигурация. Для того чтобы можно было использовать PXE, необходима соответствующая инфраструктура сервера. Когда загружается клиент PXE, происходит следующее. Во-первых, клиент получает IP-адрес от сервера DHCP. К сожалению, PXE требует наличия некоторых функций, которые могут работать не на всех серверах DHCP, поэтому большая часть программного обеспечения, которая поддерживает PXE, также включает в себя сервис-посредник DHCP. Этот сервис-посредник не предоставляет IP-адреса напрямую, но позволяет работать DHCP.

После подключения к серверу DHCP, система определяет местонахождение сервера загрузки PXE, который посылает ему необходимые файлы. Сервер DHCP предоставляет имя загрузочного файла, а ПК затем загружает его с сервера Trivial File Transfer Protocol (TFTP).

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

Технология PXE предусматривает загрузку компьютера из микропрограммы, то есть из памяти, доступной только для чтения, или из микросхемы ROM, а не с магнитного носителя. Это ускоряет процесс загрузки, увеличивает его надежность и позволяет осуществлять ее по сети.

  1. Сетевая плата прослушивает трафик локальной сети на предмет наличия определенных последовательностей данных
  2. Сетевая плата фиксирует в передаваемых данных «магический пакет» и подает питание на ПК через разъем питания на системной плате
  3. Клиент PXE запрашивает IP-адрес у DHCP или прокси-сервера
  4. DHCP передает имя загрузочного файла
  5. PXE запрашивает файл с сервера загрузки
  6. Клиент PXE загружает файл с сервера TFTP. Клиент PXE выполняет загрузку с полученного файла