Score:0

บอกให้ Linux/GRUB เริ่ม iPXE ในการบู๊ตครั้งหน้า?

ธง se

ฉันเพิ่งค้นพบความมหัศจรรย์ที่เป็น iPXE

ฉันใช้ Debian เวอร์ชันต่างๆ บนคอมพิวเตอร์หลายเครื่อง และต้องการบอกให้พวกเขารีบูตจากระยะไกลเป็น iPXE และให้ iPXE บูตโดยอัตโนมัติใน clonezilla auto-deploy .iso ที่ฉันมี

มีวิธีบอก Linux ให้บูตเข้าสู่ iPXE โดยอัตโนมัติในการบูตครั้งถัดไปหรือไม่ และให้ iPXE บูตจากเซิร์ฟเวอร์เป็น .iso โดยอัตโนมัติ

Nikita Kipriyanov avatar
za flag
มีวิธีแก้ไขปรากฏขึ้น: https://specialistoff.net/question/661 . หน้านี้เป็นภาษารัสเซีย แต่ฉันคิดว่ามันชัดเจนว่ามันทำงานอย่างไร คุณสามารถลองใช้วิธีนี้ และเขียน (และยอมรับ) คำตอบที่เหมาะสมที่นี่ แทนที่จะเป็นเพียงลิงก์
Nikita Kipriyanov avatar
za flag
(แน่นอนว่านี่เป็นเพียงส่วนหนึ่งของวิธีแก้ปัญหา คุณต้องมีเอเจนต์ซึ่งจะสร้าง `grub.cfg` ขึ้นมาใหม่เพื่อเลือกรายการเมนูบู๊ตใหม่นี้) ดังนั้นฉันขอแนะนำวิธีแก้ปัญหา *ย้อนกลับ*
Moritz von Schweinitz avatar
se flag
ขอบคุณ! หน้าภาษารัสเซียนั้นดูเหมือนว่าคุณเกือบจะเป็นสิ่งที่ฉันต้องการบรรลุ ขอบคุณ!
in flag
หากคุณใช้รุ่นเก่าคุณควรจะสามารถบูต ipxe.lkrn จาก grub ใน efi คุณสามารถทำสิ่งที่คล้ายกันเพื่อเริ่ม ipxe.efi แต่นั่นอาจเป็นปัญหาหรือคุณสามารถใช้ efibootmgr เพื่อเปลี่ยนเป็น netboot ในการเริ่มต้นครั้งถัดไปและ จากนั้นใช้การกำหนดค่า proxydhcp ดู https://ipxe.org/appnote/proxydhcp เป็นตัวอย่าง จากนั้นใช้ http เพื่อรับสคริปต์ที่สามารถเป็นไดนามิกและใช้หมายเลขซีเรียลหรือ mac หากคุณต้องการให้เป็นแบบอัตโนมัติและกำหนดค่า
Score:2
ธง za

ฉันใช้การตั้งค่าที่คล้ายกัน แต่ ในทางกลับกัน. ในท้ายที่สุด ฉันสามารถควบคุมจากเซิร์ฟเวอร์ว่าเครื่องเป้าหมายของฉันบูตอย่างไร

อย่างไรก็ตาม ฉันไม่พึ่งพา grub บนเครื่องเป้าหมาย และฉันไม่ได้ใช้ iPXE

ฉันติดตั้งเซิร์ฟเวอร์บูต PXE แทน ทุกวันนี้การหาคอมพิวเตอร์ที่บูท PXE ที่ไม่ทำงานเป็นเรื่องยากมาก ดังนั้นฉันจึงกำหนดค่าคอมพิวเตอร์ทุกเครื่องที่ฉันต้องการควบคุมด้วยวิธีนี้เพื่อบูตจากเครือข่ายผ่าน PXE

อย่างไรก็ตาม สิ่งนี้เป็นไปได้เท่าเทียมกันกับ BIOS แบบเก่าและเครื่อง UEFI สมัยใหม่ และเป็นเซิร์ฟเวอร์ DHCP ที่แยกความแตกต่างระหว่างกรณีเหล่านี้และแนะนำ bootloader ที่เหมาะสมให้กับเครื่อง

ไม่ว่าในกรณีใด เครื่องจะโหลด PXELinux บางรุ่น มันมีคุณสมบัติเรียบร้อยในการค้นหาไฟล์ปรับแต่ง ก่อนอื่นจะขอไฟล์กำหนดค่าที่ตั้งชื่อตามเครื่อง SMBIOS UUID หากไม่พบ หากขอไฟล์ที่ตั้งชื่อตามที่อยู่ MAC ของอินเทอร์เฟซที่บูท ที่อยู่ IP และถ้าไม่มีอะไรช่วย ก็จะขอไฟล์ ค่าเริ่มต้น.

ดังนั้นคุณสามารถสร้าง "การกำหนดค่าพื้นฐาน" ซึ่งบูทเครื่องจากฮาร์ดดิสก์ในเครื่อง tftp/pxelinux.cfg/harddisk:

ฮาร์ดดิสเริ่มต้น

ติดฉลากฮาร์ดดิส
    โลคัลบูต 0

และอีกอันซึ่งบูต clonezilla tftp/pxelinux.cfg/clonezilla:

clonezilla เริ่มต้น

ป้ายกำกับโคลนซิลลา
# คำแนะนำในการบู๊ต clonezilla ที่นี่

และคุณอาจเพิ่มตัวอื่นๆ อีกหลายอย่าง เช่น ตัวสำหรับไคลเอ็นต์แบบบางที่ไม่มีดิสก์ (นี่คือการกำหนดค่าจริงที่ฉันเคยใช้):

ยืดเริ่มต้น

ยืดฉลาก
    ลินุกซ์ thinclient/vmlinuz-4.9.0-7-amd64
    initrd thinclient/initrd.img-4.9.0-7-amd64
    ต่อท้าย 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=192.168.168.113 ISCSI_TARGET_PORT=3260 root=UcaUID3=UcaUID3=UcaUID3 -8ea2-437f-9550-a5503d0e7b21 ip=dhcp เงียบ

จากนั้นคุณสร้าง symlink ที่ชี้ไปที่เทมเพลตเหล่านี้:

ซีดี tftp/pxelinux.cfg
ln -s โคลนซิลลา 01-10-32-54-76-98-ba
ln -s โคลนซิลลา 01-dc-fe-10-32-54-76
ln -s ฮาร์ดดิสก์ 01-98-ba-dc-fe-10-32
ln -s ฮาร์ดดิสก์ 01-54-76-98-ba-dc-fe
ln -s ค่าเริ่มต้นของฮาร์ดดิสก์
ln -s thinclient 00801536-e3ee-1610-9957-d68a52030736  

ในตัวอย่างนี้ เครื่องที่มีที่อยู่ MAC 10:32:54:76:98:บ้า และ dc:fe:10:32:54:76 จะบูต โคลนซิลล่า ไฟล์คอนฟิก (01 ที่จุดเริ่มต้นของชื่อไฟล์ในที่นี้หมายถึง "Ethernet") เครื่องที่มี UUID 00801536-e3ee-1610-9957-d68a52030736 จะบูต ทินไคลเอนต์ config แล้วเครื่องอื่นจะบูท ฮาร์ดดิสก์แต่ทั้งสองที่มี MAC ที่ระบุจะทำสิ่งนี้ได้เงียบกว่า (บันทึก "ไม่พบไฟล์" น้อยกว่าบนเซิร์ฟเวอร์และบูตเร็วขึ้นเล็กน้อยเนื่องจากความพยายามในการดาวน์โหลดจะสำเร็จก่อนหน้านี้)

ตอนนี้ ถ้าคุณต้องการให้เครื่องบูต เช่น clonezilla คุณต้องสร้างหรือเปลี่ยน symlink ของมัน บนเซิร์ฟเวอร์ tftp ถึง โคลนซิลล่า. หลังจากบู๊ตแล้ว คุณสามารถเปลี่ยนกลับการเปลี่ยนแปลงได้ (เช่น เปลี่ยนเป็น ฮาร์ดดิสก์ หรืออะไรก็ตามที่คุณต้องการ)คุณสามารถสร้างการกำหนดค่าสำหรับการติดตั้งเครือข่าย Linux â ฉันจำไม่ได้ด้วยซ้ำว่าฉันบูตตัวติดตั้งจาก USB ครั้งล่าสุดเมื่อใด เพราะฉันมักจะติดตั้งด้วยวิธีนี้มาหลายปีแล้ว คุณสามารถใช้ PXELinux รวม คำสั่งและสร้างเมนูทั่วไปเรียบร้อยพร้อมตัวเลือกทั้งหมดเหล่านี้เพื่อเลือกด้วยมือและใช้เป็นค่าเริ่มต้นแทน ในทางเทคนิคแล้ว แม้แต่การติดตั้ง Windows ก็สามารถทำได้ด้วยวิธีนี้ โครงร่างมีความยืดหยุ่นมากและสิ่งเดียวที่ขึ้นอยู่กับเครื่องไคลเอ็นต์คือบูตจากเครือข่ายก่อน

Moritz von Schweinitz avatar
se flag
ปัญหาหลักของฉันคือฉันไม่สามารถควบคุมเซิร์ฟเวอร์ DHCP ของเครือข่ายได้ และไม่สามารถส่งข้อมูล PXE ผ่าน DHCP ได้ นั่นเป็นเหตุผลที่ฉันกำลังมองหา iPXE เพื่อให้เครื่องรู้ว่าจะรับภาพจากที่ใด
in flag
iPXE เป็น NBP ที่มีความสามารถมากกว่า PXELinux และสามารถสร้างการตั้งค่าที่สะอาดและรวดเร็วกว่านี้มาก
Nikita Kipriyanov avatar
za flag
ฉันไม่รังเกียจ ฉันอธิบายสิ่งที่ฉันสร้างเมื่อสิบปีที่แล้ว มันยังคงตอบสนองความต้องการของฉันได้เป็นอย่างดี (ทำงานสำหรับ VM ด้วย) ตอนนี้มันไม่สำคัญเท่าไหร่ เพราะฉันทำงานจากระยะไกล ถ้า (เมื่อไหร่) ฉันกลับไปสร้างสิ่งนี้ใหม่ ฉันอาจลองดู หรือฉันสามารถใช้ GRUB ที่บูตด้วยเน็ตได้อย่างมีประสิทธิภาพมากขึ้น
Score:0
ธง se

ฉันเพิ่งเพิ่มรายการ iPXE (ด้วย 'สคริปต์' ของ iPXE ในไฟล์ initrd) ไปที่ /etc/grub.d/ (เริ่มต้นด้วย '99' เพื่อให้อยู่ท้ายรายการ) จากนั้นเรียกใช้ ปรับปรุงด้วงแล้ววิ่ง

ด้วงรีบูต `egrep '^menuen' /boot/grub/grub.cfg |wc -l`; รีบูต;

นี้เพียงแค่นับ รายการเมนู ในไฟล์ grub.cfg และบอกให้ grub-reboot บูตเข้าสู่ตัวเลือกสุดท้ายในการรีบูตครั้งถัดไป

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา