Ubuntu: instalare în rețea. PXE - încărcați totul! Stăpânirea multiboot într-o rețea locală Instalarea Linux într-o rețea

Acest articol va acoperi instalarea Ubuntu Linux dintr-un depozit de pornire în rețea.

Deci, vom instala Ubuntu 10.04 pe computerele client de pe serverul 192.168.0.3, care găzduiește serverul de boot de rețea și dhcpd. Pentru instalare, depozitul trebuie să conțină directorul dists/lucid/main/debian-installer. Dacă adăugați directoare similare pentru alte depozite (multivers, univers, restricționat), atunci la etapa „Selectarea și instalarea software-ului” lista de software va fi mai mare. În acest ghid, voi lua în considerare această opțiune. Dacă ați făcut o oglindă debmirror, atunci cel mai probabil nu aveți deloc aceste directoare. Le puteți descărca, de exemplu, de pe ftp://mirror.yandex.ru. De asemenea, în timpul instalării, programul de instalare, indiferent de depozitul selectat, accesează adesea security.ubuntu.com.

Pasul 1: Instalarea serverului

Instalarea aplicațiilor necesare:

apt-get install tftpd-hpa openbsd-inetd

Descărcați și despachetați imaginea pentru o instalare în rețea:

tar -xvzf netboot.tar.gz -C /var/lib/tftpboot/

chown -R nimeni:nogroup /var/lib/tftpboot

Pentru pornirea în rețea, trebuie să transmiteți 2 parametri clientului: numele fișierului de boot și serverul fișierului de boot (în dhcpd, aceștia sunt numele fișierului și parametrii următorului server):

următorul server 192.168.0.3;
nume de fișier „pxelinux.0”;

Serverul este instalat, puteți instala sistemul.

Pasul 2: Instalarea sistemului

Pentru a instala sistemul de pe un server din rețea, trebuie să activați Network Boot (PXE) în BIOS. Dacă bios-ul dvs. acceptă meniul de pornire, atunci este mai bine să îl utilizați pentru a selecta dispozitivul de pornire - astfel încât să nu existe probleme dacă uitați să schimbați ordinea de pornire.

Dacă totul este în regulă, atunci veți vedea ecranul de bun venit al instalatorului:

  • Server Ubuntu de bază
  • Server de nume (DNS)
  • server edubuntu
  • Server LAMP
  • Server de mail
  • server openSSH
  • Baza de date PostgreSQL
  • Server de imprimare
  • Server de fișiere Samba
  • Ubuntu Enterprise Cloud
  • Gazdă mașină virtuală
  • Suită de creare și editare 2D/3D
  • Suită de creare și editare audio
  • desktop KDE edubuntu
  • desktop edubuntu
  • Desktop Kubuntu
  • netbook Kubuntu
  • Pluginuri audio LADSPA și DSSI
  • Selecție mare de pachete de fonturi
  • Mythbuntu roluri suplimentare
  • Mythbuntu Front End
  • Mythbuntu master backend
  • Backend sclav Mythbuntu
  • Ubuntu Netbook
  • Desktop Ubuntu
  • Suită de creare și editare video
  • desktop ubuntu
  • Selectarea manuală a pachetului

Articolul descrie în detaliu procesul de implementare a unei rețele de „clienți subțiri” care rulează sub controlul distribuției Thinstation Linux și utilizând un server de aplicații bazat pe Windows 2000

Utilizarea stațiilor Linux fără disc cu pornirea în rețea

Publicat pentru prima dată în revista „Administrator de sistem” N11/2004

Formularea problemei

Munca unui angajat al departamentului de automatizare este o luptă constantă cu problemele și rezolvarea problemelor care sunt aruncate alternativ de utilizatori, dezvoltatorii de software în uz și managementul organizației. Și dacă primele două domenii de lucru sunt doar o „luptă pentru supraviețuirea navei”, atunci ultima, de regulă, mișcare înainte. În cursul rezolvării uneia dintre aceste probleme s-a născut acest articol.

Așadar, departamentului de automatizare i s-a dat sarcina de a pune rapid în funcțiune două noi birouri la distanță, fiecare cu cinci până la zece persoane. Atât birourile, cât și „capul” au fost conectate prin tehnologii VPN într-o singură rețea. Lățimea de bandă minimă între trei puncte a fost de 256 Kbit, ceea ce ne-a satisfăcut pe deplin nevoile. Un controler de domeniu Windows 2000 suplimentar a fost implementat în fiecare dintre birouri, iar domeniul a fost împărțit în mai multe site-uri pentru a minimiza traficul. Toate cele de mai sus sunt o soluție standard și aici nu mă așteptam la surprize. Principala întrebare pentru noi a fost cum se va comporta mediul principal de lucru al angajaților organizației - un sistem complex de automatizare, la lucru cu care au existat suficiente probleme chiar și în cadrul aceluiași site. Vizat inițial către Novell/BTRIVE 6.15, după migrarea rețelei la Windows, a rulat sub Windows/Pervasive.SQL 7.

După o săptămână de testare a acestei principale aplicații de afaceri a organizației, s-a dovedit că dezvoltatorul nu ne-a lăsat deloc de ales, deoarece utilizarea modului terminal încorporat al sistemului automatizat utilizat nu ne-a potrivit din mai multe motive. . Din nou, datorită particularităților de funcționare, platforma Microsoft Windows Server a fost aleasă ca server terminal. Cu toate acestea, nu am testat soluțiile Citrix, deoarece lucrul cu serviciile terminale native Windows ne-a mulțumit pe deplin, iar utilizarea suplimentelor nu face decât să mărească costul întregului sistem.

Când totul a fost decis cu partea de server, a apărut întrebarea despre componenta client a sistemului. În primul rând, aș dori să reduc nevoia de administrare a mașinilor utilizatorilor, deoarece nu a fost planificat să se mențină un administrator dedicat la site-urile de la distanță. În plus, părea de dorit să se reducă costul soluției, care a crescut din cauza necesității de a achiziționa licențe de terminal. De asemenea, a fost necesar să se țină cont de intenția de a plasa în birouri computere învechite din clasa Celeron-400 cu RAM de la 32 la 64 MB.

Ideal din toate punctele de vedere, s-a dovedit a fi utilizarea stațiilor fără disc cu boot de rețea ca locuri de muncă. În acest caz, singurul computer care necesită atenția administratorului devine un controler de domeniu suplimentar în fiecare birou, gestionat prin VNC. Este de la sine înțeles că în cadrul acestui articol omit echipamentele și software-ul care asigură criptarea traficului, acces la Internet etc.

În rolul OS-ului care va fi pornit prin rețea către stațiile de lucru, am ales Linux - care asigură puritatea licenței soluției (cel puțin deocamdată). Desktop-ul Windows 2003 urma să fie accesat prin dezvoltarea proiectului www.rdesktop.org, care a devenit standardul pentru această sarcină. Deoarece serverele DHCP și TFTP sunt necesare pentru o astfel de încărcare, ar fi logic să folosim controlere de domeniu suplimentare Windows 2000 deja disponibile în fiecare site. Din fericire, există atât implementări DHCP / TFTP gratuite pentru acest sistem de operare, cât și servere încorporate. . În același timp, TFTP este disponibil ca parte a serviciului Remote Installation Services (RIS).

Plăcile de rețea ale mașinilor client, desigur, trebuie să accepte capacitatea de pornire prin Etherboot / PXE. În unele cazuri, din cauza incompatibilității hardware, am permis utilizarea unui bootloader situat pe o dischetă.

Alegerea unei implementări Linux

Când am ales o opțiune de sistem de operare Linux cu capacitatea de a porni prin rețea, în primul rând, am acordat atenție distribuțiilor gata făcute cu o orientare similară cu un pachet rdesktop încorporat. Cel mai cunoscut dintre acestea este NetStation (netstation.sourceforge.net), care este în formă beta de la sfârșitul anului 2002, și succesorii săi: PXES (pxes.sourceforge.net), Thinstation (thinstation.sourceforge.net) și DIET- PC (diet-pc.sourceforge.net). În același timp, DIET-PC este destinat în primul rând utilizatorilor care sunt familiarizați cu sistemul de operare Linux, ceea ce îl exclude imediat din luare în considerare. Deoarece procedura de configurare este destul de minuțioasă, iar DIET-PC are o mulțime de setări pe care un simplu muritor, și nu un guru Linux, nu le va fi niciodată de folos. PXES - este cel mai „avansat” cu un număr mare de caracteristici suplimentare, inclusiv propriul mediu grafic, care este de prisos și în cazul meu. În configurația mea, clientul, ocolind meniurile intermediare, a trebuit să încarce imediat desktopul de la distanță și să iasă în fereastra de introducere a parolei Windows 2003 Server. Astfel, mi-am îndreptat atenția către trusa de distribuție rămasă - Thinstation.

Să aruncăm o privire rapidă asupra caracteristicilor sale:

suport pentru protocoale X, RDP, VNC, SSH, Telnet, ICA și Tarantella;

capacitatea de a utiliza browserul Firefox;

lucrați pe o clasă PC x86-100MHz cu 16MB RAM;

prezența unei imagini pre-construite și posibilitatea de auto-asamblare prin interfața web;

suport pentru unități locale, imprimante USB și LPT

Dintre toate opțiunile de pornire, cea mai ușoară este PXE folosind bootloader-ul Etherboot. În acest articol, vom merge pe calea cea mai simplă - folosind o imagine pre-compilată.

Instalare și configurare inițială

Să începem prin a descărca de pe pagina http://struktur.kemi.dtu.dk/thinstation/download/, disponibilă din linkul de pe site-ul oficial, ultima dintre arhive, în cazul meu a fost Thinstation-2.0.2- preconstruit-NetBoot .zip. Arhiva conține tot ce aveți nevoie, inclusiv serverul Tftpd32 TFTP/DHCP, care este convenabil pentru setarea și configurarea inițială. Apropo, dacă îl folosiți, v-aș recomanda să îl actualizați imediat de pe pagina de start, unde există o versiune mai recentă. Apropo, Tftpd32 (http://tftpd32.jounin.net/) este un program grozav în sine. Și atât de mult încât Cisco este chiar recomandat pentru unele dintre nevoile clienților companiei.

Extindem arhiva, obținem cinci directoare:

BootDisk - imagine de dischetă cu bootloader Etherboot, pentru PC, cu plăci de rețea neacceptate

BootPXE - Bootloader PXE pentru emularea Etherboot

BuildFiles - exemple de fișiere de configurare

TFtp - Server Tftpd32

TftpdRoot - directorul rădăcină al serverului TFTP

Deci, în primul rând, lansăm arhiva autoextractabilă thinstation.nbi (autoextract).exe care conține un singur fișier thinstation.nbi. arhiva este realizată astfel încât să aveți ocazia să vă familiarizați cu „CONTRACTUL DE LICENȚĂ CITRIX (R)”.

Acum copiem TFtp și TftpdRoot pe serverul Windows din segmentul nostru de rețea. Orice mașină Windows cu o adresă IP statică poate acționa ca un astfel de server atunci când folosește Tftpd32. Să presupunem că am copiat ambele directoare pe unitatea C:\. Rulați C:\TFtp\Tftpd32.exe pentru execuție. Aspectul ferestrei programului este prezentat în figură.

Trebuie să setați setările serverului. Faceți clic pe butonul „Setări” și setați „Directorul de bază” la „C:\TftpdRoot”. Apoi, accesați fila „Server DHCP”. Acolo trebuie să specificați adresa IP de pornire alocată de serverul DHCP („adresa de pornire a grupului IP”), dimensiunea grupului de adrese („Dimensiunea pool-ului”), masca de subrețea („Mască”), numele fișierului cu încărcătorul Etherboot („Fișier de pornire”), în cazul nostru este thinstation.nbi.zpxe. Faceți clic pe butonul „Salvare” pentru a salva setările și închideți aplicația.

Totul este gata de lucru. Puteți încerca să porniți una dintre mașinile cu o placă de rețea care acceptă boot PXE, amintindu-vă să setați ordinea de pornire în BIOS-ul stației. Când este activat, aparatul trebuie să obțină o adresă IP din intervalul alocat și să descarce fișierul thinstation.nbi.zpxe prin TFTP. Conține un bootloader care emulează funcționarea unei plăci de rețea cu suport Etherboot. Apoi, controlul este transferat la bootloader, care la rândul său solicită din nou o adresă prin DHCP și încarcă un fișier cu un nume care se potrivește cu numele fișierului bootloader-ului însuși minus extensia zpxe, adică thinstation.nbi. Acest fișier este imaginea Thinstation. Când imaginea este încărcată, Thinstation încearcă să încarce fișierul de configurare thinstation.conf- din directorul rădăcină al serverului TFTP, apoi thinstation.conf- . Dacă se găsesc astfel de fișiere, Thinstation îmbină conținutul lor cu fișierul de configurare comun thinstation.conf.network, care, spre deosebire de cele două de mai sus, trebuie să fie prezent pe serverul TFTP. Încercați să evitați conflictele între fișierul principal de setări și cele specifice unui grup sau post. În plus, puteți combina grupuri întregi de adrese IP și MAC într-un singur fișier de configurare. Acest lucru se face folosind fișierul thinstation.hosts, care are următorul format:

# GAZDE MAC COMENTARII ws-oper1 0002B3655065 hi_res # Operator #1 ws-oper2 0002B3651075 hi_res # Operator #2 ws-oper3 0002B365A021 hi_res ssh_en # Operator #3

Acest exemplu presupune că există două fișiere thinstation.conf.group-hi_res și thinstation.conf.group-ssh_en. Setările specificate în primul fișier se aplică tuturor celor trei stații, în timp ce setările din al doilea fișier se aplică numai computerului ws-oper3.

Puteți vedea cum sunt afișate sesiunile de client terminal în snap-in-ul Terminal Services Manager din figură.


Clienții cu nume precum ts_ sunt doar terminale client care rulează Thinstation. Clienții cu nume P rulează sub distribuția PXES, care este în afara domeniului de aplicare al acestui articol. În continuare, voi oferi o versiune simplă, dar destul de funcțională a fișierului de configurare cu comentarii. # Opțiuni de sesiune # # Prima sesiune trebuie să înceapă întotdeauna cu numărul 0. # Dacă nu trebuie să selectați o sesiune, de exemplu, atunci când # utilizați numai rdesktop, puteți decomenta următoarea opțiune și # excludeți meniul de selectare a sesiunii. #AUTOSTART=On SESSION_0_TITLE="(!LANG:Server terminal Windows 2003 (adâncime de culoare de 16 biți)" SESSION_0_TYPE=rdesktop SESSION_0_RDESKTOP_SERVER=192.168.0.1 SESSION_0_RDESKTOP_OPTIONS="-u Administrator -p password -a 16" SESSION_1_TITLE="Server VNC" SESSION_1_TYPE=vncviewer SESSION_1_VNCVIEWER_SERVER=192.168.0.2 SESSION_2_TITLE="Server Telnet" SESSION_2_TYPE=telnet SESSION_2_TELNET_SERVER=192.168.0.3 SESSION_3_TITLE="Server SSH" SESSION_3_TYPE=ssh SESSION_3_SSH_SERVER=192.168.0.4 # Общие опции # # Раскладка клавиатуры. В случае работы с rdesktop она роли не играет KEYBOARD_MAP=en_us # Опции XServer # SCREEN_RESOLUTION="1024x768" SCREEN_COLOR_DEPTH="16" SCREEN_HORIZSYNC="30-64" SCREEN_VERTREFRESH="56-87" MOUSE_RESOLUTION=100 # Опции печати # PRINTER_0_NAME=usb PRINTER_0_DEVICE=/dev/usb/lp0 PRINTER_2_TYPE=U !}

În încheierea articolului, vreau să spun că, după depanarea lucrului cu clienții terminale, cel mai bine este să transferați funcțiile serverelor TFTP și DHCP către software care poate funcționa în modul service pe Windows NT/2000/2003/XP, de exemplu , după cum am spus, servicii Windows „native”, sau utilizați serviciile corespunzătoare ale oricărui alt sistem de operare.


În plus, pe site-ul proiectului thinstation.sourceforge.net, folosind o interfață web, puteți recompila singur imaginea Thinstation fără a descărca codurile sursă, inclusiv orice funcții care nu sunt în imaginea preconstruită, cum ar fi un browser, sau excluderea celor inutile. module.

Andrei Markelov. Andrey Markelov (www.markelov.net) - Utilizarea stațiilor Linux fără disc cu pornire în rețea

Acest articol publică modalități de a porni un computer printr-o rețea folosind imagini de dischetă/HDD (puteți folosi alte dimensiuni decât 1,44 MB). Acest lucru poate fi necesar dacă nu există alte medii de pornire la îndemână sau pentru ușurință în utilizare în anumite condiții. Metodele au fost încercate cu succes cel puțin o dată într-o situație reală, iar dacă știi pe altele, atunci trimite-ți opțiunile administratorului site-ului. Dacă știți cum să simplificați metodele existente, trimiteți opțiunile dvs. la autorii metodelor sau publicați-le.

Metoda 1: Thinstation și server RIS

Prezentarea unui articol despre pornirea în rețea scris de un membru al conferinței OSZone.

cuvânt înainte

Am avut o astfel de situație. Au adus un computer, abia în viață, Asus S200, acel lucru mic, așa cum s-a dovedit mai târziu. Discul era partiționat corect (două partiții), iar cel de-al doilea avea un kit de distribuție Windows, datorită tunerului anterior, a ușurat sarcina.

Deci, avem un computer fără flop și un CDROM. Există o placă de rețea SIS900. BIOS-ul are capacitatea de a porni de pe HDD, USB Floppy, USB Flash, USB CDROM și prin rețea.

La momentul începerii chinului, avea la el doar o unitate flash, dar a refuzat să pornească de pe ea. Nu a fost posibil să obțineți USB CD sau Floppy. Tot ce a mai rămas a fost încărcarea în rețea. Apropo, după cum sa dovedit mai târziu, doar un flop USB ar ajuta cu adevărat. CD USB nu este recunoscut.

Citind dock-urile MS și forumurile de auto-instalare, am dat peste abrevierea RIS și mențiunea că poți să bootezi de pe placa de rețea și să instalezi axa. Așa că am decis să verific. Am instalat RIS, am creat o imagine, am configurat DHCP și... am avut o mare dezamăgire. Sistemul a pornit de fapt, a trecut prin partea de text a instalării și a căzut într-un BSOD cu codul 0x000000BB. Conform interpretărilor găsite pe Internet, pentru a o repara, nu aveți nevoie de nimic, înlocuiți driverele plăcii de rețea din kitul de distribuție sau înlocuiți placa de rețea. Am descărcat noua versiune a driverelor, am citit KB315279 și link-urile către acesta, am făcut totul așa cum este descris, iar dansul cu o tamburină s-a terminat cu un BSOD lung cu același cod.

Bine, dacă nu funcționează din senin, hai să citim instrucțiunile. Am studiat și studiat și am dat peste posibilitatea de a folosi aproape orice imagine de disc pentru a porni prin rețea.

De ce ai nevoie

  • Un utilitar pentru crearea de imagini de rețea bootabile din cele obișnuite. Se încarcă
  • perl. Se încarcă . (această versiune a funcționat pentru mine, alții o încearcă singuri, nu sunt un jucător Perl)
  • Notepad din distribuția standard Windows sau orice alt editor ASCII
  • stație subțire. , fișier (8,86 Mb) (este foarte posibil ca fișierul și celălalt să facă)
  • Discul de instalare Windows 2000 Server
  • Mâini directe, dorință de a învăța :)

Noțiuni de bază

Pasul 1

Descărcați și despachetați utilitarul de conversie. Pentru a fi clar, în D:\BootDisk\.

Pasul 2

Descărcați și instalați Perl.

Pasul 3

Creăm o imagine floppy sau folosim o imagine gata făcută.

  • Dacă nu există nicio imagine de dischetă de pornire sub forma unui fișier, atunci introduceți discheta de pornire MS-DOS și executați comanda D:\BootDisk\MKIMAGE.BAT DOS . Sunt acceptate unități standard de 1,44 Mb.
  • Dacă imaginea este deja acolo, atunci modificăm fișierul de creare a imaginii de boot.
    1. Deschideți blocnotesul și copiați/scrieți următorul cod
      @echo dezactivat
      cd mknbi-1.4.1-win
      perl.exe mknbi.pl --nosquash --format=nbi --target=dos ..\image.dos >..\dos.bin
      rem Dacă doriți universalitate, atunci comentați pe linia de sus (adăugați REM)
      rem și anulați comentariul pe cel de jos (eliminați REM) (lansați MKIMAGE2 image_name_with_extension)
      rem perl.exe mknbi.pl --nosquash --format=nbi --target=dos ..\%1 >..\dos.bin
      CD..
      :Sfârşit
      Îl salvăm sub nume MKIMAGE2.BAT
    2. Copiați imaginea de pe dischetă în D:\BootDisk\image.dos
    3. Rulați fișierul MKIMAGE2.BAT

Pasul 4

Așteptăm finalizarea fișierului batch. Verificand ca marimea dos.bin peste dimensiune imagine.dos aproximativ 4 kb.

Pasul 5

Despachetați stația subțire. Din arhivă avem nevoie de fișierul TFTpdRoot\ thinstation.nbi.zpxe. Copiați-l în D:\BootDisk\ cu numele dos.bin.zpxe. Este un bootloader PXE.

Pasul 6

Configurați DHCP (dacă este configurat, apoi treceți la pasul 7). Am Win 2000 Server, așa că îl voi descrie.

Dacă DHCP nu este setat, atunci trebuie setat mai întâi. ( Panou de control> - Instalați Eliminați programe- , apoi evidențiați Servicii de rețea, Compoziţieși bifați DHCP).

Configurați DHCP. Panou de control - Administrare, lansa snap-in DCHP. Alege Server DHCP pe care vrem să le personalizăm. Apoi selectați din meniul contextual Creați o zonă. În expertul care apare, introduceți numele zonei și un comentariu. Să dăm nume semnificative, astfel încât în ​​câțiva ani un alt administrator sau tu însuți să-ți dai seama. Apoi introducem adresa de început și de sfârșit pe care dorim să o distribuim prin DHCP. Capacitatea maximă depinde de numărul de mașini instalate în același timp. Dacă o adresă statică este inclusă în intervalul de adrese, o puteți introduce pe pagina următoare în lista celor excluse. Mai departe, la discreția dvs. După crearea unei zone în secțiunea Setări zonă, trebuie să configurați setările 066 IP serverși 067 Nume fișier Pentru încărcare. Pe opțiune 067 introduceți numele dos.bin.zpxe.

Pasul 7

Instalarea și configurarea RIS

Panou de control - Instalați Eliminați programe - Adăugarea și eliminarea funcțiilor Windows, bifeaza casuta Serviciul de pornire de la distanță. După finalizarea instalării, accesați Administrare - Serviciiși porniți serviciul Daemon FTP simplificat.

Pasul 8

Copiați fișierele în C:\tftpdroot dos.bin.zpxeși dos.bin.

Pasul 9

Instalăm pe computer boot de la adaptorul de rețea prin PXE și încercăm să pornim.
Dacă totul este în regulă, atunci computerul care pornește va căuta un server DHCP, apoi încărcătorul de pornire va arăta că a fost atribuită o adresă IP și a început bootarea din imagine.

Note generale

Pentru a edita/crea o imagine de dischetă, poți folosi WinImage, un plugin pentru Total Commander

0. Introducere
Descărcarea prin rețea este un lucru foarte convenabil și adesea chiar de neînlocuit. Nu trebuie să deschideți carcasa computerului (uneori nu este la fel de ușor ca în cutiile obișnuite de PC), nu aveți nevoie de cdrom, nu aveți nevoie de un cablu ide gratuit, nu aveți nevoie de o unitate de dischetă, nu au nevoie de USB.
Sistemul de încărcare este ușor de schimbat - nu trebuie să fie „încărcat” și scris oriunde. Este doar un director.
Din anumite motive, acest subiect este temut și evitat de mulți. Pare a fi ceva complicat, problematic și greu de implementat. De fapt, totul, ca și restul geniului, este simplu.

1. Ce este necesar pentru a porni Linux pe o mașină prin rețea?

  • Mașina trebuie să aibă o placă de rețea care acceptă PXE de la Intel. Există câteva alte implementări ale protocoalelor de pornire în rețea, dar PXE este cel mai comun și este, în practică, protocolul de pornire în rețea implicat de facto.
  • Un sistem Linux configurat (să-l numim o mașină gazdă) care va oferi o adresă IP și va conține un nucleu bootabil și imaginea sistemului în sine. Acesta, de fapt, s-ar putea să nu fie neapărat un sistem Linux, dar în acest mod de lucru va fi implicit.
  • Rețea Ethernet. Mașina gazdă și mașina victimă pot fi conectate cu un simplu cablu încrucișat sau puteți utiliza metodele obișnuite. :)
  • Cunoașterea adresei MAC a mașinii victimei. Poate fi vizualizat fie din jurnalele serverului DHCP, fie rescris direct de pe ecran în momentul pornirii PXE, dar puteți face fără ea complet și configura serverul DHCP astfel încât să ofere IP-ul și imaginea dorite tuturor fără discernământ. . Dar aceasta este o poveste complet diferită (bine descrisă în Google) și depășește scopul acestei instrucțiuni.

2. Cum funcționează procesul de pornire în rețea?
Răspuns rapid: rețeaua este configurată automat prin dhcp, bootloader-ul este încărcat prin tftp, care încarcă nucleul prin tftp, care încarcă restul sistemului rădăcină prin nfs.
Raspuns detaliat: Primul lucru pe care îl face o mașină pornită cu PXE la pornire este să trimită o solicitare de difuzare DHCP către rețeaua care caută un server. Mașina gazdă, pe care demonul DHCP doarme liniștit, oferă adresa și calea fișierului pentru bootloader. PXE Boot ROM pe baza informațiilor primite, configurează adaptorul de rețea. Dacă totul merge bine, bootloader-ul este încărcat prin protocolul TFTP și preia cursul ulterioare al evenimentelor. În schema generală, evenimentele se dezvoltă în continuare după cum urmează - nucleul Linux special pregătit pentru pornirea prin rețea este încărcat folosind același protocol TFTP. În același timp, bootloader-ul transmite nucleului parametrii necesari pentru pornire prin protocolul NFS. Nucleul, după pornire, montează partiția nfs pe mașina gazdă și pornește sistemul de acolo.

3. Cum să configurați totul și să îl ridicați de la zero?
Intrebare reala :)
La urma urmei, avem nevoie de:
a) instalat, configurat și rulează servere dhcp, tftp și nfs
b) un bootloader și o imagine gata făcută a sistemului rădăcină, în care puteți să faceți chroot și să configurați după cum este necesar, să instalați / adăugați pachete etc.
c) un nucleu pregătit pentru pornirea în rețea.
Deci, punct cu punct, presupunând că avem un sistem Debian (și bucurându-ne că am făcut odată alegerea corectă a distribuției) și că vom plasa toate fișierele relevante în directorul /tftpboot:

0. Creați directoare și instalați bootloader-ul pxelinux.
Mai întâi, să creăm și să definim directoare.
Fie /tftpboot directorul nostru „principal”.
Va avea două subdirectoare: boot/ (cu sistem rădăcină) și pxelinux.cfg/ (cu setări pentru bootloader)

# mkdir /tftpboot # mkdir /tftpboot/boot # mkdir /tftpboot/pxelinux.cfg

# apt-get install syslinux # cp /usr/lib/syslinux/pxelinux.0 /tftpboot/ #

Serial 0 prompt 1 timeout 99 implicit pxeboot etichetă pxeboot kernel bzImage append ip=dhcp nfsroot=192.168.150.126:/tftpboot/boot root=/dev/nfs init=/sbin/init

Sintaxa sa este similară cu cea a lilo.conf. Se pare că nici comentariile nu sunt necesare.
Dacă trebuie să creați diferite configurații pentru diferite mașini, atunci, în loc de implicit, puteți crea fișiere pentru fiecare adresă MAC separat. Puteți citi mai multe despre acest lucru pe pagina pxelinux.

1. Creați un sistem de fișiere rădăcină
Aceasta este cea mai interesantă întrebare. Aici merită formularea unei enunțuri clare a problemei - pentru ce va fi necesar sistemul? Ce software ar trebui să fie acolo, pe ce hardware va rula și așa mai departe.
În principiu, pentru cea mai simplă descărcare, este suficient un sistem minim de câțiva megaocteți. Imagini și manuale pentru crearea acestora în Google Sea.
Poate fi un sistem de salvare, poate fi un instalator al ceva sau poate fi un sistem desktop cu drepturi depline.
În cazul meu, am nevoie ca sistemul să pornească pe aproape orice hardware și să înceapă propriul program de instalare. Deoarece nu-mi pasă de spațiu, am decis să instalez sistemul implicit debian minimal. Bucurându-mă că am ales odată distribuția corectă, acest lucru s-a dovedit a fi foarte simplu de făcut:

# apt-get install debootstrap ... # debootstrap sarge /tftpboot/boot

Când este finalizat, directorul /tftpboot/boot va avea un sistem complet funcțional, funcțional și bootabil, cu o greutate de aproximativ 140 MB. Puteți să faceți chroot în acest director, să instalați și să eliminați pachete, să schimbați scripturile rc și, în general, să faceți orice doriți. Un astfel de Linux în Linux.

2. Crearea nucleului.
Pentru ca nucleul să poată fi pornit prin rețea, la construirea lui trebuie îndeplinite câteva condiții:
a) activați opțiunea „Opțiuni de rețea -> IP: autoconfigurare -> dhcp” (pentru universalitate, este mai bine să activați și toate opțiunile)
b) activați suportul pentru sistemul de fișiere NFS
c) activați „FS->Network Filesystems->Root Over NFS”.
Aceasta este o parte obligatorie a specificației. Restul depinde de tine. Ce este necesar în acest nucleu, ce nu este necesar. Este mai bine să nu economisiți dimensiunea și să compilați mai multe drivere în ea, dezactivând modulele cu totul, pentru a elimina necesitatea unei porniri în doi pași și a unui fișier initrd.

3. Configurați DHCP.
Instalați serverul:

# apt-get install dhcpd

Edităm fișierul său de configurare (/etc/dhcpd.conf) pentru rețeaua noastră și adăugăm o intrare la acesta pentru mașina noastră victimă:

Gazdă pxeboot (hardware ethernet 08:00:0e:aa:bb:cc; adresă fixă ​​192.168.150.127; nume de fișier „/tftpboot/pxelinux.0”; )

Prefaţă.

Acesta a fost inventat cu mult timp în urmă. În orice caz, într-un articol scris la sfârșitul secolului trecut (1998), autorul numește veche ideea de încărcare a rețelei. Și acest lucru nu este surprinzător, încărcarea sistemului de operare prin rețea este visul oricărui administrator. La urma urmei, sistemul de operare încărcat de pe server va fi întotdeauna „alb și pufos”, și va fi suficient să faceți modificări și actualizări la imaginea de pornire de pe server, în loc să rulați cu o unitate flash în întregul parc de calculatoare.

De ce o idee atât de bună nu este adoptată pe scară largă? Din cauza dificultatii? Nu! Serverele pentru pornirea în rețea sunt configurate destul de simplu, de regulă, cu un fișier text de configurare și, privind în viitor, voi spune că în lanboot_server, fișierele de configurare sunt create automat. În practică, se rezumă la „conectați-l și gata”.

Ce va fi necesar?

    Dacă rețeaua locală nu este configurată, configurați-o. După aceea, nu ezitați să comandați lanboot start și clienții pot porni.

    A opri, respectiv, lanboot stop. În ALTLinux și Ubuntu, va trebui să lucrați cu mâinile, să instalați necesarul și să configurați.

Cu toate acestea, nu totul este atât de înfricoșător. Scriptul de pornire lanboot (/usr/sbin/lanboot) ar trebui să funcționeze și pe alt Linux, de exemplu în Simply Linux (ALT) scriptul a creat fișierele de configurare corecte și serverul a pornit, doar fișierele bootabile în „directorul TFTP” (/var/lib/tftpboot) nu s-a dovedit, iar acest lucru nu este surprinzător, pentru că de unde provin fișierele PuppyRus în ALTLinux.

Hai sa continuăm.

Din ce este făcut.

Pentru a porni Linux prin rețea, avem nevoie de un server tftp (folosind tftp-hpa-5.0), bootp sau dhcp (eu am ales dhcp-4.1.1, deși am folosit bootp la început) și inetd sau xinetd (am ales inetd, este mai simplu).

Cum se configurează.

1. Bootp

    Cel mai simplu.

    Returnează IP-ul legat de adresa MAC a clientului.

    Prin urmare, poate fi utilizat numai în rețele cu un parc permanent de mașini.

Exemplu /etc/bootptab

Parametri utilizați:

td -- directorul TFTP (fișierele vor fi încărcate de aici) - rp -- calea rădăcină (calea către rădăcina serverului) - bf -- bootfile (fișierul de încărcat) - sa -- adresa serverului de pornire (IP server TFTP) - sm -- masca de subrețea (mască de subrețea) - gw -- gateway-uri (gateway) - la -- offset de timp (secunde) - ha -- adresa hardware (hardware, alias adresa MAC) # Puteți scrie fie într-o coloană, fie într-o singură linie . # Setări comune tuturor clienților: .default:td=/var/lib/tftpboot:rp=/var/lib/tftpboot:bf=pxelinux.0:sa=192.168.1.2:sm=255.255.255.0:gw=192.168 . 1.1:to=auto: #or so.default:\ td=/var/lib/tftpboot:\ rp=/var/lib/tftpboot:\ bf=pxelinux.0:\ sa=192.168.1.2:\ sm= 255.255 .255.0:\ gw=192.168.1.1:\ to=auto: # Setări pentru clienții din alte subrețele: #.subnet1:sm=255.255.255.0:gw=192.168.0.1:tc=.default: # Setări individuale pentru fiecare client (exemple): #notick:tc=.default:ha=00140B016592:ip=192.168.1.4: #sharick:tc=.default:ha=0123456789ab:ip=192.168.1.2 #bobick:tc=43876765=. :ip=192.168.1.5 # etc.

2. Dhcpd

Server complet dhcp.

Exemplu /etc/dhcpd.conf

# dhcpd.conf # # Utilizați acest lucru pentru a activa/dezactiva actualizările dinamice dns la nivel global. ddns-update-style none; subnet 192.168.1.0 netmask 255.255.255.0 ( opțiunea routere 192.168.1.1; opțiunea subnet-mask 255.255.255.0; opțiunea broadcast-address 192.168.1.255; interval dynamic 192.168.1.255; interval dynamic 192.168.1.255; ; nume de fișier „pxelinux.0”; )

3.tftp

Server de fișiere cu un protocol simplificat.

Exemplu /etc/exports

#Directoare permise pentru pornirea tftp și montarea nfs (no_root_squash - utilizatorul root permis) /var/lib/tftpboot 192.168.1.0/255.255.255.0(ro,no_root_squash,sync)

4.Inetd

Îl folosim pentru a porni serverul tftp și serverul bootp. Dar poate începe și alte servicii. Fișierul de configurare /etc/inetd.conf. Dosarul este lung, „pentru toate ocaziile”. Prin urmare, privozhk numai liniile necesare.

Exemplu /etc/inetd.conf.

# Această linie pornește serverul tftp tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /var/tftpboot # Această linie pornește serverul bootp bootps dgram udp wait root /usr/sbin/bootpd bootpd -i

5. Xinetd

Funcțiile sunt aceleași ca pentru inetd, dar setările sunt mai complicate. Instalat în Altlinux.

Exemplu /etc/xinetd.conf

# # Fișier de configurare simplu pentru xinetd # # Unele valori implicite și includ /etc/xinetd.d/ valorile implicite ( log_type = SYSLOG authpriv info; log_on_success = PID HOST DURATION; log_on_failure = HOST; instances = 100; per_source = 5; only_from = 1270. .0.1; ) includedir /etc/xinetd.d Pentru fiecare program care este rulat, un fișier de configurare separat este plasat în /etc/xinetd.d Exemplu /etc/xinetd.d/tftp # implicit: off # descriere: Serverul tftp servește fișiere folosind protocolul banal de transfer de fișiere \ #. Protocolul tftp este adesea folosit pentru a porni \ # stații de lucru fără disc, pentru a descărca fișiere de configurare pe imprimantele de rețea, \ # și pentru a începe procesul de instalare pentru unele sisteme de operare. service tftp ( dezactivare = nu; socket_type = dgram; protocol = udp; wait = yes; user = root; server = /usr/sbin/in.tftpd; server_args = -u tftp -s /var/lib/tftpboot; per_source = 11 cps = 100 2 steaguri = IPv4 only_from = 192.168.1.0; )

Setare automată.

Pentru configurarea automată, variabilele sunt preluate din ieșirea comenzilor standard Linux ifconfig și route. Prin urmare, ele pot fi obținute pe orice Linux.

Serv=$(ifconfig | grep inet | grep -v 127.0.0.1 | cut -f 2 -d ":" | cut -f 1 -d " ") mask=$(ifconfig | grep inet | grep -v 127.0.0.1 | cut -f 4 -d ":") poarta=$(route | grep UG | cut -f 10 -d " ") subnet=$(route | grep " U " | cut -f1 -d " ")

Aceste variabile sunt scrise în locurile potrivite în șabloanele fișierelor de configurare conținute în scriptul lanboot. Când scriptul este executat, valorile variabilelor sunt înlocuite în șablon și fișierul de configurare generat în acest fel este trimis „la destinație”. Acest lucru vă scutește de munca de rutină și de erorile umane. Singura condiție indispensabilă: rețeaua trebuie configurată, altfel de unde să obțineți valorile variabilelor.

Scriptul lanboot copiază și fișierele PuppyRus în directorul TFTP: vmlinuz, initrd.gz și pup*-200.sfs, care sunt necesare pentru lansare. Fișierele sunt preluate din sistemul de operare pe care rulează serverul, iar dacă acest sistem nu este PuppyRus, atunci nu există de unde să le obțineți. Prin urmare, pe alte Linux-uri, fișierele de mai sus trebuie plasate în /var/lib/tftpboot manual (prin copiere).