Linux PXE + NFS 1. daļa

Sveiks. Blogā jau rakstīju par to, kā ar Windows servera palīdzību var samērā vienkārši instalēt operētājsistēmu izmantojot lokālo datortīklu. Tā kā sirdī esmu Linux un atvērtā koda piekritējs, būtu tikai godīgi šo pašu lietu apskatīt uz atvērtā koda un Linux bāzes. Pirmkārt, ne visi var atļauties Windows Server licenci, otrkārt, Linux ir daudz pieejamāks un resurstaupīgāks risinājums.

Kā vienmēr, visu darīšu Virtualbox vidē. Lai viss darbotos bez problēmām, nepieciešama virtualbox 6.0.4 versija. Būs nepieciešams virtuāls/fizisks Mikrotik maršrutētājs. Diemžēl “Gamer edišan” maršrutētājs un “TPlinki” šo funkcionalitāti nenodrošina. Protams, var vienmēr pāršūt uz kādu Linux bāzētu OS (tēma kādam no rakstiem?). Un viens servera dators un viens klienta dators. Servera datora virtuālajam HDD ieteicams būt vismaz 20 GB.

Tātad sāksim. Vispirms ir jānokonfigurē Mikrotik maršrutētājs. DHCP serverī ir jānorāda mūsu PXE servera IP adrese, ir jānorāda iestatījumi, boot file atrašanās.

Mikrotik iestatījumi pie IP>DHCP Server> Networks:

next server: 192.168.5.250
bootfile : pxelinux.0

Next server jānorāda sava Debian servera IP. Manā gadījumā tā būs 192.168.5.250 .Tikai atcerieties, turpmākajos soļos Debian serverim būs jāiestata statiska (nemainīga) IP adrese, un tad adresei ir jābūt tai pašai, kas ir norādīta Mikrotik next server sadaļā.

Iestatījumi pie options:

Option Name: boot-file
Option Code: 67
Option Value: "pxelinux.0" 

Instalējam Debian minimālo instalāciju. ISO šeit.

Iestatam statisku IP

nano /etc/network/interfaces

Atvērtajā failā meklējam rindu #The primary network interface Mums būs jālabo šī interfeisa IP iestatījumi. Manā gadījumā interfeisa nosaukums ir enp0s3. Vispirms šim interfeisam iestatījumi izskatās šādi:

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp

Tos izlaboju, lai ir šādi

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
        address 192.168.5.250
        netmask 255.255.255.0
        gateway 192.168.5.254
        dns 8.8.8.8

Saglabājam failu un restartējam serveri.

sudo reboot

Pēc restarta pārbaudām, vai ir pareiza IP adrese serverim.

ip a

Ja viss ir kārtībā, tad instalējam TFTP servisu. Komandas:

sudo apt update
sudo apt upgrade
sudo apt install tftpd-hpa

Mainam TFTP konfigu

sudo nano /etc/default/tftpd-hpa

Šajā konfiguracijā atrodam vietu 0.0.0.0:69 un izalbojam uz sava Debian servera IP. Piemēram 192.168.5.250:69

Lejupielādējam syslinux arhīvus. Būs nepieciešama 6.03 un 5.1 versija. 5.1 versija nepieciešama, lai būtu iespējams ielādēt ISO failus datora RAM atmiņā. Lejupielādējam Debian serverī, izmantojot zemāk esošās komandas:

cd /tmp
wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip
wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.10.zip

Atarhivējam zip arhīvus

sudo apt install zip unzip
unzip syslinux-6.03.zip -d syslinux-6.03/
unzip syslinux-5.10.zip -d syslinux-5.10/

No atarhivētajām datnēm nepieciešams kopēt pāris failus uz /srv/tftp / mapi. Faili nepieciešami, lai varētu izveidot palaišanas izvēlni (boot menu) ar syslinux palīdzību un startēt Linux bāzētās instalācijas un citus ISO failus. Zemāk komandas:

sudo cp syslinux-6.03/bios/core/pxelinux.0 /srv/tftp/
sudo cp syslinux-6.03/bios/com32/menu/vesamenu.c32 /srv/tftp/
sudo cp syslinux-6.03/bios/com32/chain/chain.c32 /srv/tftp/
sudo cp syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32 /srv/tftp/
sudo cp syslinux-6.03/bios/com32/lib/libcom32.c32 /srv/tftp/
sudo cp syslinux-6.03/bios/com32/libutil/libutil.c32 /srv/tftp/
sudo cp syslinux-5.10/memdisk/memdisk /srv/tftp/

Jāizveido mūsu BOOT izvēlne. Tam nepieciešams izveidot tftp mapē pxelinux.cfg mapi.

cd /srv/tftp/
sudo mkdir pxelinux.cfg

Nākamais solis. pxelinux.cfg mapē ir jāizveido konfigurācijas fails ar nosaukumu default

sudo nano /srv/tftp/pxelinux.cfg/default

Faila saturam jābūt šādam:

DEFAULT      vesamenu.c32
PROMPT       0
NOESCAPE     0
ALLOWOPTIONS 0

# Timeout in units of 1/10 s
TIMEOUT 600
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44		#fff400 #00000000 none
MENU COLOR SCROLLBAR 30;44	#4cf409 #00000000 none
MENU COLOR TITLE 0 	        #07ccf6 #00000000 none
MENU COLOR SEL   30;47          #4cf409 #00000000 none
MENU BACKGROUND linux/splash.png
MENU TITLE PXE Boot Menu
#---
LABEL local 
MENU DEFAULT
MENU LABEL Boot from Harddisk
LOCALBOOT 0
Type 0x80

#---
LABEL Linux 
MENU LABEL Deploy Ubuntu netinstx64
	KERNEL memdisk
	INITRD /Linux/ubuntu/netinst/mini.iso
	APPEND iso
#---
LABEL Linux 
MENU LABEL Memtest x86
	KERNEL memdisk
	INITRD /Linux/memtest/memtest.iso
	APPEND iso

Tagad nepieciešams /srv/tftp mapē izveidot attiecīgās apakšmapes, kuras pieminētas konfigurācijas faila default, lai viss darbotos.

sudo mkdir -p /srv/tftp/Linux/ubuntu/netinst
sudo mkdir -p /srv/tftp/Linux/memtest

Komandā mkdir -p nozīmē, ka tiks izveidotas visas nepieciešamās mapes, lai ceļš līdz mapei būtu patiess.

Tagad lejupielādēsim attiecīgos ISO failus. Sāksim ar Ubuntu instalāciju. Ar zemāk parādītajām komandām mēs nomainīsim darba direktoriju uz /srv/tftp/Lnux/ubuntu un tad ar wget komandu lejupielādēsim ubuntu mini.iso.

cd /srv/tftp/Linux/ubuntu/netinst/
sudo wget http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso

Līdzīga procedūra notiks ar memtest ISO. Šeit process tieši tāds pats. Vienīgi memtest ISO fails tiek lejupielādēts ZIP arhīvā un tas ir jāatarhivē.

cd /srv/tftp/Linux/memtest/
sudo wget https://www.memtest.org/download/5.01/memtest86+-5.01.iso.zip
sudo unzip memtest86+-5.01.iso.zip
sudo rm *.zip
sudo mv memtest86+-5.01.iso memtest.iso

Kad visi faili ir iegūti, ir jāpārstartē tftp serviss.

sudo systemctl restart tftpd-hpa

Apsveicu! Ir veiksmīgi konfigurēts Debian serveris, ar kura palīdzību tīklā var pārbaudīt datora operatīvo atmiņu un instalēt Ubuntu. Protams, iespējas ir daudz plašākas. Bet par tām uzrakstīšu nākošajos rakstos.

Turpinājums sekos…

P.S.- es ļoti naivi ceru, ka visam šim rakstam kādreiz taps arī video, kuru šeit pievienošu.