Установка SuSE с PXE

(перенаправлено с «SuSE install with PXE boot»)
Перейти к: навигация, поиск

Представление

SUSE Linux находится в постоянном развитии, поэтому иногда может быть очень полезной инсталяция без предварительного записи CD или DVD носителей. Здесь описан способ инсталяции SUSE Linux с использованием только сетевых источников.

PXE предоставляет возможность загрузить компъютер без носителя информации (флопи диск, жесткий диск, CD, USB итд). BIOS использует PXE протокол для того чтобы загружаться прямо из сети. Для инсталяции необходим соответсвующим образом сконфигурированный сервер, PXE протокол поддерживается Windows 2000 Server и Linux. На клиентском компьютере необходима сетевая карта и BIOS с поддержкой PXE.

Подготовка

Для успешной сетевой инсталяции необходимы:

  • SuSE Linux Server с инсталированными сервисами dhcpd и tftpd
  • Соединение с инернет (желательно высокоскоростное)
  • Компьютер с поддержкой PXE протокола

Конфигурация dhcpd & TFTP серверов

dhcpd

PXE использует BOOTP сервер, посылаеющий всю необходимую информацию для запуска операционной системы. Эта работа может быть выполнена с помощью DHCPd сервера, который должен быть предварительно сконфигурирован. Стартуемый компьютер распознается DHCPd сервером по MAC Адресу сетевой карты, после чего ему присваивается IP адрес и передается PXE загрузочный файл (статическая конфигурация). Ниже приведена типичная конфигурация (конфигурационный файл находится в /etc/dhcpd.conf):

  host target_host {
     hardware ethernet xx:xx:xx:yy:yy:yy;
     fixed-address 192.168.1.10;
     server-name "192.168.1.1";
     next-server 192.168.1.1;
     filename "/tftpboot/pxelinux.0";
  }

Обратите внимание, что 2 строки добавлены специально для PXE загрузки. Неободимо указать адрес TFTP сервера (sever-name), с которого будет скачан PXE загрузочный файл (filename). После изменения конфигурационного файла, необходимо перезапустить DHCPd:

 # rcdhcpd restart

Внимание: В зависимости от типа tftp сервера и от того, как он был запущен (chroot), параметер "filename" может указываться без пути к файлу. Для стандартного сервера tftpd из дистрибутива openSUSE, "filename" параметер имеет следующий вид:

filename "pxelinux.0";


В ISC DHCP сервере третьей версии (использующийся в openSUSE) имеется возможность сконфигурировать DHCP сервер так, чтобы он отвечал только на PXE загрузочные запросы. Таким образом в сети может применятся другой DHCP сервер для управления адресами. Эта возможность может пригодиться, если основной DHCP сервер не может использоваться для выполнения загрузочных запросов (например, если в качестве DHCP сервера используется DSL роутер). PXE клиент будет игнорировать DHCP серверы, которые не поддерживают загрузочные запросы или не содержат загрузочные файлы. Ниже приведен кофигурационный файл для этого сценария.

  default-lease-time 600;
  max-lease-time 7200;
  ddns-update-style none; ddns-updates off;
  allow booting;
  
  option domain-name "my.domain";
  option domain-name-servers my.dnsserver;
  option routers my.router;
  
  # Правила идентификации DHCP запросов от PXE и Etherboot клиентов.
  class "pxe" {
      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
  }
  class "etherboot" {
      match if substring (option vendor-class-identifier, 0, 9) = "Etherboot";
  }
  
  subnet 192.168.1.0 netmask 255.255.255.0 {
      option broadcast-address 192.168.1.255;
      pool {
           default-lease-time 180; # no long lease time required for booting
           max-lease-time 360;     # booted system does its own dhcp request
           server-name "mybootserver";
           next-server mybootserver.; # in case your local DNS only handles
                                      # unqualified domains keep trailing '.'
           filename "pxelinux.0";
           allow members of "pxe";
           allow members of "etherboot"; # allow etherboot, too
           range 192.168.1.201 192.168.1.211;
           }
  }

atftpd конфигурация

Рекомендуется использовать atftp пакет, потому что atftp это единственный TFTP сервер, полноценно реализующий RFC. После установки необходимо проверить /etc/sysconfig/atftp. Вот типичная конфирурация сервера:

 ATFTPD_OPTIONS="--daemon --user tftp -v"
 ATFTPD_USE_INETD="no"
 ATFTPD_DIRECTORY="/srv/tftp"

Обратите внимание, что в этом примере root директория установлена в /srv/tftp. Чтобы запустить TFTP сервер выполните:

 # rcatftpd restart

Внимание: Стандартный tftp сервер из дистрибутива RedHat Enterprise Linux подходит для PXE и не требует дополнительной конфигурации. Для того, чтобы запустить сервер выполните:

  chkconfig tftp on

tftpd-hpa конфигурация

tftpd-hpa это TFTP сервер разработанный H. Peter Anvin, содержащийся в "tftpd" пакете. В стандартной установке для старта сервера используется xinetd. Сервер запускается из xinetd с помощью chroot в каталоге /tftpboot (установленном в файле /etc/xinetd.d/tftp). Опции для запуска сервера под непривилегированным пользователем могут быть изменены в xinetd конфигурации /etc/xinetd.d/tftp.

Конфигурация PXE загрузки

Предварительно

Для создания PXE загрузки неободимо сначала установить пакет syslinux. Этот пакет содержит необходимый для PXE файл:

 /usr/share/syslinux/pxelinux.0

Если вы не можете инсталировать syslinux, вы можете скачать этот маленький файл здесь.

Файловая структура

Сейчас у вас имеется все необходимой для конфигурации PXE загрузки. Перейдите в root каталог вашего TFTP сервера и создайте с помощью нижеприведенного скрипта структуру каталогов и файлов:

 # cd /srv/tftp
 # mkdir tftpboot
 # cd tftpboot
 # mkdir pxelinux.cfg

Скопируйте PXE загрузочный файл pxelinux.0 в tftpboot каталог

 # cp /usr/share/syslinux/pxelinux.0 /srv/tftp/tftpboot

Создайте конфигурационный файл для PXE. Он похож по структуре на конфигурационный файл syslinux.cfg

 # vi /srv/tftp/tftpboot/pxelinux.cfg/default

Вот пример конфигурационного файла, измените его под ваши нужды.

 default linux
 prompt   1
 timeout  30
 
 # Install Linux
 label linux
   kernel linux
   append initrd=initrd splash=silent showopts
 

Внимание: Если вы используете сервер RedHat, ваш конфигурационный файл должен содержать дополнительные опции в строке, начинающейся с append:

  append root=/dev/ram0 load_ramdisk=1 initrd=initrd splash=silent showopts ramdisk_size=4096 init=linuxrc

В конфигурации определены два важных файла: linux и initrd. Эти файлы могут быть скачаны из репозитория для сетевой инсталяции SuSE Linux.

  • для i386:
 # cd /srv/tftp/tftpboot
 # wget http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/boot/i386/loader/initrd
 # wget http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/boot/i386/loader/linux
  • для x86_64:
 # cd /srv/tftp/tftpboot
 # wget http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/boot/x86_64/loader/initrd
 # wget http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/boot/x86_64/loader/linux

Внимание: Если вы используете RedHat сервер, структура директорий tftp сервера должны выглядеть следующим образом:

   /tftpboot 
   /tftpboot/pxelinux.0 
   /tftpboot/initrd.img 
   /tftpboot/vmlinuz 
   /tftpboot/pxelinux.cfg 
   /tftpboot/pxelinux.cfg/default

Загрузка с PXE

Убедитесь, что ваш клиентский компьютер корректно сконфигурирован для загрузки из сети, и PXE протокол включен. Если все в порядке, то после перезапуска компьютер загрузится с использованием PXE.

Ссылки

--