Her opretter vi en selvstændig PXE server, så vi kan boote computere direkte fra netværket ved hjælp af systemrescueCD https://www.system-rescue.org/.
Udgangspunktet er en Ubuntuserver 20.04. Du kan installere den ud fra guiden her: https://www.vidas.dk/guides/Ubuntuserver_20.04_installation.html
Her blive der oprettet en PXE server, som du kan bruge til at boote systemrescueCD .
Serveren bliver flyttet til et nyt NAT-netværk (fra 192.167.87.0/24 → 10.0.2.0/24) i et virtualbox miljø. Det er for at undgå at der kører 2 DHCP klienter på netværket samtidig.
Installer nødvendige pakker.
sudo apt update -y
sudo apt install apache2 dnsmasq -y
sudo mkdir -p /tftp/sysresccd/boot/x86_64
sudo mkdir -p /tftp/pxelinux.cfg
sudo mkdir /var/www/html/sysresccd
Med denne kommando har du oprettet hele filtræet
tj@server1:~$ tree /tftp/ /tftp/ ├── pxelinux.cfg └── sysresccd └── boot └── x86_64 4 directories, 0 fileswget -O sysresccd.iso https://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/8.05/systemrescue-8.05-amd64.iso/download
Monter filen
sudo mount sysresccd.iso /media
sudo cp /media/sysresccd/boot/* /tftp/sysresccd/boot/
sudo cp /media/sysresccd/boot/x86_64/* /tftp/sysresccd/boot/x86_64/
sudo cp /media/sysresccd/* /tftp/sysresccd/
sudo cp -r /media/sysresccd/x86_64/ /var/www/html/sysresccd/
wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.xz
Kør følgende kommandoer for at udpakke to vigtige filer ud - ldlinux.c32 og pxelinux.0:
tar -xvf syslinux-6.03.tar.xz syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32 --strip-components 5
sudo tar -xvf syslinux-6.03.tar.xz syslinux-6.03/bios/core/pxelinux.0 --strip-components 3
Flyt filerne
sudo mv {ldlinux.c32,pxelinux.0} /tftp/
Tjek at de ligger korrekt
tj@server1:~$ ls -al /tftp/ total 184 drwxr-xr-x 4 root root 4096 Oct 26 06:24 . drwxr-xr-x 21 root root 4096 Oct 25 14:43 .. -rwxrwxr-x 1 tj tj 122308 Oct 6 2014 ldlinux.c32 -rw-rw-r-- 1 1026 1026 46909 Oct 6 2014 pxelinux.0 drwxr-xr-x 2 root root 4096 Oct 25 14:44 pxelinux.cfg drwxr-xr-x 3 root root 4096 Oct 25 14:59 syscrescdFind pakke: https://unix.stackexchange.com/questions/34008/find-a-file-within-a-tar-gz-archive
Udpak fil uden sti: https://stackoverflow.com/questions/14295771/how-do-i-extract-files-without-folder-structure-using-tar
Opret filen /tftp/pxelinux.cfg/default
sudo nano /tftp/pxelinux.cfg/default
Indsæt følgende
DEFAULT sysresccd LABEL sysresccd LINUX sysresccd/boot/x86_64/vmlinuz INITRD sysresccd/boot/intel_ucode.img,sysresccd/boot/amd_ucode.img,sysresccd/boot/x86_64/sysresccd.img APPEND archisobasedir=sysresccd ip=dhcp archiso_http_srv=http://10.0.2.10/ checksum SYSAPPEND 3Her vil vi konfigurere dnsmasq og lave en ny IP-adresse hvis det er nødvendigt.
Skal du bruge serveren på dit fysiske netværk, skal du huske at deaktivere DHCP på din router, da din server fremover klarer det.
Tjek først navnet på dit netværkskort
ls /sys/class/net
tj@server1:~$ ls /sys/class/net
enp0s3 Io
sudo nano /etc/dnsmasq.conf
#Interface information
#--use ip addr to see the name of the interface on your system
interface=enp0s3,lo
bind-interfaces
domain=server1
#--------------------------
#DHCP Settings
#--------------------------
#-- Set dhcp scope
dhcp-range=10.0.2.50,10.0.2.200,255.255.255.0,2h
#-- Set gateway option
dhcp-option=3,10.0.2.1
#-- Set DNS server option
dhcp-option=6,10.0.2.10
#-- dns Forwarder info
server=8.8.8.8
#----------------------#
# Specify TFTP Options #
#----------------------#
#--location of the pxeboot file
dhcp-boot=pxelinux.0,pxeserver,10.0.2.10
#--enable tftp service
enable-tftp
#-- Root folder for tptp
tftp-root=/tftp
Genstart dnsmasq
Du ændrer serverens IP-adresse ved at konfigurere følgende fil:
sudo nano /etc/netplan/00-installer-config.yaml
Herunder er serveren sat til IP-adressen: 10.0.2.10/24.
# This is the network config written by 'subiquity' network: ethernets: enp0s3: addresses: - 10.0.2.10/24 gateway4: 10.0.2.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 version: 2Gem filen og genstart netplan.
sudo netplan apply
sudo systemctl restart dnsmasq
Tjek opsætning med
sudo systemctl status dnsmasq
tj@server1:~$ systemctl status dnsmasq.service
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-10-24 15:13:41 UTC; 4min 16s ago
Process: 2308 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
Process: 2309 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
Process: 2331 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
Main PID: 2330 (dnsmasq)
Tasks: 1 (limit: 4617)
Memory: 992.0K
CGroup: /system.slice/dnsmasq.service
└─2330 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dp>
Oct 24 15:13:41 server1 dnsmasq[2330]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conn>
Oct 24 15:13:41 server1 dnsmasq-dhcp[2330]: DHCP, IP range 10.0.2.50 -- 10.0.2.200, lease time 2h
Oct 24 15:13:41 server1 dnsmasq-dhcp[2330]: DHCP, sockets bound exclusively to interface enp0s3
Oct 24 15:13:41 server1 dnsmasq-tftp[2330]: TFTP root is /tftp
Oct 24 15:13:41 server1 dnsmasq[2330]: using nameserver 8.8.8.8#53
Oct 24 15:13:41 server1 dnsmasq[2330]: reading /etc/resolv.conf
Oct 24 15:13:41 server1 dnsmasq[2330]: using nameserver 8.8.8.8#53
Oct 24 15:13:41 server1 dnsmasq[2330]: using nameserver 127.0.0.53#53
Oct 24 15:13:41 server1 dnsmasq[2330]: read /etc/hosts - 7 addresses
Oct 24 15:13:41 server1 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
lines 1-22/22 (END)
Mere læsning: