ฉันจะติดตั้งเครื่องเสมือน Ubuntu โดยใช้เซิร์ฟเวอร์บูต PXE ได้อย่างไร
ฉันต้องการรายละเอียดการกำหนดค่าทั้งหมดและสิ่งที่ต้องเปลี่ยนแปลงในไฟล์การกำหนดค่า
ฉันจะติดตั้งเครื่องเสมือน Ubuntu โดยใช้เซิร์ฟเวอร์บูต PXE ได้อย่างไร
ฉันต้องการรายละเอียดการกำหนดค่าทั้งหมดและสิ่งที่ต้องเปลี่ยนแปลงในไฟล์การกำหนดค่า
คำตอบ:
ดูที่Wikipedia: PXE
นี่คือความเข้าใจของฉัน!
PXE (ฝั่งไคลเอ็นต์) กระจายการร้องขอสำหรับ IP เซิร์ฟเวอร์ DHCP ตอบกลับพร้อมข้อมูลที่จำเป็น: IP, IP เซิร์ฟเวอร์ถัดไป (IP เซิร์ฟเวอร์ TFTP), pxelinux.0
(ชื่อไฟล์ตัวโหลดบูต PXE), ... ฯลฯ
PXE (ฝั่งไคลเอ็นต์) ขอpxelinux.0
ไฟล์จากเซิร์ฟเวอร์ TFTP โหลดไปยัง RAM pxelinux.0
แล้วผ่านการควบคุม
pxelinux.0
รับไฟล์การตั้งค่าการบู๊ตจากเซิร์ฟเวอร์ TFTP ที่มีชื่อเป็น:
(หากไม่มีอยู่จะลองทำในครั้งถัดไป)
default
ไฟล์อาจเป็นตัวเลือกผู้ใช้หรือรายการเมนูเริ่มต้น pxelinux.0
ร้องขอเคอร์เนลและ RAMDisk ที่สอดคล้องกันจากเซิร์ฟเวอร์ TFTP และโหลดไปยัง RAM
จากนั้นผ่านพารามิเตอร์การบู๊ตและควบคุมไปยังเคอร์เนลที่โหลด
เคอร์เนลโหลดส่วนที่เหลือจากเซิร์ฟเวอร์ TFTP หรือเซิร์ฟเวอร์โปรโตคอลอื่น ๆ ขึ้นอยู่กับคุณสมบัติ / คุณสมบัติของมัน
มีหลายวิธีในการตั้งค่าเซิร์ฟเวอร์ PXE นี่เป็นหนึ่งในนั้น
คำแนะนำเหล่านี้ทดสอบบนUbuntu 9.10และUbuntu 10.04บนเครื่องจริง ควรจะยังคงใช้ได้เมื่อมีการเปลี่ยนแปลงเพียงเล็กน้อยเท่านั้น (อัปเดต & ทดสอบสำหรับ Ubuntu 14.04 บน VirtualBox ตรวจสอบการแก้ไขสำหรับรุ่นเก่า)
เป้าหมายของฉันคือPartedMagic 4.5มันควรจะคล้ายกับ Ubuntu หรือการกระจาย Linux ใด ๆ
ติดตั้งแพ็คเกจ DHCP & TFTP
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
ตั้งค่า DHCP
แก้ไข/etc/default/isc-dhcp-server
อินเตอร์เฟส Ethernet สำหรับบริการ DHCP
INTERFACES="eth0"
แก้ไข/etc/dhcp/dhcpd.conf
หรือ/etc/ltsp/dhcpd.conf
มีอยู่, การกำหนดค่าบริการ DHCP
การกำหนดค่าเฉพาะของ PXE: filename
&next-server
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.123;
option broadcast-address 192.168.10.255;
filename "pxelinux.0";
next-server 192.168.10.123;
}
การตั้งค่า IP แบบคงที่สำหรับeth0
, 192.168.10.123
ในกรณีของฉันโดยใช้ผู้จัดการเครือข่ายฉบับสก์ท็อปหรือ/etc/network/interfaces
ฉบับเซิร์ฟเวอร์
auto eth0
iface eth0 inet static
address 192.168.10.123
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
กำหนดค่าเริ่มต้นใหม่ให้กับส่วนต่อประสานเครือข่าย:
sudo ifdown eth0
sudo ifup eth0
เริ่มบริการใหม่
sudo service isc-dhcp-server restart
ตรวจสอบสถานะ
netstat -lu
เอาท์พุต
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
การตั้งค่า TFTP
แก้ไข/etc/inetd.conf
ลบออก#<off>#
จากจุดเริ่มต้นของtftp
บรรทัดหรือเพิ่มหากไม่มีอยู่ใต้#:BOOT:
ความคิดเห็น (ข้ามสิ่งนี้ด้วย systemd, 15.10 และใหม่กว่า)
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
เปิดใช้งานบริการบู๊ตสำหรับ inetd
sudo update-inetd --enable BOOT
เริ่มบริการ
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
ตรวจสอบสถานะ
netstat -lu
เอาท์พุต
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
การตั้งค่าไฟล์บูต PXE
pmagic-pxe-4.5.zip
เปิดเครื่องรูด ถ้าpxelinux.0
ไม่ได้มีได้รับจากsysliux-common
แพคเกจติดตั้งที่/usr/lib/syslinux/pxelinux.0
, syslinux โครงการหรืออูบุนตู NetBoot ภาพ
วางไว้ในโครงสร้างที่คล้ายกัน
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
แก้ไข/var/lib/tftpboot/pxelinux.cfg/default
หากต้องการตัวอย่างเส้นทาง: pmagic/bzimage
&pmagic/initramfs
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
ตั้งค่าสิทธิ์ที่ถูกต้อง
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
เปลี่ยน BIOS ลำดับการบูตหนึ่งครั้งใช้F9หรือF12สำหรับการติดตั้งอย่างถาวรจากการกำหนดค่า BIOS DEL, หรือF2 F12(ขึ้นอยู่กับยี่ห้อเครื่อง)
เลื่อนไปด้านบน: [PXE | NIC | LAN | Ethernet | Network]
.
inetutils-inetd
หรือxinetd
สามารถใช้แทนได้openbsd-inetd
บางinetd
ขั้นตอนจะแตกต่างกัน
ไดเรกทอรีราก TFTP สามารถเปลี่ยนแปลง/etc/default/tftpd-hpa
ได้ อย่าลืมอัพเดท/etc/inetd.conf
ด้วย
การกระจายจำนวนมากรองรับการโหลด RAMDisk ผ่านโปรโตคอลจำนวนมาก: SSH (SFTP), SMB, NFS ... ตัวอย่าง Ubuntu รองรับ NFS
การ์ดเครือข่ายเก่าบางรุ่นไม่รองรับ PXE, iPXE ( เช่น gPXE หรือ Etherboot ) สามารถใช้ได้ทั้งบนฟลอปปี้ดิสก์, ไดรฟ์ USB, Harddisk ( /boot
พาร์ติชั่น) หรือแม้แต่แฟลชไปยัง ROM (รองรับ NIC เพียงไม่กี่ตัว) GRUB2 มีโมดูลรองรับการบูทโดยใช้ PXE
ดูยังวิกิพีเดีย: gPXEและรอม-o-matic
Ubuntu Netboot Image จากcdimage.ubuntu.com/netboot/ ให้การติดตั้ง Ubuntu จากเครือข่ายและมันจะขอให้ดาวน์โหลดแพคเกจที่จำเป็นทั้งหมดจากมิเรอร์อย่างเป็นทางการหรือท้องถิ่นถ้าคุณมี
ผู้ใช้ส่วนใหญ่กำลังค้นหาการบูตรูปภาพสดผ่าน PXE คำถามนี้เป็นเพียงการตั้งค่าเซิร์ฟเวอร์ PXE ดูUbuntu Wiki: การติดตั้ง - LocalNet
PXE เมนูสามารถปรับแต่งแม่แบบที่ดีที่สุดที่จะเรียนรู้จากการเป็นอูบุนตู NetBoot ดูPxeboot หลายภาพ
memdisk
สามารถใช้เพื่อโหลดภาพ ISO หรือฟลอปปี้ดิสก์โดยตรงผ่าน PXE syslinux-common
แพคเกจมีสำเนา ไคลเอนต์ควรมี RAM เพียงพอที่จะเก็บภาพรวมส่วนสำหรับการเรียกใช้ระบบปฏิบัติการที่โหลด
ตัวอย่างการกำหนดค่า:
/var/lib/tftpboot/
|-- FDSTD.144
|-- memdisk
|-- pxelinux.0
|-- slitaz-cooking.iso
|-- pxelinux.cfg
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
/pxelinux.cfg/default
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
LABEL slitaz
MENU LABEL ^Slitaz.iso
TEXT HELP
Testing boot from iso.
ENDTEXT
KERNEL memdisk
APPEND initrd=slitaz-cooking.iso
LABEL freedos_std
MENU LABEL ^FreeDOS STD
TEXT HELP
Testing boot from Floppy IMG.
ENDTEXT
KERNEL memdisk
APPEND initrd=FDSTD.144
แพคเกจ PartedMagic ถูกลบจากเว็บไซต์อย่างเป็นทางการหลังจากผู้พัฒนาดั้งเดิมตัดสินใจที่จะทำการค้าบางรุ่นสามารถพบได้ผ่านเครือข่ายฝนตกหนัก คำตอบของฉันที่นี่คือประวัติย่อของการตั้งค่า PXE ครั้งแรกที่เหมาะกับฉัน Ubuntu Netboot Imageควรทำงานด้วยคำแนะนำเดียวกัน
netstat -lu | grep tftp
แสดงในโหมดฟัง โฟลเดอร์ / tftpboot คือ 777 แต่ถ้าฉันลองtftp> get pxelinux.0
จากไคลเอนต์ฉันจะได้รับข้อผิดพลาดtftp: pxelinux.0: การอนุญาตถูกปฏิเสธเสมอ คุณมีความคิดที่จะแก้ปัญหาหรือไม่ ขอบคุณล่วงหน้า.
/var/lib/tftpboot/
มี 755 (ค่าเริ่มต้น) ควรเป็น ok ตรวจสอบว่าpxelinux.0
มี 644 หรือเรียกใช้sudo chmod -R +r /var/lib/tftpboot/
เพื่อให้สามารถอ่านเนื้อหาทั้งหมดได้หรือไม่
filename "pxelinux.0";
... ไม่มีความคิดเห็น P ... ขอบคุณสำหรับคำตอบของคุณและคำตอบที่ดี (และสมบูรณ์) นี้ ไชโย