NetInstall
Сетевая установка ALT Linux
Требуются:
- на новом компьютере - сетевой интерфейс с поддержкой PXE;
- сервер DHCP с поддержкой BOOTP;
- сервер TFTP;
- сервер FTP (желательно с анонимным доступом), HTTP или NFS.
Сетевая установка ALT Linux 7.0
Минимально необходимые ручные настройки для однократной установки.
Обычно в сети уже имеется сервер DHCP. Особенности реализации:
- вносятся изменения в уже имеющийся сервер DHCP (ISC или совместимый по формату конфигов) — в Альтлинуксе пакет dhcp-server;
- сервер TFTP выполняется в режиме программы, но не демона — используем пакет tftpd;
- в качестве источника установки используется один из имеющихся серверов (демонов): FTP, HTTP или NFS.
Подготовка загрузчика
Пусть корень сервера TFTP будет ~/Altlinux/PXEINSTALL.
# Создаём каталоги для сервера TFTP. mkdir -p ~/Altlinux/PXEINSTALL/pxelinux.cfg ~/Altlinux/PXEINSTALL/alt0 # Копируем загрузчик из пакета syslinux cp /usr/lib/syslinux/pxelinux.0 ~/Altlinux/PXEINSTALL # Создаём файл конфигурации загрузчика -- умолчание для всех компьютеров # Примечание. Размер виртуального диска в "append ... ramdisk_size=" определяется размером файла "altinst", # если места не хватит, pxelinux.0 будет бесконечно спрашивать источник загрузки. echo " default local timeout 120 prompt 1 display pxelinux.cfg/altlinux.msg label local localboot 0 #install source: FTP label ftp kernel alt0/vmlinuz append initrd=alt0/full.cz live fastboot showopts automatic=method:ftp,network:dhcp,server:192.0.2.2,directory:/pub/ALTLinux/ stagename=altinst ramdisk_size=45000 #install source: HTTP label http kernel alt0/vmlinuz append initrd=alt0/full.cz live fastboot automatic=method:http,network:dhcp,server:192.0.2.2,directory:/Altlinux stagename=altinst ramdisk_size=45000 #install source: NFS label nfs kernel alt0/vmlinuz append initrd=alt0/full.cz ai live fastboot automatic=method:nfs,network:dhcp,server:192.0.2.2,directory:/space/ftp/pub/Altlinux/ stagename=altinst " > ~/Altlinux/PXEINSTALL/pxelinux.cfg/default #Если известен адрес MAC сетевой карты, можно сделать копию или hardlink файла конфигурации для этого адреса MAC. #Нельзя делать simlink из-за того, что in.tftpd с опцией -s отказывается ресолвить симлинки. Пример: ln default ~/Altlinux/PXEINSTALL/pxelinux.cfg/01-00-18-f3-d0-62-06 # Создаём файл с подсказкой о выборе загрузки echo " Network install Altlinux 7.0.4 Type one of: ftp - install from ftp archive http - install from http site nfs - install from nfs directory local - boot from 1st HDD " > ~/Altlinux/PXEINSTALL/pxelinux.cfg/altlinux.msg
Подготовка сервера DHCP (BOOTP)
В файл конфигурации сервера DHCP добавляем секцию для нашего нового компьютера:
host PXE { hardware ethernet 00:18:f3:d0:62:06; # MAC сетевого интерфейса fixed-address 192.0.2.7; # такой IP будет ему назначен (не обязателено) next-server 192.0.2.6; # Адрес IP сервера TFTP filename "pxelinux.0"; # имя файла загрузчика PXELINUX }
(Эта секция добавлена рядом с секцией "subnet 192.0.2.0 netmask 255.255.255.0 { … }", на том же уровне иерархии.)
Запуск сервера TFTP
Запустим программу сервера TFTP в foreground chroot в подготовленный каталог:
sudo in.tftpd -L4s ~/Altlinux/PXEINSTALL
Проверить, всё ли в порядке, можно в файлах протоколов /var/log/daemons/warnings и /var/log/daemons/errors.
Если хочется увидеть, какие файлы запрашивает клиент (PXE), укажите высокий уровень протоколирования и наблюдайте лог /var/log/daemons/info. В одном окне консоли:
sudo in.tftpd -L4s --verbosity 10 ~/Altlinux/PXEINSTALL
В другом:
sudo tail -F /var/log/daemons/info
Публикация источника установки
Монтируем загрузочный CD или DVD и раздаём его содержимое по ftp, http или nfs Пример для FTP:
sudo mkdir /ftp/pub/Altlinux sudo mount -t iso9660 -o loop,ro /dev/sdd /ftp/pub/Altlinux
Загрузка компьютера
Включаем новый компьютер, вызываем его BIOS SETUP, разрешаем "LAN adapter BOOT ROM", "PXE boot" или аналогичный пункт настройки, загружаем.
В процессе загрузки видна заставка PXELINUX, затем начинается загрузка. Если FTP или HTTP требует аутентификацию, PXELINUX предложит указать источник загрузки - в текстовой форме ввода можно задать адрес сервера, путь к содержимому установочного диска, логин и пароль.
Сетевая инсталляция ALT Linux {Server,Desktop} 4.0 или запуск ALT Linux Rescue
Требуется: сетевая карта с поддержкой PXE[1].
# apt-get install dhcp-server syslinux tftp-server vsftpd anonftp # chkconfig xinetd on # chkconfig vsftpd on # sed -i 's,only_from = 127.0.0.1,only_from = 192.168.0.0/24,' /etc/xinetd.conf
/etc/dhcp/dhcpd.conf[2]:
# See dhcpd.conf(5) for further configuration ddns-update-style none; allow booting; allow bootp; option subnet-mask 255.255.255.0; option domain-name "mydomain.ru"; option domain-name-servers 192.168.0.1; option routers 192.168.0.1; option space pxelinux; option pxelinux.magic code 208 = string; option pxelinux.configfile code 209 = text; option pxelinux.pathprefix code 210 = text; option pxelinux.reboottime code 211 = unsigned integer 32; site-option-space "pxelinux"; option pxelinux.magic f1:00:74:7e; if exists dhcp-parameter-request-list { # Always send the PXELINUX options (specified in hexadecimal) option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3); } if substring (option vendor-class-identifier, 0, 9) = "PXEClient" { filename "pxelinux.0"; } else if substring (option vendor-class-identifier, 0, 9) = "Etherboot" { filename "vmlinuz"; # option vendor-encapsulated-options } ################ subnet ################################################## subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.32 192.168.0.63; } group { next-server 192.168.0.1; option pxelinux.configfile "default"; option pxelinux.pathprefix "/pxelinux.cfg/"; #option pxelinux.reboottime 30; host work { hardware ethernet 00:19:00:00:00:00; #filename "pxelinux.0"; } host vmware { hardware ethernet 00:0c:29:00:00:00; #filename "pxelinux.0"; } }
# cd /var/lib/tftpboot # cp /usr/lib/syslinux/pxelinux.0 . # cp -a /media/cdrom/syslinux altlinux # mv altlinux/alt0/full.cz altlinux/alt0/desktop.cz # mkdir pxelinux.cfg # touch pxelinux.cfg/altlinux.cfg # ln -s altlinux.cfg pxelinux.cfg/default
Содержимое /var/lib/tftpboot
/var/lib/tftpboot/pxelinux.cfg /var/lib/tftpboot/pxelinux.cfg/default -> altlinux.cfg /var/lib/tftpboot/pxelinux.cfg/altlinux.msg /var/lib/tftpboot/pxelinux.cfg/altlinux.cfg /var/lib/tftpboot/pxelinux.cfg/suse.cfg /var/lib/tftpboot/pxelinux.cfg/suse.msg /var/lib/tftpboot/altlinux /var/lib/tftpboot/altlinux/en.hlp /var/lib/tftpboot/altlinux/back.jpg /var/lib/tftpboot/altlinux/panim_a.jpg /var/lib/tftpboot/altlinux/lang /var/lib/tftpboot/altlinux/memtest /var/lib/tftpboot/altlinux/bootlogo /var/lib/tftpboot/altlinux/text4c.pcx /var/lib/tftpboot/altlinux/text3.pcx /var/lib/tftpboot/altlinux/text1.pcx /var/lib/tftpboot/altlinux/init /var/lib/tftpboot/altlinux/pback.jpg /var/lib/tftpboot/altlinux/ru.tr /var/lib/tftpboot/altlinux/welcome.jpg /var/lib/tftpboot/altlinux/text4b.pcx /var/lib/tftpboot/altlinux/uk.hlp /var/lib/tftpboot/altlinux/boot.cat /var/lib/tftpboot/altlinux/languages /var/lib/tftpboot/altlinux/timer_a.jpg /var/lib/tftpboot/altlinux/panim.jpg /var/lib/tftpboot/altlinux/uk.tr /var/lib/tftpboot/altlinux/ru.hlp /var/lib/tftpboot/altlinux/isolinux.cfg /var/lib/tftpboot/altlinux/isolinux.bin /var/lib/tftpboot/altlinux/en.tr /var/lib/tftpboot/altlinux/text4a.pcx /var/lib/tftpboot/altlinux/16x16.fnt /var/lib/tftpboot/altlinux/text2b.pcx /var/lib/tftpboot/altlinux/phead.jpg /var/lib/tftpboot/altlinux/pabout.txt /var/lib/tftpboot/altlinux/gfxboot.cfg /var/lib/tftpboot/altlinux/text2a.pcx /var/lib/tftpboot/altlinux/text2c.pcx /var/lib/tftpboot/altlinux/kroete.dat /var/lib/tftpboot/altlinux/alt0 /var/lib/tftpboot/altlinux/alt0/initrd-4.0.2-rescue /var/lib/tftpboot/altlinux/alt0/vmlinuz-4.0.2-rescue /var/lib/tftpboot/altlinux/alt0/desktop.cz /var/lib/tftpboot/altlinux/alt0/altlinux /var/lib/tftpboot/altlinux/alt0/server.cz /var/lib/tftpboot/altlinux/alt0/vmlinuz /var/lib/tftpboot/altlinux/alt0/altlinux.img /var/lib/tftpboot/pxelinux.0
/var/lib/tftpboot/pxelinux.cfg/altlinux.cfg
default harddisk implicit 0 display altlinux.msg prompt 1 #timeout 100 label desktop kernel ../altlinux/alt0/vmlinuz append initrd=../altlinux/alt0/desktop.cz lang=ru_RU stagename=altinst showopts ramdisk_size=65536 automatic=method:ftp,network:dhcp,server:192.168.0.1,directory:/pub/ALTLinux/Desktop/4.0b # xdriver=amd # net=8139too label server kernel ../altlinux/alt0/vmlinuz append initrd=../altlinux/alt0/server.cz lang=ru_RU stagename=altinst showopts ramdisk_size=65536 automatic=method:ftp,network:dhcp,server:192.168.0.1,directory:/pub/ALTLinux/Server/4.0.1/install label server-noapic kernel ../altlinux/alt0/vmlinuz append initrd=../altlinux/alt0/server.cz nolapic noapic acpi=off stagename=altinst ramdisk_size=65536 automatic=method:ftp,network:dhcp,server:192.168.0.1,directory:/pub/ALTLinux/Server/4.0.1/install # xdriver=amd label rescue kernel ../altlinux/alt0/vmlinuz-4.0.2-rescue append initrd=../altlinux/alt0/initrd-4.0.2-rescue net=8139too ramdisk_size=65536 live fastboot stagename=rescue showopts automatic=method:ftp,network:dhcp,server:192.168.0.1,directory:/pub/ALTLinux/Desktop/4.0.2 label memtest kernel ../altlinux/memtest label harddisk localboot 0x80
Для установки v12n-server пришлось увеличить ramdisk_size минимум до 76800, иначе образ не входил в память. automatic=… можно убрать и ввести все данные в процессе инсталляции. method=ftp можно заменить на http, nfs directory:/pub/ALTLinux/Server/4.0.1/install надо подмонтировть на серваке (наприм: mount -o loop altlinux-server.iso /var/ftp/pub/ALTLinux/Server/4.0.1/install) Можно добавить к append initrd опции с необходимыми параметрами. # xdriver=amd # net=8139too
/var/lib/tftpboot/pxelinux.cfg/altlinux.msg
Welcome to ALTLinux 4.0 network installation To start the installation enter 'server' and press <return>. Available boot options: desktop - Installation Desktop server - Installation Server noacpi - Installation Server - ACPI Disabled # failsafe - Installation - Safe Settings live - Run Live System rescue - Rescue System memtest - Memory Test harddisk - Boot from Harddisk work - Boot test image
На сетевухе включаем загрузку по PXE и правим mac address в dhcp.conf
# service dhcpd reload # mkdir /var/ftp/cd-desktop # mount --bind /media/cdrom /var/ftp/cd-desktop
Так же можно запускать бездисковые станции, но надо подготовить образ операционки.