V tomto článku probereme, jak nastavit tftpboot, včetně instalace potřebných balíčků a konfigurací tftpboot.
Spouštěcí služba TFTP se primárně používá k instalaci OS na vzdáleném počítači, ke kterému nemáte fyzický přístup. Aby byla instalace operačního systému úspěšná, měl by existovat způsob, jak restartovat vzdálený server – buď pomocí wakeonlanu, nebo ho někdo restartuje ručně nebo nějakým jiným způsobem.
V těchto scénářích můžete odpovídajícím způsobem nastavit služby tftpboot a instalaci operačního systému lze provést vzdáleně (k automatizaci kroků instalace operačního systému potřebujete konfigurační soubor autoyast).
Je uveden postup krok za krokem v tomto článku pro SLES10-SP3 v 64bitové architektuře. Tyto kroky jsou však do značné míry podobné jakýmkoli jiným distribucím Linuxu.
Požadované balíčky
Pro nastavení tftpboot je třeba nainstalovat následující balíčky.
- Balíčky služeb dhcp:dhcp-3.0.7-7.5.20.x86_64.rpm a dhcp-server-3.0.7-7.5.20.x86_64.rpm
- Balík tftpboot:tftp-0.48-1.6.x86_64.rpm
- Balík pxeboot:syslinux-3.11-20.14.26.x86_64.rpm
Instalace balíčku
Nainstalujte balíčky pro služby serveru dhcp:
$ rpm -ivh dhcp-3.0.7-7.5.20.x86_64.rpm Preparing... ########################################### [100%] 1:dhcp ########################################### [100%] $ rpm -ivh dhcp-server-3.0.7-7.5.20.x86_64.rpm Preparing... ########################################### [100%] 1:dhcp ########################################### [100%] $ rpm -ivh tftp-0.48-1.6.x86_64.rpm $ rpm -ivh syslinux-3.11-20.14.26.x86_64.rpm
Po instalaci balíčku syslinux se v adresáři /usr/share/pxelinux/ vytvoří soubor pxelinux.0. To je vyžadováno pro načtení instalačních obrazů jádra a initrd na klientský počítač.
Ověřte, že jsou balíčky úspěšně nainstalovány.
$ rpm -qa | grep dhcp $ rpm -qa | grep tftp
Stáhněte si příslušný tftpserver z úložiště vaší příslušné distribuce Linuxu.
Kroky pro nastavení tftpboot
Krok 1:Vytvořte adresář /tftpboot
Vytvořte adresář tftpboot v kořenovém adresáři ( / ), jak je znázorněno níže.
# mkdir /tftpboot/
Krok 2:Zkopírujte obrázek pxelinux
Obraz PXE Linuxu bude k dispozici, jakmile nainstalujete balíček syslinux. Zkopírujte to do /tftpboot cesty, jak je uvedeno níže.
# cp /usr/share/syslinux/pxelinux.0 /tftpboot
Krok 3:Vytvořte bod připojení pro ISO a připojte obraz ISO
Předpokládejme, že budeme instalovat distribuci SLES10 SP3 Linux na vzdálený server. Pokud máte DVD SUSE10-SP3, vložte jej do jednotky nebo připojte obraz ISO, který máte. Zde byl obraz iso připojen následovně:
# mkdir /tftpboot/sles10_sp3 # mount -o loop SLES-10-SP3-DVD-x86_64.iso /tftpboot/sles10_sp3
Viz náš dřívější článek Jak připojit a zobrazit soubory ISO.
Krok 4:Zkopírujte obrázky vmlinuz a initrd do /tftpboot
Zkopírujte initrd do adresáře tftpboot, jak je ukázáno níže.
# cd /tftpboot/sles10_sp3/boot/x86_64/loader # cp initrd linux /tftpboot/
Krok 5:Vytvořte adresář pxelinux.cfg
Vytvořte adresář pxelinux.cfg pod /tftpboot a definujte definice zavádění pxe pro klienta.
# mkdir /tftpboot/pxelinux.cfg # cat >/tftpboot/pxelinux.cfg/default default linux label linux kernel linux append initrd=initrd showopts instmode=nfs install=nfs://192.168.1.101/tftpboot/sles10_sp3/
Následující možnosti se používají pro,
- kernel – určuje, kde na TFTP serveru najít instalační jádro Linuxu.
- install – určuje zaváděcí argumenty, které se mají předat instalačnímu jádru.
Jak je uvedeno výše, instalační režim nfs se používá pro obsluhu instalačních RPM a konfiguračních souborů. Nechte tedy na tomto počítači nastavit nfs s adresářem /tftpboot v exportovaném seznamu. Do konfiguračního souboru autoyast můžete přidat možnost „autoyast“, abyste zautomatizovali kroky instalace operačního systému, jinak je budete muset provést ručně.
Krok 6:Změňte vlastníka a oprávnění pro adresář /tftpboot
Přiřaďte none:nobody adresáři /tftpboot.
# chown nobody:nobody /tftpboot # chmod 777 /tftpboot
Krok 7:Upravte /etc/dhcpd.conf
Upravte soubor /etc/dhcpd.conf, jak je uvedeno níže.
# cat /etc/dhcpd.conf ddns-update-style none; default-lease-time 14400; filename "pxelinux.0"; # IP address of the dhcp server nothing but this machine. next-server 192.168.1.101; subnet 192.168.1.0 netmask 255.255.255.0 { # ip distribution range between 192.168.1.1 to 192.168.1.100 range 192.168.1.1 192.168.1.100; default-lease-time 10; max-lease-time 10; }
Specifikujte rozhraní v /etc/syslinux/dhcpd, aby naslouchalo požadavkům dhcp přicházejícím od klientů.
# cat /etc/syslinux/dhcpd | grep DHCPD_INTERFACE DHCPD_INTERFACE=”eth1”;
Zde má tento stroj IP adresu 192.168.1.101 na zařízení eth1. Zadejte tedy eth1 pro DHCPD_INTERFACE, jak je uvedeno výše.
Související informace naleznete v našem dřívějším článku o 7 příkladech konfigurace síťového rozhraní pomocí ifconfig.
Krok 8:Upravte /etc/xinetd.d/tftp
Upravte soubor /etc/xinetd.d/tftp tak, aby odrážel následující. Ve výchozím nastavení je hodnota parametru disable „yes“, ujistěte se, že jste ji upravili na „no“ a musíte změnit položku server_args na -s /tftpboot.
# cat /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }
Krok 9:Žádné změny v /etc/xinetd.conf
Soubor etc/xinetd.conf není třeba upravovat. Použijte výchozí hodnoty uvedené v souboru xinetd.conf.
Krok 10:Restartujte služby xinetd, dhcpd a nfs
Restartujte tyto služby, jak je uvedeno níže.
# /etc/init.d/xinetd restart # /etc/init.d/dhcpd restart # /etc/init.d/nfsserver restart
Po restartování služeb nfs můžete zobrazit exportovaný seznam adresářů (/tftpboot) pomocí následujícího příkazu,
# showmount -e
Nakonec je nastavení tftpboot připraveno a nyní lze klientský počítač zavést po změně prvního zaváděcího zařízení jako „síť“ v nastavení BIOSu.
Pokud narazíte na jakoukoli chybu tftp, můžete problém vyřešit načtením některých souborů prostřednictvím služby tftpd.
Načtěte nějaký soubor z tftpserveru, abyste se ujistili, že služba tftp funguje správně pomocí tftp klienta. Předpokládejme, že soubor sample.txt je přítomen v adresáři /tftpboot.
$ tftp -v 192.168.1.101 -c get sample.txt