Langkah-langkah Instalasi Server PXE Boot di Ubuntu Server VM


Jawaban:


31

PXE (Preboot eXecution Environment, pixie diucapkan)

Lihat Wikipedia: PXE

Bagaimana itu bekerja?

Ini pemahaman saya!

PXE_Diagram_en.png

  1. Mesin klien dihidupkan. Pemindaian BIOS untuk perangkat. Kemudian ia mengikuti dengan mencoba memuat boot-loader dari perangkat yang diperlukan seperti yang tercantum dalam Urutan / Urutan Booting . Ini memuat PXE dari ROM kartu jaringan.
  2. 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

    PXE_Boot_1.png

  3. 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)

    • UUID
    • MAC
    • IP dalam Capital Hex
    • Sebagian dari IP
    • Drops ke defaultfile

    PXE_Boot_2.png

  4. Entah pilihan pengguna atau entri menu default. pxelinux.0meminta kernel dan RAMDisk yang sesuai dari server TFTP dan memuatnya ke RAM.

    Kemudian melewati parameter boot dan kontrol ke kernel yang dimuat.

    PXE_Linux.png

  5. Kernel memuat bagian yang tersisa dari server TFTP atau server protokol lain tergantung fitur / propertinya.

    Parted_Magic_1.png Parted_Magic_2.png

Pengaturan Server

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.

  1. Instal paket DHCP & TFTP

        sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
    
  2. Pengaturan DHCP

    • Edit /etc/default/isc-dhcp-server, antarmuka Ethernet untuk layanan DHCP

      INTERFACES="eth0"
      
    • Edit /etc/dhcp/dhcpd.conf‬atau /etc/ltsp/dhcpd.confmemang 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.123dalam kasus saya menggunakan manajer jaringan untuk edisi Desktop atau /etc/network/interfacesuntuk 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                *:*                                
      
  3. Pengaturan TFTP

    • Edit ‪/etc/inetd.conf, hapus #<off>#dari awal tftpbaris 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                  *:*                          
      
  4. Pengaturan file boot PXE

    • Unzip pmagic-pxe-4.5.zip. Jika pxelinux.0tidak ada, dapatkan dari sysliux-commonpaket 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 {} \;
      

Pengaturan Klien

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].

Catatan

  • inetutils-inetdatau xinetddapat digunakan sebagai gantinya openbsd-inetd, beberapa inetdlangkah berbeda.

  • Direktori root TFTP dapat diubah dari /etc/default/tftpd-hpa. Ingatlah untuk memperbarui ‪/etc/inetd.confjuga.

  • 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 ( /bootpartisi) 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

    Ubuntu NetBoot - Cermin arsip resmi Ubuntu NetBoot - Cermin arsip Kustom / Lokal

  • PXE Menu dapat disesuaikan, templat terbaik untuk dipelajari adalah Ubuntu NetBoot . Lihat Pxeboot Banyak gambar

    PXE_Linux_Menu.png

  • memdiskdapat digunakan untuk memuat langsung ISO atau gambar floppy disk melalui PXE. syslinux-commonpaket 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.


Teman, Sebenarnya saya sedang mengerjakan Pxeboot. Saya menginstal paket-paket ini dalam satu mesin virtual (Oracle Virtualbox), apt-get install nfs-kernel-server apt-get install tftpd-hpa inetutils-inetd apt-get install syslinux apt-get install isc-dhcp-server Saya edit dhcpd File .conf dan menjalankan server dhcp
Beginner

@Sneetsher: Hai, saya menggunakan tftpd-hda, dikonfigurasi dengan nilai default. A netstat -lu | grep tftpmenunjukkannya dalam mode mendengarkan. Folder / tftpboot adalah 777, namun jika saya mencoba tftp> get pxelinux.0dari klien saya selalu mendapatkan tftp: pxelinux.0: Izin ditolak kesalahan. Apakah Anda punya ide untuk men-debug-nya? Terima kasih sebelumnya.
Danduk82

@ Danduk82, /var/lib/tftpboot/dengan 755 (default) harusnya ok. Periksa apakah pxelinux.0memiliki 644 atau jalankan sudo chmod -R +r /var/lib/tftpboot/agar semua isinya dapat dibaca.
user.dz

1
Hai, sebenarnya saya telah memecahkan masalah: Sebenarnya saya (bodohnya) lupa untuk me-restart layanan DHCP setelah menambahkan filename "pxelinux.0";... tidak ada komentar; P ... terima kasih atas jawaban Anda dan untuk jawaban yang hebat ini (dan lengkap). Cheers
Danduk82

1
@Matthieu, Anda mungkin menemukan beberapa rilis melalui jaringan torrent, paket-paket dijatuhkan dari situs resmi setelah pengembang asli memutuskan untuk membuatnya komersial. Anda juga dapat menggunakan cdimage.ubuntu.com/netboot jika Anda ingin menguji atau mengatur PXE untuk pertama kalinya.
user.dz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.