Pxebootinstall

Prefață

instalarea utilizând bootarea în rețea nu trebuie confundată cu DebianNetworkInstall. În instalare rețea, începeți cu un CD (sau memorie flash USB sau similar) pentru a instala un sistem Linux minim înainte de a continua să descărcați pachete suplimentare prin rețea.

instalarea folosind pornirea în rețea este, de asemenea, diferită de utilizarea rețelei pentru a porni un sistem deja instalat: caz în care, mașina client rămâne dependentă de serverul care funcționează la fiecare pornire viitoare. Proiectul Linux Terminal Server (Ltsp) funcționează astfel, de exemplu.

această pagină descrie instalarea unui nou sistem Debian fără CD, DVD, USB. Până la sfârșitul procesului de instalare, noua mașină este capabilă să ruleze fără suportul serverului. În timpul instalării, veți avea nevoie de un server de boot de rețea.

deoarece nu există servere de boot fiducial în sălbăticie, trebuie să vă configurați propriul. Acest lucru este considerabil mai complicat decât instalarea Debian de pe CD (prescurtare pentru CD sau USB sau …). În mod normal, pornirea în rețea este utilizată numai dacă nu există nicio modalitate de a porni de pe CD. Dacă pornirea de pe CD eșuează, acest lucru se poate datora problemelor BIOS care vor împiedica în mod egal pornirea în rețea (încercările tipice de depanare includ oprirea pornirii sigure, trecerea de la UEFI la modul de pornire vechi și altele similare).

pe Web, pot fi găsite mai multe articole care descriu mai mult sau mai puțin detaliat cum se configurează un server de boot de rețea. Toți au aceeași slăbiciune: vi se cere să executați o listă lungă de instrucțiuni fără a primi feedback înainte de sfârșitul procedurii atunci când încercați să porniți. Dacă funcționează, bine. Dacă nu, depanarea va deveni foarte dificilă. Prin urmare, în cele ce urmează, descompunem procedura în pași care pot fi depanați separat.

http://www.debian.org/releases/stable/amd64/ch04s05 – Ghid de instalare Debian – 4.5. Pregătirea fișierelor pentru TFTP Net Boot

Notă: Dacă sistemul dvs. acceptă iPXE, atunci utilizați netboot.xyz este probabil să fie mult mai simplu.

precondiții

computerul pe care doriți să îl instalați va fi numit Client.

computerul pe care îl instalați va fi numit Server. Presupunem că serverul rulează Debian.

pentru a fi specific, presupunem că clientul și serverul fac parte dintr-o rețea LAN cu următoarele adrese IP:

veți afla valoarea lui x mai târziu.

rețineți că multe routere oferă și un server DHCP: va trebui să îl opriți, deoarece un singur server DHCP poate rula într-o anumită rețea LAN. Cu excepția cazului în care puteți configura serverul DHCP al routerului dvs. pentru a respecta configurația serverului DHCP ISC de mai jos, dar acest lucru este în afara domeniului de aplicare al acestui document.

de asemenea, este posibil ca routerul și serverul să fie aceeași mașină, adică serverul Debian să fie gateway-ul implicit pentru această rețea LAN. Acest lucru va funcționa bine. următoarele instrucțiuni au fost testate cu Debian 8.2 (Jessie) în septembrie 2015.

activați PXE boot

configurați meniul de pornire BIOS al clientului pentru a porni din rețea.

Reboot. Pe majoritatea sistemelor, aceasta produce o ieșire care conține adresa MAC a clientului. Apoi, va eșua cu

 PXE-E53: no boot filename received.

notați adresa MAC; va fi util pentru interpretarea mesajelor de jurnal.

pe multe servere, este de asemenea posibil să comutați temporar la boot PXE fără a modifica permanent setările BIOS-ului. Nu va fi un fel de apăsare de tastă pentru a lovi în timpul BIOS POST. Pe serverele Dell, F12 va face trucul (sau Esc apoi @ de la o consolă serială sau IPMI).

Configurați serverul DHCP

pe Server, trebuie să configurați un server DHCP.

cele mai bune practici actuale pare a fi de a utiliza pachetul isc-dhcp-server, care oferă un dhcpd daemon.

fișierul său de configurare este/etc/dhcp / dhcpd.conf. Modificați acest fișier astfel încât să conțină următoarele; adaptați adresele IP și MAC la nevoile dvs. locale:

după fiecare modificare a celor de mai sus, reporniți serverul DHCP cu

 # /etc/init.d/isc-dhcp-server restart

sau cu echivalentul systemd

 # systemctl restart isc-dhcp-server

verificați dacă rulează efectiv:

 # pgrep -lf dhcpd 32277 /usr/sbin/dhcpd -q

sau

 # systemctl status isc-dhcp-server

care oferă puțin mai multe informații.

înainte de a reporni Clientul, poate doriți să rulați

 # journalctl -fu isc-dhcp-server

care vă arată ultimele câteva rânduri ale Jurnalului serverului DHCP, apoi actualizează ecranul cu fiecare nouă intrare în jurnal. (Dacă nu doriți să „urmați” Jurnalul, lăsați doar „f”)

 PXE-E32: TFTP open timeout

și, în același timp, veți vedea mesaje de jurnal pe ecranul serverului care arată cererile și ofertele DHCP similare cu ieșirea de sub comanda alternativă de mai jos

dacă preferați să nu utilizați systemd sau doriți să comparați ieșirea tradițională a jurnalului în scopuri de diagnosticare, puteți căuta /var/log/syslog, de exemplu cu această comandă

 # grep DHCP /var/log/syslog
  • unde ar trebui să vedeți ceva de genul:

(rețineți că versiunile anterioare Debian foloseau /var/log/daemon.jurnal în loc de syslog)

dacă nu apare nimic în jurnal cu niciuna dintre comenzi, verificați legăturile de rețea dintre Server și Client. Rețineți că unele comutatoare de rețea pot impune limitări severe traficului DHCP; pentru cele Cisco, utilizați”portfast”dacă este posibil (consultați http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00800b1500.shtml).

configurarea serverului TFTP

în continuare, trebuie să configurăm un server TFTP pe Server.

Din nou, există mai multe pachete care oferă TFTP (FTP trivial, nesigur, pentru a fi utilizat numai în LAN). Se pare că cea mai bună practică de a utiliza pachetul tftpd-hpa. La instalare, se pun câteva întrebări. Răspunsul la aceste întrebări merge într-un fișier de configurare, /etc/default/tftpd-hpa. Nu ar trebui să fie nevoie să modificați următorul conținut implicit:

 TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"

ignorați site-urile web mai vechi care vă instruiesc să inserați ceva de genul ‘RUN_DAEMON=”da”‘.

după fiecare modificare a fișierului de configurare de mai sus, reporniți serverul TFTP cu

 # /etc/init.d/tftpd-hpa restart

sau

 # systemctl restart tftpd-hpa

pe Jessie, directorul/srv / tftp va fi creat automat. Aceasta înseamnă că următorii doi pași nu sunt necesari dacă utilizați Jessie.

inițial, pe versiunile pre-Jessie, repornirea serverului TFTP ar putea eșua cu un mesaj de genul

 Restarting HPA's tftpd: in.tftpd/srv/tftp missing, aborting.

prin urmare, ca root, creați directorul/srv / tftp. Reporniți demonul TFTP. Verificați dacă rulează efectiv:

 # pgrep -lf tftpd 12555 /usr/sbin/in.tftpd

sau

 # systemctl status tftpd-hpa

care oferă din nou câteva linii ale Jurnalului, mai degrabă decât doar faptul că sarcina este (nu este) rulează.

este util să vă testați serverul TFTP cu un client TFTP; puteți utiliza pur și simplu pachetul tftp-hpa în acest scop:

 # cd /tmp # uname -a >/srv/tftp/test # tftp 192.168.0.2 tftp> get test tftp> quit # diff test /srv/tftp/test (nothing, they are identical)

de asemenea, este util să vedeți ce intrări de jurnal obțineți atunci când descărcați un fișier care există și când încercați să descărcați unul care nu. În timp ce utilizați tftp pentru a testa serverul tftpd, încercați să urmăriți experimentele cu forme vechi și noi ale comenzii jurnal în timp ce utilizați clientul TFTP pentru a descărca fișiere care există, precum și fișiere care nu există.

comanda tradițională de pe Jessie

 # tail -f /var/log/syslog

(rețineți din nou că versiunile anterioare Debian foloseau/var/log / daemon.jurnal în loc de syslog.)

pe systemd

 # journalctl -fu tftpd-hpa

Din păcate, acestea par să dea rezultate diferite, începând cu ianuarie 2017. Comanda systemd nu afișează cererile de fișiere pentru fișierele care nu există.

este destul de util să știți ce solicită clientul, deoarece vă ajută să mutați fișierele în locația așteptată dacă faceți greșeli mai târziu. În prezent, atunci este, probabil, în valoare de folosind modul tradițional de urmărire jurnal pentru TFTPD.

reporniți Clientul. Ar trebui să vedeți mesaje de eroare pe ecranul clientului începând cu

 PXE-T01: File not found

ceea ce este destul de corect, deoarece nu am furnizat încă niciun fișier. Pe ecranul serverului, veți vedea exact ce a cerut clientul.

furnizați imaginea de pornire

descărcați netboot / netboot.gudron.gz dintr-o oglindă Debian (vezi http://www.debian.org/distrib/netinst#netboot).

opțional: pentru a verifica semnătura digitală, tastați aceste comenzi:

Despachetați netboot.gudron.gz la / srv / tftp, care ar trebui să conțină acum

 debian-installer/ pxelinux.0@ pxelinux.cfg@ version.info

poate fi necesar să chmod-R A+r * pentru ca toate fișierele din acest director să poată fi citite pentru demonul TFTP.

este posibil să trebuiască să editați grub / grub.cfg pentru a seta consola serial, dacă este necesar (am înlocuit secțiunea despre terminalul grafic):

serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1terminal_input console serialterminal_output console serial

precum și consola serială pentru debian-installer adăugând acest lucru la linia de comandă a nucleului:

console=ttyS1,115200n8r console=tty1

reporniți demonul TFTP și, din nou, poate doriți să urmați intrările din jurnal așa cum apar

 # tail -f /var/log/syslog

apoi reporniți clientul. Ar trebui să accesați un ecran de instalare Debian.

dacă căutați în/var/log / syslog, veți vedea ce a fost descărcat de pe serverul TFTP de către bootloader-ul PXE și apoi de SYSLINUX. Este posibil să vedeți și câteva răspunsuri ” NAK ” atunci când SYSLINUX a cerut fișiere care nu există (încearcă mai multe locații pentru unele fișiere importante).

încărcătorul PXE (firmware-ul din BIOS sau controlerul de rețea al clientului) încearcă să se încarce în această ordine:

  • pxelinux.0 (sau mai exact, ceea ce i-ați spus să descarce în câmpul ‘Nume fișier’ al răspunsului DHCP)

atunci SYSLINUX/PXELINUX va încerca să caute configurația sa pe căi diferite, de la cele mai specifice la cele mai mici:

  • pxelinux.cfg / GUID
  • pxelinux.cfg / MAC
  • pxelinux.cfg / default

și dacă meniul de configurare depinde de alte elemente de configurare, acestea sunt, de asemenea, descărcate. Debian va avea nevoie cel puțin de ‘ bootmenu.txt ‘ fișier care este meniul principal.

în mod implicit, ajungeți la ecranul grafic Debian install start menu. Apăsați ‘enter’ pentru a începe instalarea. Aveți răbdare: poate dura mai mult de un minut înainte ca următorul ecran (‘Selectați o limbă’) să apară.

mod alternativ de a obține imaginea de boot

Dacă aveți un sistem Debian cu aceeași versiune pe care doriți să o instalați, puteți instala imaginea de boot folosind apt.

acum îndreptați serverul tftp către/usr/lib/debian-installer/images/$VERSION/$ARCH / $INTERFACE unde INTERFACE=text pentru programul de instalare a modului text sau INTERFACE=gtk pentru programul de instalare grafic. O modalitate simplă de a realiza acest lucru este de a transforma /srv/tftp într-o legătură simbolică.

un alt mod – utilizarea Dnsmasq

dnsmasq este un ușor, ușor de configurat expeditor DNS și server DHCP cu funcționalitate BOOTP/TFTP / PXE. Adică, puteți înlocui isc-dhcp-server și tftpd-hpa cu Dnsmasq.

în urma este/etc / dnsmasq.conf oferind aceeași funcționalitate ca și metoda de instalare și configurare a isc-dhcpd-server și tftpd-hpa descrise mai sus.

descărcați netboot.gudron.gz și extrageți-l în /srv/tftp ca descriere anterioară.

probleme potențiale

dacă nucleul din imaginea netboot nu se sincronizează cu pachetele modulului kernel, atunci modulele nu se vor încărca și instalarea va eșua, simptomele obișnuite sunt că mesajele despre „simboluri lipsă” apar în consola ctrl-alt-f4.

pentru a remedia acest lucru, actualizați kernel-ul și initrd-ul pe serverul netboot.

există probabil o problemă Debian BTS deschisă pentru asta, dar nu o găsesc acum.

Vezi și

  • http://www.debian.org/releases/stable/amd64/ch04s05 – Ghid de instalare Debian – 4.5. Pregătirea fișierelor pentru TFTP Net Boot

  • di-netboot-assistant automatizează majoritatea pașilor descriși mai sus: DebianInstaller/NetbootAssistant

  • programul de instalare Lenny din netboot.gudron.gz nu acceptă instalarea folosind consola serială în mod implicit acum. Mai multe informații despre această problemă și un patch pentru a permite accesul consolei seriale pot fi găsite în 309223.

  • https://networkboot.org/

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *