PXE
În acest post scurt, am să-ți spun despre realizările practice, dispozitivele fără disc prin intermediul PXE. Să spunem doar că la un anumit punct, nu am fost interesat de această problemă și despre PXE a avut o performanță mediocră, și, probabil, place cel mai mult. Ie Toate dintre noi știu că în PC-urile de astăzi au capacitatea de a porni în rețea, fiecare văzut în BIOS PC-ul propriu, care oportunitate (PXE, LAN Boot), dar foarte puțini oameni folosit în practică. Realizarea de această oportunitate vom face în practică, precum și ia în considerare o aplicație practică în „acasă“ poate avea boot de rețea.
„Laborator de testare“ noastre includ:
- Router Mikrotik 951G-2HnD cu RouterOS v6.39 (stabil)
- Rețeaua de stocare Western Digital My Cloud EX2
Pentru a pune în aplicare PXE nu este în mod necesar prezența unor astfel de dispozitive, de exemplu, De fapt, avem nevoie de un server DHCP, TFTP Server, NFS și / sau HTTP pentru organizarea de stocarea și transmiterea de imagini peste Heavy rețea. Toate aceste componente pot fi instalate, de exemplu, pe un PC obișnuit care rulează Windows, sau, pentru a pune aceeași Ubuntu pe o mașină separată pe rețeaua locală și să configureze toate aceste servicii sunt acolo, manual de bune pe net suficient. Dar, odată ce sa întâmplat că avem Mikrotik'ovsky router si NAS - DHCP + TFTP funcțiile logice încredințate Mikrotik, și NFS / HTTP pe NAS.
De asemenea, avem nevoie de cele mai comune USB Flash'ka, de orice dimensiune, pe care am pus în MikroTik pentru a oferi de stocare pentru fișierele care vor fi date de TFTP. Dacă aveți deja o configurație similară (DHCP + TFTP + NFS + HTTP), atunci puteți începe.
Aici voi prezenta modul în care m-am dus. Inițial, am fost interesat în a face fără disc de boot LiveCD distribuție Ubuntu, adică, la orice PC din rețea, cu sau fără HDD pot fi incluse și pentru a obține ecran funcțional Ubuntu, un sit la în rețea / citit e-mail, etc. O astfel de decizie poate fi convenabilă și în locurile de acces public la organizațiile de Internet, cum ar fi diverse cluburi de calculator, biblioteci, etc. Plus faptul că, atunci când aparatul nu are un HDD și încărcată cu o singură imagine în întreaga rețea pentru a „sparge“ sau strica ceva accidental sau intenționat - utilizatorii pot cu greu. Ie După o sesiune de experiența utilizatorului de pe Internet, puteți reporni PC-ul și totul va fi „ca noi“. Dar, înainte de a continua cu punerea în aplicare a acestei idei, am decis să citesc „ceea ce scrie pe Internet“ la boot rețea Ubuntu, etc. Articolele au găsit doar o mulțime, dar implementări fezabile din beton, care descriu toate nuanțele configurației - a fost pur și simplu nu suficient. Pentru a tine pe aceeași scenă a fost exact aceeași cantitate de cunoștințe pe care am, aici sunt cateva link-uri către articole pe care le-am primit interesat de:
Apoi descărcați arhiva pregătit în prealabil PXE-MikroTik-disk1.rar și extrage conținutul său la rădăcina stick-ul. Acest lucru se poate face atât din meniul de fișiere din interfața web Mikrotik'a sau prin FTP în Mikrotik, bine, sau doar introducerea unui USB Flash formatat la PC și extrage conținutul la rădăcina arhivei. Ca urmare, aceasta trebuie să primească următoarea structură de fișiere (a se vedea captura de ecran pe dreapta).Unele fișiere, cum ar fi kolibri.iso (imaginea Kolibri OS) nu se află în arhiva, deoarece ele pot fi ușor de găsit și descărcate de pe Internet, la fel ca în arhiva nu va fi directorul WinPE de conținut (pentru că toate aceste fișiere au nici CD-ul de instalare cu Windows și pentru a le include în arhivă, eu nu văd sens). Dar, pe de altă parte, vom discuta mai detaliat.
pxelinux.0 - este încărcătorul de boot primar, care sunt trimise tuturor clienților sarcina de rețea server DHCP, care este parte a pachetului syslinux. Totul despre acest încărcător, și biblioteci utilizate de (* .c32) pot fi luate în următoarele pachete:
Ceea ce am luat cu succes. Poate că acest lucru nu este în întregime corectă de a face „amestecătură“ de netboot și syslinux versiuni diferite, dar, de exemplu, memdisk binar terminat, folosit în unele scenarii, descărcare am găsit doar în oricare dintre aceste pachete. Cu cizma fișiere, nuclee, etc. mai mult sau mai puțin clare. Ie aveți un set care ma transformat PXE-MikroTik-disk1.rar și un set de surse din care a fost luată.
ipxe.lkrn aici - este bootloader Open Source Boot Firmware iPXE. compilate de la sursă, cu suport pentru HTTP, NFS (!) și alte caracteristici. Dar vom reveni la ea mai târziu, pentru că nu-mi spui despre asta, eu nu pot, din cauza funcționalității sale extinse (într-o destul de bun numai ipxe, adică pxelinux el pare să nu fie necesară, deoarece ipxe are o funcționalitate largă și configurare convenabilă, dar doar așa sa întâmplat că am început inițial să-l personaliza pxelinux, și abilitatea de a descărca iPXE am adăugat mai târziu).
După ce ați despachetat toate fișierele din arhiva PXE-MikroTik-disk1.rar pe o unitate flash, mergeți la MikroTik în meniul IP -> TFTP și configurați următoarea corespondență în ea: Req. Nume fișier -> Nume fișier Real:
Pentru comoditate, toate aceste reguli sub forma unui script:
Care sunt acestea? După încărcarea pxelinux pe dispozitiv pentru a începe căutarea pentru fișiere și biblioteci suplimentare, de exemplu, aparatul încearcă să se conecteze la serverul TFTP specificat în opțiunile oferite la serverul DHCP și îi solicită, de exemplu, fișierul ldlinux.c32, deci aici este un server TFTP trebuie să știe locația reală a fișierului să-l trimită, de exemplu, în cazul nostru, este în disk1 / tftpboot /ldlinux.c32. Sincer, nu am experiment, puteți specifica dacă potrivirea nu este fișiere și foldere sau fișiere cu măști individuale, astfel încât doar în cazul, face ceea ce este corect pentru toate fișierele de pe serverul TFTP. Odată ce ne-am înregistrat regulile noastre, trebuie să configurați serverul DHCP.
Du-te la fila IP -> DHCP Server -> Rețele din Mikrotik, pentru a alege subrețea noastră și efectuați următoarele setări de acolo:
În acest preparat pentru lansarea primului over. Puteți lua orice PC și să încerce să boot prin rețea. Pentru mine, cea mai simplă soluție este de a crea o mașină virtuală separată în VirtualBox și configurați-l să pornească de la rețea. Ca rezultat, dacă este făcută corect, veți vedea doar un astfel de meniu care e destul de pxelinux:
Însăși configurația acestui meniu în fișierul disk1 / tftpboot / ubuntu-instalator / amd64 / boot-ecrane / menu.cfg. Dacă vom încerca să boot în Kolibri sistem de operare, de exemplu, observăm că transferul ar fi părut mică (doar 66.5 Mb) kolibri.iso imagine prin TFTP, chiar și în rețele gigabit va dura destul de mult timp:
Acest lucru se datorează faptului că protocolul TFTP nu este proiectat pentru a transfera fișiere grele, și în acest sens se execută extrem de lent (plus, după cum știți, port USB Mikrotik'e, și de mare viteză unitate flash USB nu este), asa ca la acest joc, care -Asta imagini grele, de exemplu aceeași Hirens Boot CD-ul, care ia
650 Mb și să dea dispozitivele lor TFTP - se transformă într-o adevărată făină. Ie Georgia - Da, dar oChChen încet. Primul gând care vine în minte - ce se întâmplă dacă, ca mijloc de livrare a conținutului grele nu utilizează TFTP, HTTP sau NFS? Și da, într-adevăr, există o astfel de posibilitate.
Uite atât implementat în configurația (menu.cfg) de încărcare același LiveCD Ubuntu:
Aici kernel-ul și ramdisk vmlinuz.efi initrd.lz am încărcat pe TFTP, dar conținutul rootfs deja luate cu resurse NFS (Ubuntu astfel încât să poată beneficia). Ordinea de creare a directoarelor ubuntu16.04_live_amd64 pe o parte NFS este descrisă aici.
Sau pe scurt, am creat un folder pe WDMyCloud EX2, a permis accesul la acesta pentru NFS:
Apoi montați pe o mașină cu Ubuntu în
/ Și pur și simplu copiați NFS fișierele dintr-un LiveCD cu Ubuntu ea:
Ca rezultat, conținutul ubuntu16.04_live_amd64 dosar am complet identic LiveCD root cu Ubuntu:
Doar? Doar. Acum, încercați să boot-eze din meniul de selectare PXE LiveCD:
Cu o rețea gigabit toate sa întâmplat destul de repede. Cea mai mare parte a timpului este într-adevăr petrecut pentru a descărca vmlinuz.efi (7 Mb) și initrd.lz (27 Mb) privind TFTP. Și aici am ajuns la principal? Este posibil într-un fel pentru a încărca aceste fișiere, de asemenea, cu NFS sau o resursă HTTP? Tu poți! Iar răspunsul aici este de a utiliza în schimb pxelinux (care, din păcate, nu se poate asa), iPXE încărcător. Vă recomandăm insistent să se familiarizeze cu ei și să învețe din exemple, etc. pe site-ul oficial. Arhiva PXE-MikroTik-disk1.rar deja incluse ipxe.lkrn. ma colectate de la HTTP-source activat, NFS, etc.:
Ei bine, ultimul lucru pe care vreau să-ți spun - este vorba de descărcarea de imagini * .wim WinPE prin PXE. Pentru a face acest lucru, în exemplul meu, este folosit iPXE și wimboot. Exemplu de configurare poate fi văzut în pxelinux menu.cfg din elementul de meniu „Load iPXE [wim-boot.ipxe]“. De fapt, există ipxe.lkrn încărcat, care citește fișierul de configurare-boot.ipxe wim. Pur și simplu loc wimboot fișiere, Bootmgr, BCD, boot.sdi și boot.wim distribuție WinPE oriunde în rețea (pe HTTP, resurse NFS) și încărcate totul este mare. Exemplele din nou, a se vedea-boot.ipxe wim.
Apropo, în meniul iPXE SuperBoot există un articol din bradgillap externe Linux instalările. De fapt, acesta este un extern (de exemplu, situat pe internet) meniul de pornire, care vă permite să setați o parte din sistemul de operare bazat pe Linux, și descărca unele opțiuni LiveCD on-line. Ie să instaleze aceeași Ubuntu, de fapt suficient de DHCP numai configurat corect. Orice altceva, chiar și în etapa a meniului de pornire pot fi preluate din rețea.