Jawaban:
Lihat Wikipedia: PXE
Ini pemahaman saya!
PXE (sisi klien) menyiarkan permintaan untuk IP. Server DHCP membalas dengan informasi yang diperlukan: IP, IP Server Berikutnya (IP server TFTP), pxelinux.0
(nama file loader bootstrap PXE), ... dll
Permintaan PXE (sisi klien) pxelinux.0
file dari server TFTP, memuatnya ke RAM kemudian memberikan kontrol ke pxelinux.0
.
pxelinux.0
mendapat file konfigurasi boot dari server TFTP dengan nama sebagai:
(jika tidak ada, coba yang berikutnya)
default
fileEntah pilihan pengguna atau entri menu default. pxelinux.0
meminta kernel dan RAMDisk yang sesuai dari server TFTP dan memuatnya ke RAM.
Kemudian melewati parameter boot dan kontrol ke kernel yang dimuat.
Kernel memuat bagian yang tersisa dari server TFTP atau server protokol lain tergantung fitur / propertinya.
Ada banyak cara untuk mengatur server PXE, ini adalah salah satunya.
Instruksi ini diuji pada Ubuntu 9,10 & Ubuntu 10,04 pada mesin nyata. Mereka harus tetap valid dengan hanya beberapa perubahan mungkin. (Diperbarui & Diuji untuk Ubuntu 14.04 di VirtualBox, periksa edit revisi untuk rilis lama)
Target saya adalah PartedMagic 4.5 , harus mirip dengan Ubuntu atau distribusi Linux apa pun.
Instal paket DHCP & TFTP
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
Pengaturan DHCP
Edit /etc/default/isc-dhcp-server
, antarmuka Ethernet untuk layanan DHCP
INTERFACES="eth0"
Edit /etc/dhcp/dhcpd.conf
atau /etc/ltsp/dhcpd.conf
memang ada, konfigurasi layanan DHCP
Konfigurasi khusus 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;
}
Siapkan IP statis untuk eth0
, 192.168.10.123
dalam kasus saya menggunakan manajer jaringan untuk edisi Desktop atau /etc/network/interfaces
untuk edisi Server.
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
Inisialisasi ulang antarmuka jaringan:
sudo ifdown eth0
sudo ifup eth0
Mulai kembali layanan
sudo service isc-dhcp-server restart
Periksa status
netstat -lu
Keluaran
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
Pengaturan TFTP
Edit /etc/inetd.conf
, hapus #<off>#
dari awal tftp
baris atau tambahkan jika tidak ada di bawah #:BOOT:
komentar. (Lewati ini dengan systemd, 15.10 dan yang lebih baru)
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Aktifkan layanan boot untuk inetd
sudo update-inetd --enable BOOT
Memulai layanan
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
Periksa status
netstat -lu
Keluaran
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
Pengaturan file boot PXE
Unzip pmagic-pxe-4.5.zip
. Jika pxelinux.0
tidak ada, dapatkan dari sysliux-common
paket yang diinstal di /usr/lib/syslinux/pxelinux.0
, Syslinux Project atau Ubuntu Netboot Image .
Tempatkan mereka dalam struktur yang sama.
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
Edit /var/lib/tftpboot/pxelinux.cfg/default
, jika perlu jalur contoh: 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
Siapkan izin yang benar
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
Ubah urutan boot BIOS untuk satu kali menggunakan F9atau F12, untuk pengaturan permanen dari konfigurasi BIOS DEL, F2atau F12. (Tergantung pada merek mesin)
Pindah ke atas: [PXE | NIC | LAN | Ethernet | Network]
.
inetutils-inetd
atau xinetd
dapat digunakan sebagai gantinya openbsd-inetd
, beberapa inetd
langkah berbeda.
Direktori root TFTP dapat diubah dari /etc/default/tftpd-hpa
. Ingatlah untuk memperbarui /etc/inetd.conf
juga.
Banyak distribusi mendukung memuat RAMDisk melalui banyak protokol: SSH (SFTP), SMB, NFS ... Contoh Ubuntu mendukung NFS.
Beberapa kartu jaringan lama tidak mendukung PXE, iPXE ( Ex. GPXE atau Etherboot ) dapat digunakan, baik pada floppy disk, drive USB, Harddisk ( /boot
partisi) atau bahkan mem- flash-nya ke ROM (hanya beberapa NIC yang didukung). GRUB2 memiliki modul untuk mendukung boot menggunakan PXE.
Lihat juga Wikipedia: gPXE dan ROM-O-matic .
Ubuntu Netboot Image dari cdimage.ubuntu.com/netboot/ menyediakan instalasi Ubuntu dari jaringan dan akan meminta untuk mengunduh semua paket yang diperlukan dari mirror resmi atau lokal jika Anda memilikinya.
Sebagian besar pengguna mencari untuk mem-boot image langsung melalui PXE. Pertanyaan ini hanya untuk menyiapkan server PXE. Lihat Wiki Ubuntu: Instalasi - LocalNet
PXE Menu dapat disesuaikan, templat terbaik untuk dipelajari adalah Ubuntu NetBoot . Lihat Pxeboot Banyak gambar
memdisk
dapat digunakan untuk memuat langsung ISO atau gambar floppy disk melalui PXE. syslinux-common
paket memiliki salinan. Klien harus memiliki RAM yang cukup untuk menyimpan gambar plus porsi untuk menjalankan OS yang dimuat.
Contoh konfigurasi:
/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
Paket PartedMagic dijatuhkan dari situs resmi setelah pengembang asli memutuskan untuk membuatnya komersial, beberapa rilis dapat ditemukan melalui jaringan torrent. Jawaban saya di sini adalah resume dari pengaturan PXE pertama yang bekerja untuk saya. Ubuntu Netboot Image harus bekerja dengan instruksi yang sama.
netstat -lu | grep tftp
menunjukkannya dalam mode mendengarkan. Folder / tftpboot adalah 777, namun jika saya mencoba tftp> get pxelinux.0
dari klien saya selalu mendapatkan tftp: pxelinux.0: Izin ditolak kesalahan. Apakah Anda punya ide untuk men-debug-nya? Terima kasih sebelumnya.
/var/lib/tftpboot/
dengan 755 (default) harusnya ok. Periksa apakah pxelinux.0
memiliki 644 atau jalankan sudo chmod -R +r /var/lib/tftpboot/
agar semua isinya dapat dibaca.
filename "pxelinux.0";
... tidak ada komentar; P ... terima kasih atas jawaban Anda dan untuk jawaban yang hebat ini (dan lengkap). Cheers