Войти

Показать полную графическую версию : Бездисковые рабочие станции


Bazaroff
22-04-2010, 22:46
Поделитесь знаниями, господа!
Что нужно для обеспечения загрузки бездисковой станции в локальной сети?
Не пойму: как она будет загружаться с нормального компа?
Использовать его ОС? Но ведь ОС инсталлирована и настроена уже под другой комп.
Или для этого уже необходим сервер? Может ли обычный комп с установленной на нем соответствующей ОС выполнять роль сервера для таких целей? Или уже и соответствующее железо необходимо чтобы справляться с такой задачей?

Stanislas
23-04-2010, 17:57
Для бездисковой загрузки тебе необходимо:Домен,DHCP сервер,служба Терминал, настроенная служба TFTP(для загрузки файлов базовой конфигурации) и клиентские машины с сетевыми картами PXE.
Из необходимого железо понадобиться компьютер для сервера(комплектация в зависимости от количества клиентов).
Загрузка производиться без содействия ОС установленной на комп клиента,файлы загружаются сетевой картой при запуске компьютера.

upx
30-04-2010, 12:33
Терминал ставить необязательно. Домен тоже.
Буквально на днях экспериментировал с сетевой загрузкой Windows XP.
Вот что получилось (бета версия)


Опыт построения бездисковой рабочей станции Windows XP

Предполагается, что на клиентском компьютере имеется сетевая плата с поддержкой
загрузки по PXE. Если это не так, можно установить загрузчик gPXE на флеш-носитель
небольшого объёма или на CD.

Используемые инструменты:

загрузчик gPXE (http://www.etherboot.org/)
драйвер WinAoE (http://winaoe.org/)
серверная часть на базе Debian Linux (Lenny)

сервер DHCP (используется udhcpd)
сервер TFTP (используется atftpd)
сервер AoE (используется vblade)


Буду признателен, если кто-нибудь дополнит статью настройкой серверной части на базе Windows

1 Создание gPXE-загрузчика


Заходим на http://rom-o-matic.net/
Открываем ссылку "gPXE ... Image Generator"
Нажимаем кнопку "Customize"
В списке "Choose an output format" выбираем "PXE bootstrap loader image (.pxe)"
В списке "Choose NIC type" выбираем "undionly" или "all-drivers"
Внизу, в большом поле "Embedded script" пишем:
#!gpxe
dhcp net0
chain tftp://${next-server}/gpxe/${net0/mac}.gpxe
sanboot ${root-path}
Нажимаем "Get Image"
Полученный файл сохраняем под именем "gpxe.0"


Встроенный скрипт нужен для того, чтобы избежать бесконечного цикла при загрузке:
по умолчанию gPXE загружает с TFTP-сервера файл, указанный параметром boot_file,
т.е, делает то же, что и встроенный в сетевую плату PXE-код. И в результате
загружает сам себя до бесконечности. Скрипт вместо этого выполняет DHCP-настройку
сетевой платы, и загружается с образа, заданного параметром root-path. Кроме того,
скрипт пытается загрузить файл вида gpxe/XX:XX:XX:XX:XX:XX.gpxe
(где XX:XX:XX:XX:XX:XX - MAC-адрес клиента), и если такой найден, выполнит его.
Это позволяет выполнить индивидуальную настройку клиентов в зависимости от их
MAC-адреса.

Есть другие способы это обойти:

прошить gPXE-загрузчик в BIOS сетевой платы вместо штатного. Для этого нужно выбрать
"NIC type", соответствующий сетевой плате, "output format" выбрать .rom, а в поля
PCI VENDOR CODE и PCI DEVICE CODE прописать соответствующие коды.
Поробнее об этом здесь:
http://etherboot.org/wiki/romburning
http://etherboot.org/wiki/biosext
http://etherboot.org/wiki/amibios
настроить DHCP-сервер, чтобы он отдавал разное имя файла boot_file в зависимости от
имени DHCP-клиента. Примеры есть здесь: http://etherboot.org/wiki/pxechaining


2 Настройка серверной части

2.1 Установка DHCP-сервера

2.1.1 DHCP-сервер udhcpd, Linux (Debian Lenny)


Устанавливаем udhcpd
Настраиваем DHCP-сервер. В файле /etc/udhcpd.conf прописываем примерно такие параметры:

start 192.168.1.151
end 192.168.1.250
max_leases 100
option subnet 255.255.255.0 # Маска сети для клиентов
option router 192.168.1.1 # Шлюз по умолчанию для клиентов
option dns 192.168.1.1 # Адрес DNS-сервера для клиентов
siaddr 192.168.1.1 # IP адрес TFTP-сервера (см. ниже)
sname BootServer # Любой текст
boot_file gpxe.0 # Имя файла с PXE-загрузчиком
option rootpath aoe:e9.0 # Идентификатор AoE-диска (см. ниже)

Перезапускаем DHCP-сервер командой: /etc/init.d/udhcpd restart


2.2 Установка TFTP-сервера

2.2.1 TFTP-сервер atftpd, Linux (Debian Lenny)


Устанавливаем atftpd (его IP-адрес должен быть указан на шаге 2.1)
Убеждаемся, что в /etc/inetd.conf прописана строка (одной строкой):
tftp dgram udp4 wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd
--tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255
--mcast-ttl 1 --maxthread 100 --verbose=5 /var/lib/tftpboot
В каталог /var/lib/tftpboot помещаем файл gpxe.0, полученный на шаге 1. Права доступа
на него должны быть 644
При необходимости перезапускаем inetd: /etc/init.d/inetd restart


2.3 Установка AoE-сервера

2.3.1 AoE сервер vblade, Linux (Debian Lenny)


Устанавливаем пакет vblade-persist
Создаём образ будущего диска (объём его указан в параметре seek, в Мб):
# mkdir -p /var/lib/aoe
# dd if=/dev/zero of=/var/lib/aoe/disk.img bs=1M count=0 seek=2048
Выполняем:
# vblade-persist setup 9 0 eth0 /var/lib/aoe/disk.img
Здесь 9 и 0 - цифры, идентифицирующие AoE-диск (см. параметр rootpath на шаге 2.1)
eth0 - сетевой интерфейс, к которому подключены клиенты
Запускаем AoE-сервер:
# vblade-persist start all


2.4 Проверка работы AoE-сервера


Заходим на http://winaoe.org/
Скачиваем последнюю версию драйвера (например, winaoe-0.97g.zip)
Из архива распаковываем куда-нибудь каталог bin
Заходим в Панель управления -> Установка оборудования
Обычным образом устанавливаем новое оборудование, тип указываем "SCSI/RAID контроллеры"
Выбираем "Установить с диска", указываем путь к распакованному каталогу bin
Открываем командную строку. Вводим:
> aoe scan
Если AoE-сервер работает, видим что-то вроде:

Client NIC Target Server MAC Size
XX:XX:XX:XX:XX:XX e9.0 YY:YY:YY:YY:YY:YY 2048M
Press enter to exit

где XX:XX:XX:XX:XX:XX - MAC-адрес клиентской сетевой платы
Вводим:
> aoe mount XX:XX:XX:XX:XX:XX 9 0
Где XX:XX:XX:XX:XX:XX - MAC-адрес клиентской (не серверной!) сетевой платы
Windows должна обнаружить новый диск
Заходим в Панель управления->Администрирование->Управление компьютером->Управление дисками
Создаём первичный раздел на новом диске, делаем его активным, форматируем.
Какую взять файловую систему - думаю, что без разницы, я ставил на FAT32.
(Должна совпадать с ФС раздела на п.3 ?)


3 Установка Windows


На клиентском компьютере устанавливаем ещё один экземпляр Windows XP на жёсткий диск.
Можно временно подключить другой диск, или поставить на другой раздел имеющегося.
Загружаемся в неё, устанавливаем все необходимые драйверы
Устанавливаем драйвер winaoe (см. шаг 2.4)
Отключаем файл подкачки
Запускаем Regedit, в ветке HKLM\SYSTEM\CurrentControlSet\Services
находим ветку, отвечающую за сетевую плату. Параметр Start меняем на 0.
Теперь драйвер сетевой платы будет загружаться на этапе загрузки.
Убеждаемся, что сеть работает, AoE-диск монтируется
Перезагружаемся в исходный экземпляр Windows. Монтируем AoE-диск (см. шаг 2.4)
Копируем на AoE-диск файлы:
C:\NTLDR
C:\NTDETECT.COM
C:\BOOT.INI
Также можно скопировать: AUTOEXEC.BAT, CONFIG.SYS, IO.SYS, MSDOS.SYS
Копируем на AoE-диск всё содержимое вновь установленного экземпляра Windows.
\WINDOWS
\Program Files
\Documents and Settings
Как вариант, можно установить Windows на отдельный жёсткий диск, и затем скопировать
полностью образ этого диска на AoE-сервер в файл /var/lib/aoe/disk.img


4 Загрузка по сети


Входим в BIOS SETUP, выбираем сетевую загрузку. При необходимости, включаем опцию
"Option ROM" в настройках сетевой платы. Возможно, нужно будет войти в отдельный
SETUP (по клавише Shift-F10, или F12, или какой-нибудь другой),
выбрать режим загрузки PXE.
Должна начаться PXE-загрузка. Этапы загрузки:

Запрос к серверу DHCP
Загрузка gpxe.0
Приглашение на вход в командную строку gPXE (по Ctrl-B)
Повторный запрос DHCP
Подключение AoE-диска
Загрузка Windows

Если всё сделано правильно, Windows должна загрузиться
Хоть система и загружается по сети, однако скорее всего, она всё ещё использует
файлы с жёсткого диска. Дело в том, в исходной установке системным был один диск
(например, E: ), а сетевым - другой (например, F: ). После загрузки по сети
буквы дисков, скорее всего сохранились, исходный жёсткий - по-прежнему E:,
а сетевой - F:. Однако, в реестре остались ссылки на E: Чтобы это устранить,
запускаем regedit, открываем ветку HKLM\SYSTEM\MountedDevices
Параметр \DosDevices\E: удаляем (либо переименовываем)
Параметр \DosDevices\F: переименовываем в \DosDevices\E: (буквы могут быть другими)
Таким образом, сетевой диск станет E:, а жёсткий пропадёт совсем.
Перезагружаемся, убеждаемся, что всё работает. :)


5 Замечания


Нельзя менять сетевую плату, а также переставлять её в другой слот - скорее всего,
система перестанет загружаться.
Образы AoE-дисков получаются привязанными к конкретному компьютеру. Сколько будет рабочих
станций, столько нужно и образов.

AkP
06-05-2010, 06:43
Поделитесь знаниями, господа!
Что нужно для обеспечения загрузки бездисковой станции в локальной сети?
Не пойму: как она будет загружаться с нормального компа?
Использовать его ОС? Но ведь ОС инсталлирована и настроена уже под другой комп.
Или для этого уже необходим сервер? Может ли обычный комп с установленной на нем соответствующей ОС выполнять роль сервера для таких целей? Или уже и соответствующее железо необходимо чтобы справляться с такой задачей? »

Что именно понимается под бездисковой станцией?
Дело в том, что в большинстве случаев, ни какие pxe и tftp и прочее не нужны.
Более того, загрузка по сети так же не имеет смысла и в большинстве случаев является игрушкой администратора, то-есть избыточным механизмом для осуществления поставленной задачи.
Большое количество, так называемых "бездисковых" станций, по сути бездисковыми не являются, а содержат на борту достаточно большого объема флешь-память, где и размещается операционка, заточенная исключительно на запуск рдп или цитрикс клиента.

Сформулируйте задачу более точно, так как вполне возможно, кроме терминального сервера и непосредственно терминала(тонкого клиена\"бездисковой станции".

Например, я активно избавляюсь от обычных персональных компьютеров у пользователей. Заменяя их тонкими клиентами FSC Futro S300, при этом ни каких загрузок по сети не нужно, только терминальный сервер. Подобный подход выгодно отличается от использования действительно бездисковых систем, не только отсутствием необходимости наличия ряда дополнительных механизмов и необходимости создания образов, но и возможностью централизованного управления конфигурациями\обновления и управления железом\удаленного управления рабочим столом, не только терминальной сессии, но бездисковой станции и прочие вкусности.




© OSzone.net 2001-2012