NetInstall: различия между версиями

Материал из ALT Linux Wiki
(→‎Публикация источника установки: mount -o loop точно не нужен для реального устройства (/dev/sdd))
Строка 100: Строка 100:
Пример для FTP:
Пример для FTP:
  sudo mkdir /ftp/pub/Altlinux
  sudo mkdir /ftp/pub/Altlinux
  sudo mount -t iso9660 -o loop,ro /dev/sdd /ftp/pub/Altlinux
sudo mount -t iso9660 -o ro /dev/sdd /ftp/pub/Altlinux
 
или
 
  sudo mount -t iso9660 -o loop,ro ~/Downloads/alt-N-installdvd.iso /ftp/pub/Altlinux


==== Загрузка компьютера ====
==== Загрузка компьютера ====

Версия от 17:42, 28 мая 2020

Сетевая установка 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 ro /dev/sdd /ftp/pub/Altlinux

или

sudo mount -t iso9660 -o loop,ro ~/Downloads/alt-N-installdvd.iso /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

Так же можно запускать бездисковые станции, но надо подготовить образ операционки.

Примечания

  1. Как вариант, дискетка или ещё что-нибудь с Etherboot.
  2. Уточните под свою сеть! Не пересекитесь с уже работающим DHCP-сервером!

Ссылки