WDS + Linux = Ultimate Deployment

Sveicināts! Šis ir pēdējais raksts sērijā par WDS serveri. Šoreiz parādīšu, kā var paplašināt WDS funkcionalitāti ar Linux. Var instalēt Linux, palaist memtest utt. Iespējas ir samērā neierobežotas. Protams, nekas pārāk vienkāršs jau tas nav, bet rezultāts attaisno pūles un ieguldīto darbu.

Kas ir nepieciešams:

Vienkāršības labad esmu izveidojis mazu arhīvu, ar nepieciešamajiem failiem. Arhīvs vienkārši jāatarhivē RemoteInstall mapē.

Tiem, kur vēlas arī saprast, ko satur arhīvs , turpinājumā neliels paskaidrojums. Ja izmanto ZIP arhīvu, jālasa no vietas, kur runāts par ISO kopēšanu un NFS serveri.

Vispirms 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ņā.

Atarhivējam arhīvus attiecīgajās mapēs syslinux-6.03 un syslinux-5.10. Tad no attiecīgajām mapēm kopējam nepieciešamos failus.

syslinux-6.03/bios/core/pxelinux.0 uz C:\RemoteInstall\Boot\x64\
sudo cp syslinux-6.03/bios/com32/menu/vesamenu.c32 C:\RemoteInstall\Boot\x64\
syslinux-6.03/bios/com32/chain/chain.c32 uz C:\RemoteInstall\Boot\x64\
syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32 uz C:\RemoteInstall\Boot\x64\
syslinux-6.03/bios/com32/lib/libcom32.c32 uz C:\RemoteInstall\Boot\x64\
syslinux-6.03/bios/com32/libutil/libutil.c32 uz C:\RemoteInstall\Boot\x64\
syslinux-5.10/memdisk/memdisk uz C:\RemoteInstall\Boot\x64\

Tad pārsaucam failu pxelinux.0 uz pxelinux.com (to kas RemoteInstall\Boot\x64). Vēl pārsauksim Tad izveidojiet mapē C:\RemoteInstall\Boot\X64

kopējiet pxeboot.n12, pārsauciet par pxeboot.0
kopējiet abortpxe.com, un pārsauciet abortpxe.0

Talāk C:\RemoteInstall\Boot\x64 izveidojam mapi pxelinux.cfg un šajā mapē izveidojam failu ar nosaukumu default. Šim failam nevajag nekādu paplašinājumu. Faila saturs pieejams zemāk:

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 WDS
MENU LABEL Windows Deployment Services
KERNEL pxeboot.0
#---
LABEL Abort
MENU LABEL AbortPXE
Kernel	abortpxe.0
#---
LABEL local 
MENU DEFAULT
MENU LABEL Boot from Harddisk
LOCALBOOT 0
Type 0x80

#---
LABEL Linux  
MENU LABEL Deploy Ubuntu 16.04 x64
Kernel Linux/ubuntu/ubuntu1604/casper/vmlinuz
append initrd=Linux/ubuntu/ubuntu1604/casper/initrd ramdisk_size=65536 root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.5.253:/LinuxDistributions/ubuntu/ubuntu1604 console=ttyS3 vga=791
#---
LABEL Linux 
MENU LABEL Deploy Ubuntu 18.04 x64
Kernel Linux/ubuntu/ubuntu1804/casper/vmlinuz
append initrd=Linux/ubuntu/ubuntu1804/casper/initrd ramdisk_size=165536 root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.5.253:/LinuxDistributions/ubuntu/ubuntu1804 vga=791
#---
LABEL Linux 
MENU LABEL Deploy Ubuntu netinstx64
	KERNEL memdisk
	INITRD /Linux/ubuntu/netinst/mini.iso
	APPEND iso
#LABEL Linux  
#MENU LABEL Deploy Centos 7 Linux x64
#Kernel Linux/centos/centos-7-x64/vmlinuz
#append initrd=/Linux/centos/centos-7-x64/initrd.img ramdisk_size=100000 method=nfs:{SERVER_IP}:/Linux-Distributions/centos/centos-7-x64
#
# Note
# ISO required in the NFS share for software selection during CENTOS install/
#
#---
#Label Debian
#menu label Debian Linux - Live
#kernel linux/debian/vmlinuz
#append vga=769 initrd=/linux/debian/live/initrd.img ramdisk_size=65536 root=/dev/nfs boot=live netboot=nfs nfsroot={SERVER_IP}:/Linux-Distributions/Debian
#---
#LABEL =DISK TOOLS=
#MENU LABEL =DISK TOOLS=
#kernel vesamenu.c32
#append pxelinux.cfg/tools.menu

Šis fails atbild par to, kā izskatīsies palaišanas izvēlne. Pieminēšu to, ka šaj failā nav parādīts, kā dabūt Memtest ISO pie dzīvības. Tas ir darīts ar nolūku, lai lasot šo pamācību, Jums rodas neliela saprašana. Un, lai Jūs paši nedaudz padomājat un pievienojat šo izvēlni. Manuprāt, tas veicinās smadzeņu darbību un izpratni par šo lietu.

Nākamais solis. Ir nepieciešams aktivizēt NFS servera lomu. Tas nepieciešams, jo TFTP ir ļoti lēns protokols un lejupielādēt vairāk par 100 MB nav prāta darbs. Priekš Memtest un Ubuntu net install cd tas der. Bet ne vairāk. Bet vispirms iekopēsim mazos ISO iekš boot\x64 mapes. Lai būtu kaut kāda kārtība, izveidosim mapi Linux un tajā apakšmapes.

Linux\ubuntu\netinst\
Linux\memtest\

Attiecīgajā mapē iekopējam Memtest un Ubuntu 18.04 netinst ISO failus.

Nākamais solis, aktivizēsim NFS lomu. Zemāk video:

Video redzsms, ka tika aktivizēta NFS loma un izveidota mape C diskā r nosaukumu LinuxDistributions. Zemāk attēli ar nepieciešamajām NFS atļaujām šai mapei.

Un Nospiežot pogu Permissions jāizskatās šādi

Vēl Video bija redzams, ka tika izveidota LinuxDistributions apakšmape ubuntu1604 . Šajā mapē vajag iekopēt visus failus no Ubuntu 16.04 instalācijas ISO. Vēl no šī paša ISO nepieciešams iekopēt failus iekš C:\RemoteInstall\Boot\x64\Linux\ubuntu1604\casper\ Zemāk uzskaitīti kopējamie faili:

casper/vmlinuz uz C:\RemoteInstall\Boot\x64\Linux\ubuntu\ubuntu1604\casper\
casper/initrd uz C:\RemoteInstall\Boot\x64\Linux\ubuntu\ubuntu1604\casper\

Vēl pēdējais solis, lai tas viss darbotos nepieciesams mainīt WDS konfigurāciju, lai tas izmanto syslinux. Zemāk komandas, kuras jāizpilda CMD ar administratora tiesībām.

wdsutil /set-server /bootprogram:boot\x64\pxelinux.com​​ /Architecture:x64

wdsutil /set-server​​ /N12bootprogram:boot\x64\pxelinux.com /Architecture:x64

Pēc tam nepieciešams pārstartēt serveri.

Visam vajadzētu būt darba kārtībā. Kā ievērotjāt šis viss ir aprakstīts x64 bitu arhitektūrai. Ja vajag arī 32bit, jeb x86, tad visu šō pašu atkārtot mapē C:\RemoteInstall\Boot\x86 un zipildīt papildus šīs komandas CMD ar administratora tiesībām:

wdsutil /set-server /bootprogram:boot\x86\pxelinux.com​​ /Architecture:x86

wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.com​​ /Architecture:x86