Puncte:0

Spune-i lui Linux/GRUB să pornească iPXE la următoarea pornire?

drapel se

Tocmai am descoperit minunea care este iPXE.

Rulez diverse versiuni de Debian pe multe computere diferite și aș dori să le spun de la distanță să repornească în iPXE și ca iPXE să pornească automat într-un .iso clonezilla auto-deploy pe care îl am.

Există o modalitate de a-i spune Linux să pornească automat în iPXE la următoarea pornire o dată și ca iPXE să pornească apoi automat într-un .iso de pe un server?

Nikita Kipriyanov avatar
drapel za
Apare o soluție: https://specialistoff.net/question/661 . Pagina este în rusă, dar cred că este clar cum funcționează. Puteți încerca această abordare și puteți scrie (și accepta) un răspuns corect aici în loc de doar un link.
Nikita Kipriyanov avatar
drapel za
(Acesta este, desigur, doar o parte a soluției. Aveți nevoie de un agent care va recrea `grub.cfg` pentru a alege de fapt acest nou element de meniu de pornire.) Așa că aș sugera o soluție *inversă*.
Moritz von Schweinitz avatar
drapel se
Mulțumiri! Acea pagină rusă pare că ești aproape ceea ce vreau să obțin. Mulțumiri!
drapel in
Dacă rulați moștenire, atunci ar trebui să puteți porni ipxe.lkrn din grub, în ​​efi ați putea face ceva similar pentru a porni ipxe.efi, dar ar putea avea erori sau puteți utiliza efibootmgr pentru a trece la netboot la următoarea pornire și apoi utilizați proxydhcp config, vedeți https://ipxe.org/appnote/proxydhcp ca exemplu, apoi utilizați http pentru a obține un script care poate fi dinamic și utilizați serialnumber sau mac dacă aveți nevoie ca acesta să fie automat și configurat.
Puncte:2
drapel za

Eu folosesc o configurație similară, dar în sens invers. În cele din urmă, pot controla de pe server cum pornesc mașinile mele țintă.

Cu toate acestea, nu mă bazez pe grub de pe mașina țintă și nu folosesc iPXE.

În schimb, am instalat un server de boot PXE. Este extrem de greu în zilele noastre să găsești un computer cu încărcare PXE care nu funcționează. Așa că am configurat toate computerele pe care trebuie să le controlez astfel pentru a porni din rețea prin PXE.

Apropo, acest lucru este la fel de posibil cu BIOS-ul de stil vechi și mașinile UEFI moderne și serverul DHCP este cel care face distincția între aceste cazuri și sugerează bootloader-ul adecvat mașinii.

În orice caz, mașinile încarcă o variantă de PXELinux. Are o proprietate îngrijită, prin aceea că caută un fișier de configurare. Mai întâi solicită un fișier de configurare numit după UUID-ul SMBIOS al mașinii, dacă nu este găsit, dacă solicită un fișier numit după adresa MAC a interfeței care a fost pornită, adresa IP și, dacă nimic nu ajută, solicită un fișier Mod implicit.

Deci, puteți crea câteva „configurații de bază”, una care pornește mașinile de pe hard disk local tftp/pxelinux.cfg/harddisk:

harddisk implicit

eticheta harddisk
    localboot 0

iar celălalt, care cizme clonezilla tftp/pxelinux.cfg/clonezilla:

clonezilla implicită

eticheta clonezilla
# instrucțiuni de boot clonezilla aici

și puteți adăuga câteva altele, cum ar fi cea pentru un client subțire fără disc (aceasta este configurația reală pe care am folosit-o cândva):

întindere implicită

întinderea etichetei
    linux thinclient/vmlinuz-4.9.0-7-amd64
    initrd thinclient/initrd.img-4.9.0-7-amd64
    anexați ISCSI_INITIATOR=iqn.1993-08.org.debian:01:a4c444f2b735 ISCSI_TARGET_NAME=iqn.2018-10.ru.rterm.office.test-storage:thinclient.lvm ISCSI_TARGET_IP=193416180000000000000000000000000000000000000000000000000000001 -8ea2-437f-9550-a5503d0e7b21 ip=dhcp quiet

Apoi creați legături simbolice care indică aceste șabloane:

cd tftp/pxelinux.cfg
ln -s clonezilla 01-10-32-54-76-98-ba
ln -s clonezilla 01-dc-fe-10-32-54-76
În -s harddisk 01-98-ba-dc-fe-10-32
Ln -s harddisk 01-54-76-98-ba-dc-fe
Ln -s harddisk implicit
ln -s thinclient 00801536-e3ee-1610-9957-d68a52030736  

În acest exemplu, mașinile cu adrese MAC 10:32:54:76:98:ba și dc:fe:10:32:54:76 va porni a clonezilla fișier de configurare (01 la începutul numelor de fișiere aici înseamnă „Ethernet”), mașina cu UUID 00801536-e3ee-1610-9957-d68a52030736 va porni a client slab config, iar alte mașini vor porni Hard disk, dar cei doi cu MAC-uri specificate vor face acest lucru mai silențios (mai puține jurnalele „fișier nu a fost găsit” pe server și o pornire puțin mai rapidă, deoarece încercarea de descărcare va reuși mai devreme).

Acum, dacă aveți nevoie de o mașină pentru a porni, de exemplu, clonezilla, îi creați sau modificați legătura simbolică pe serverul tftp la clonezilla. După ce a fost pornit, puteți anula modificarea (de exemplu, schimbați în Hard disk sau ce vrei tu).Puteți crea configurații pentru instalarea în rețea Linux â nici nu-mi amintesc când am pornit ultima dată programul de instalare de pe USB, deoarece îl instalez întotdeauna în acest fel de câțiva ani. Puteți utiliza PXELinux include directivă și creați un meniu generic ordonat cu toate aceste opțiuni pentru a le selecta manual și utilizați-l pentru un implicit. Din punct de vedere tehnic, chiar și instalarea Windows este (a fost) posibilă în acest fel. Schema este foarte flexibilă și singurul lucru de care depinde de mașina client este că pornește mai întâi din rețea.

Moritz von Schweinitz avatar
drapel se
Problema mea principală este că nu am control asupra serverului DHCP al rețelei și nu pot trimite cu adevărat informațiile PXE prin DHCP. De aceea, mă uit la iPXE, pentru ca mașina să știe de unde să-și ia imaginea.
drapel in
iPXE este un NBP mai capabil decât ceea ce este PXELinux și poate crea o configurare mult mai curată și mai rapidă decât aceasta.
Nikita Kipriyanov avatar
drapel za
Eu nu mă supăr. Am descris ceea ce am construit acum zece ani. Încă îmi servește foarte bine nevoile (funcționează și pentru VM-uri). Acum nu mai este atât de important, deoarece lucrez de la distanță. Dacă (când) mă întorc la reconstruirea acestui lucru, s-ar putea să-i dau o șansă sau pot folosi și GRUB cu boot net mai eficient.
Puncte:0
drapel se

Am adăugat pur și simplu o intrare iPXE (cu un „script” iPXE într-un fișier initrd) la /etc/grub.d/ (începând cu „99”, astfel încât să fie la sfârșitul listei), apoi rulați update-grub, apoi a fugit

grub-reboot `egrep '^menuen' /boot/grub/grub.cfg |wc -l`; repornire;

aceasta contează pur și simplu meniuri în fișierul grub.cfg și îi spune grub-reboot să pornească cu ultima opțiune la următoarea repornire.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.