Online video hd

Смотреть русский видео

Официальный сайт 24/7/365

Смотреть видео бесплатно

Username 02.08.2009 03:13

Linux Network AdministrationКак загрузить линукс по сети?

Припозднился, сон не идет, решил перевести тот самый пост. Вначале расскажу о чем это и для чего, сам перевод - под катом.



Часто мы грузим ОС с харда, реже - с компакт-диска, реже - с флешки. Но кто видел более-менее свежие настройки БИОСов, наверняка замечал пункт загрузки по сети.



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



Итак, перевод ниже.





Возможность вашей машины грузиться по сети целиком и полностью определяется PXE (Preboot Execution Enviroment). Для этого необходимо иметь BIOS, который позволяет просматривать сетевой трафик и обнаруживать в нем нужное без оглядки на жесткий диск или другие загрузочные устройства. В этом случае, клиент просматривает сеть в поисках сигнала от сервера, который определяет дальнейшую судьбу загрузку машины. Собственно их описания настройки такого сервера статья и создана.



1. Установка DNS-сервера



Установка dns-сервера в ubuntu



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



Найдите в своем менеджере пакетов эту программу и установите ее. В ubuntu - это пакеты dnsmasq и dnsmasq-base.



2. Конфигурирование DHCP-сервера

dnsmasq.conf



Конфигурационный файл dnsmasq банально называется dnsmasq.conf и находится в /etc (само собой, появляется только после установки пакета с программой). Чтобы его редактировать, необходимы права root. Далее достаточно открыть его emacs любимым текстовым редактором добавить в конец файла следующие записи:



dhcp-range=192.168.198.130, 192.168.198.140,12h #в исходном тексте как я понимаю ошибка в этом месте



dhcp-boot=pxelinux.0,192.168.198.128 #тоже, там пробел лишний по идее



dhcp-option=3,192.168.198.2



dhcp-option=6,192.168.198.2



Первая строчка характеризует диапазон адресов, которые будут обслуживаться DHCP-сервером. В примере - это сеть 192.168.198.0 с адресами в интервале от 130 до 140. Вторая строчка - адрес сервера сетевой загрузки, 'pxelinux.0' говорит о том, что клиент должен искать именно такую загрузочную запись. Последние две строки имеют отношение к шлюзу (192.168.198.128 в нашем случае). Если у вас возникают проблемы с определением правильных IP адресов, наберите в консоли:



ifconfig eth0 | grep inet



Это выведет список текущих адресов вашего сервера. Чтобы узнать адрес шлюза, выведите список маршрутов командой route. Строка с default - то, что вам нужно - IP адрес шлюза, который и надо вводить в последних двух строках.



После внесения изменений в конфиг, перезапустите dnsmasq командой:



sudo /etc/init.d/dnsmasq restart



или из-под рута /etc/init.d/dnsmasq restart.



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



atftpd.conf



После того, как клиент получит адрес и узнает, что необходимо цеплять pxelinux, следующий шаг - обеспечить ему это. Осуществляется такая задача при помощи TFTP (Trivial File Transfer Protocol) сервера, который по сути использует более примитивную версию протокола FTP. Примитивность здесь выгодна тем, что в этом случае PXE код помещается в скромные нужды BIOS. Распространненым TFTP-сервером является aTFTP, его и установим. После установки необходимо отредактировать файл конфигурации /etc/default/atftpd.conf.



Всего-навсего нужно изменить первую строку: 'USE_INETD=true' - поменять 'true' на 'false' и убедиться, что остальные параметры не противоречат настройкам сети/системы. По умолчанию, загрузочные файлы хранятся в /var/lib/tftpboot. На самом деле, не важно, где лежат сами файлы, важно, чтобы путь к ним был корректно прописан



Если вы работаете в сети с фаерволом, убедитесь, что порт 69 открыт. После проверки всей конфигурации сохраните ее и перезапустите atftp:



sudo /etc/init.d/atftpd restart



4. Создание загрузочных образов

PCP281_make5_step4.jpg



Итак, сетевое взаимодействие налажено, теперь необходимо подсунуть клиенту те самые образы загрузки. Существует множество способов создания и добавления этих файлов, да причем и в разных дистрибутивах. Например, можно запустить полностью функциональную LiveCD систему, но мы ограничимся образом для сетевой установки ubuntu. Теперь их не добавляют в стандартный диск по соображениям нехватки места, но их можно достать тут. После скачивания поместите эти файлы в /var/lib/tftpboot (если специально не изменили директорию при настройке).



Разархивируйте архив и посмотрите на содержимое. Здесь находится pxelinux.0, на который мы уже ссылались, и директория 'pxelinux.cfg' - там хранится файл, аналогичный GRUB'овскому menu.lst - а значит, и работать с ним можно аналогично. Поэтому все изменения, касаемые процесса загрузки можно вводить там.



5. Загрузка клиета

PCP281_make5_step5.jpg



Убедимся, что все демоны на измене работают. Воспользуемся утилитой netstat:



netstat -nulp выведет информацию об используемом протоколе UDP.



Если все работает - смело включайте клиент, выбирайте загрузку по LAN и наслаждайтесь положительными эмоциями, качественным сервисом процессом загрузки.



Что делать, если BIOS не поддерживает загрузку по сети?



Авторы статьи рекомендуют сделать фиктивный тонкий клиент - то есть осуществлять загрузку, например, с флешки, а работать исключительно по сети через смонтированные сетевые папки (как бы в chroot'е).



Как загрузиться по сети в LiveCD



Задача тривиальна. Необходим собственно образ диска, а точнее, его содержимое. Его-то и нужно копировать в NFS-шару и соответственно поменять файл конфигурации:



LABEL Hardy-Heron kernel hardy/vmlinuz append boot=casper



netboot=nfs



nfsroot=192.168.198.128:/path/to/nfs/share initrd=hardy/initrd.gz



В этом примере ядро и initrd лежат в /var/lib/tftpboot/hardy - заметьте, как записаны пути к ним в конфиге, а само содержимое диска лежит в 192.168.198.128:/path/to/nfs/share - то есть, куда положим.



На этом все :)



Тэги: dnsmasq network booting pxe загрузка по сети
+ 12 -
Похожие Поделиться

Kraplax 02.08.2009 03:42 #
+ 0 -
Спасибо, познавательно и по-русски (почти - пофиксил пару опечаток/грам.ошибок :P)
Мне как раз такой статьи нехватало когда флэшки не было под рукой, а систему надо было ставить на нетбук - тогда задумался что если грузить систему по сети пока не решу проблему? Но, сам не доковырял до ответа. В общем, спасибо за перевод =)
Username 02.08.2009 11:49 #
+ 0 -
три часа ночи было, вот и опечатки :(
predator 02.08.2009 09:23 #
+ 0 -
Это как в старые времена когда было множество терминалов и один мэйнфрейм?
Kraplax 02.08.2009 10:45 #
+ 1 -
Вы еще застали те времена? :D
Да я думаю и сейчас это вполне удобно.
Вот только этот способ подразумевает что вы работаете полностью на своей машине, ОС для которой загружается в оперативную память по сети, в то время как терминалы имели свою базовую ОС (или так же грузились по сети) и фактически, подключаясь к мэйнфрейму, работали на самом мэйнфрейме, почти нисколько не нагружая сам терминал.
predator 02.08.2009 10:58 #
+ 0 -
Вы еще застали те времена? :D
нет конечно =)
Интересно стало как реализовать старый способ...
Username 02.08.2009 11:51 #
+ 0 -
у нас на работе админ сделал на основе тонкий клиент на дреееевнем компе, правда, не совсем таким образом - мать была старая и сетевуха дерьмо, а установив LILO и в нем покопав. Результат - бух на убитой машине работала быстрее, чем я. Ибо серверный Intel Core 2 Duo пусть и по сети все равно быстрее, чем мой :(
lwilis 02.08.2009 12:03 #
+ 0 -
работа в консоли уже является реализацией этого способа, где роль мэйна выполняет сама ос, а клиентами являются виртуальные терминалы. при желании можно разнести сервер и клиентов на несколько машин, но сути это не меняет.
Самый простой способ разделить клиента и сервер - законнектиться по ssh на какую-нибудь машину и работать на ней под своим юзером.
Username 02.08.2009 12:05 #
+ 0 -
ну для того, чтобы коннектится по ssh необходима установленная ось на клиенте, и подключение по ssh таки элементарно медленнее и подвержено слабости клиента. Чего не будет на тонком терминале.
lwilis 02.08.2009 12:16 #
+ 0 -
я отвечал на вопрос о "реализации старого способа", заданный predator`ом.
Username 02.08.2009 12:18 #
+ 0 -
это не реализация старого способа. Это просто та же модель, по которой построен базовый интерфейс линукса как ОС.
lwilis 02.08.2009 12:25 #
+ 0 -
я об этом и сказал. Иначе говоря "старого способа" нет, так как он, по сути, действует и сейчас.
evgenyl 02.08.2009 12:19 #
+ 2 -
В дополнение рекомендую почитать мою статью о загрузке gentoo на eee pc по сети.

evgenyl 02.08.2009 12:23 #
+ 0 -
Я регулярно удаленно ставлю gentoo на сервера методика в целом таже.
fun 02.08.2009 12:36 #
+ 0 -
Жаль кнопки "в закладки" нет.
or10n 02.08.2009 15:41 #
+ 0 -
а какой канал необходим для полноценной (веб, доки и т.п.) работы удаленно?
реально ли слушать также музыку ?
meako 02.08.2009 16:20 #
+ 0 -
Вы немного путаете. В статье с сети ось только запускается, тоесть выполняется она на вашем компьютере, только вместо винчестера — удаленный сервер.
Веб, доки и все остальное (даже игрушки) можно спокойно использовать.

Когда же речь идет о терминальной схеме (vnc, rdp удаленный X.ORG) то на вашем компьютере только рисуется картинка, а все вычисления на удаленном. Обьем трафика при работе сильно возрастает. На веб с доками хватает вполне, с видео будет сложно.
or10n 02.08.2009 16:55 #
+ 0 -
мммм...
вот это уже интересно :)

П.С. сразу не понял, я думал это терминальный доступ. =)
Username 02.08.2009 16:34 #
+ 0 -
meako полностью прав, вся работа выполняется на сервере.
Craftuser 03.08.2009 19:00 #
+ 0 -
Парочка мелких поправок, дабы начинающих в ступор не вгонять:
После установки необходимо отредактировать файл конфигурации /etc/default/atftpd.conf
Файл обычно зовется просто - atftpd, это видно и на скрине.
sudo/etc/init.d/atftpd restart
После sudo конечно пробел, это для копипастеров, Kraplax видимо тоже не доглядел:)
Кроме того, стоило бы уточнить что нужно установить не просто aTFTP, а именно его серверную часть.
hidden 19.08.2009 07:25 #
+ 0 -
А что многоуважаемый all может посоветовать в случае если, в качестве источника загрузки, у меня Win-система? Всё обгуглил, не могу найти как скормить win-шару через PXE.
Username 31.08.2009 13:09 #
+ 0 -
поясни пожалуйста
hidden 01.09.2009 04:13 #
+ 0 -
Ну вот, если источником сетевой загрузки служит комп с Linux-ом, то как сказано в статье: "Необходим собственно образ диска, а точнее, его содержимое. Его-то и нужно копировать в NFS-шару". А если у меня машина с виндой, где я на ней NFS найду? Т.е. интересует, есть ли способ указать в конфиге PXE Win-шару?
Username 04.09.2009 10:54 #
+ 0 -
сразу подумал, что ничто не мешает грузить через кривожопую самбу, и да, это возможно, вот например пруф. Наверняка есть и другие, отличий от нфс-загрузки минимум, просто используется смб.

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн