Các bước cài đặt máy chủ khởi động PXE trong Ubuntu Server VM


Câu trả lời:


31

PXE (Môi trường thực thi điện tử Preboot, phát âm là pixie)

Xem Wikipedia: PXE

Làm thế nào nó hoạt động?

Đây là sự hiểu biết của tôi!

PXE_Diagram_en.png

  1. Máy khách được bật nguồn. BIOS quét cho các thiết bị. Sau đó, nó tiếp theo bằng cách tải bộ tải khởi động từ thiết bị cần thiết như được liệt kê trong Thứ tự khởi động / Trình tự khởi động . Nó tải PXE từ ROM card mạng.
  2. PXE (phía khách hàng) phát yêu cầu IP. Máy chủ DHCP trả lời với các thông tin bắt buộc: IP, IP máy chủ tiếp theo (IP máy chủ TFTP), pxelinux.0(tên tệp trình tải bootstrap PXE), ... vv

    PXE_Boot_1.png

  3. PXE (phía máy khách) yêu cầu pxelinux.0tệp từ máy chủ TFTP, tải nó vào RAM sau đó chuyển điều khiển tới pxelinux.0.

    pxelinux.0lấy tệp cấu hình khởi động từ máy chủ TFTP với tên là:
    (nếu nó không tồn tại, nó sẽ thử với cái tiếp theo)

    • UUID
    • MAC
    • IP ở Capital Hex
    • Một phần của IP
    • Giọt để defaulttập tin

    PXE_Boot_2.png

  4. Lựa chọn người dùng hoặc mục menu mặc định. pxelinux.0yêu cầu kernel và RAMDisk tương ứng từ máy chủ TFTP và tải chúng vào RAM.

    Sau đó chuyển tham số khởi động và điều khiển đến kernel đã tải.

    PXE_Linux.png

  5. Kernel tải các phần còn lại từ máy chủ TFTP hoặc bất kỳ máy chủ giao thức nào khác tùy thuộc vào tính năng / thuộc tính của nó.

    Chia tay_Magic_1.png Chia tay_Magic_2.png

Cài đặt máy chủ

Có nhiều cách để thiết lập máy chủ PXE, đây là một trong số đó.

Các hướng dẫn này đã được thử nghiệm trên Ubuntu 9.10 & Ubuntu 10.04 trên máy thật. Chúng vẫn còn hiệu lực với chỉ một vài thay đổi có thể. (Đã cập nhật & thử nghiệm cho Ubuntu 14.04 trên VirtualBox, kiểm tra chỉnh sửa các bản phát hành cũ)

Mục tiêu của tôi là PartedMagic 4.5 , nó tương tự như Ubuntu hoặc bất kỳ bản phân phối Linux nào.

  1. Cài đặt gói DHCP & TFTP

        sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
    
  2. Cài đặt DHCP

    • Chỉnh sửa /etc/default/isc-dhcp-server, giao diện Ethernet cho dịch vụ DHCP

      INTERFACES="eth0"
      
    • Chỉnh sửa /etc/dhcp/dhcpd.conf‬hoặc /etc/ltsp/dhcpd.confnó tồn tại, cấu hình dịch vụ DHCP

      Cấu hình cụ thể của 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;
      }
      
    • Thiết lập IP tĩnh cho eth0, 192.168.10.123trong trường hợp của tôi bằng trình quản lý mạng cho phiên bản Máy tính để bàn hoặc /etc/network/interfacescho phiên bản Máy chủ.

      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
      

      Tái khởi động lại giao diện mạng:

      sudo ifdown eth0
      sudo ifup eth0
      
    • Khởi động lại dịch vụ

      sudo service isc-dhcp-server restart
      

      Kiểm tra trạng thái

      netstat -lu
      

      Đầu ra

      Proto Recv-Q Send-Q Local Address           Foreign Address         State      
      udp        0      0 *:bootpc                *:*                                
      
  3. Thiết lập TFTP

    • Chỉnh sửa ‪/etc/inetd.conf, xóa #<off>#từ đầu tftpdòng hoặc thêm nếu nó không ở dưới #:BOOT:bình luận. (Bỏ qua phần này với systemd, 15.10 trở lên)

      tftp    dgram   udp wait    root    /usr/sbin/in.tftpd  /usr/sbin/in.tftpd -s /var/lib/tftpboot
      
    • Kích hoạt dịch vụ khởi động cho inetd

      sudo update-inetd --enable BOOT
      
    • Bắt đầu dịch vụ

      sudo service openbsd-inetd restart
      sudo service tftpd-hpa restart
      

      Kiểm tra trạng thái

      netstat -lu
      

      Đầu ra

      Proto Recv-Q Send-Q Local Address           Foreign Address         State 
      udp        0      0 *:tftp                  *:*                          
      
  4. Thiết lập tập tin khởi động PXE

    • Giải nén pmagic-pxe-4.5.zip. Nếu pxelinux.0không có, hãy lấy nó từ sysliux-commongói được cài đặt tại /usr/lib/syslinux/pxelinux.0, Syslinux Project hoặc Ubuntu Netboot Image .

      Đặt chúng trong cấu trúc tương tự.

      /var/lib/tftpboot/
       |-- pxelinux.0
       |-- pxelinux.cfg/
       |   `-- default
       `-- pmagic/
           |-- bzimage
           `-- initramfs
      
    • Chỉnh sửa /var/lib/tftpboot/pxelinux.cfg/default, nếu cần đường dẫn ví dụ: 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
      
    • Thiết lập quyền chính xác

      sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
      sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
      

Cài đặt máy khách

Thay đổi thứ tự khởi động BIOS một lần bằng cách sử dụng F9hoặc F12, để thiết lập vĩnh viễn từ cấu hình BIOS DEL, F2hoặc F12. (Tùy thuộc vào thương hiệu máy)

Di chuyển lên đầu : [PXE | NIC | LAN | Ethernet | Network].

Ghi chú

  • inetutils-inetdhoặc xinetdcó thể được sử dụng thay vì openbsd-inetd, một số inetdbước khác nhau.

  • Thư mục gốc TFTP có thể được thay đổi từ /etc/default/tftpd-hpa. Nhớ cập nhật ‪/etc/inetd.confquá.

  • Nhiều phân phối hỗ trợ tải RAMDisk thông qua nhiều giao thức: SSH (SFTP), SMB, NFS ... Ví dụ Ubuntu hỗ trợ NFS.

  • Một số card mạng cũ không hỗ trợ PXE, iPXE ( ví dụ gPXE hoặc Etherboot ) có thể được sử dụng, trên đĩa mềm, ổ USB, Harddisk ( /bootphân vùng) hoặc thậm chí flash nó vào ROM (chỉ hỗ trợ vài NIC). GRUB2 có mô-đun để hỗ trợ khởi động bằng PXE.

    Xem thêm Wikipedia: gPXEROM-O-matic .

  • Ubuntu Netboot Image từ cdimage.ubfox.com/netboot/ cung cấp cài đặt Ubuntu từ mạng và nó sẽ yêu cầu tải xuống tất cả các gói cần thiết từ máy nhân bản chính thức hoặc máy cục bộ nếu bạn có.

    Hầu hết người dùng đang tìm kiếm để khởi động hình ảnh trực tiếp thông qua PXE. Câu hỏi này chỉ để thiết lập một máy chủ PXE. Xem Ubuntu Wiki: Cài đặt - LocalNet

    Ubuntu NetBoot - Gương lưu trữ chính thức Ubuntu NetBoot - Gương lưu trữ tùy chỉnh / cục bộ

  • Menu PXE có thể được tùy chỉnh, mẫu tốt nhất để tìm hiểu là Ubuntu NetBoot . Xem nhiều hình ảnh Pxeboot

    PXE_Linux_Mothy.png

  • memdiskcó thể được sử dụng để tải trực tiếp ISO hoặc hình ảnh đĩa mềm thông qua PXE. syslinux-commongói có một bản sao. Máy khách phải có đủ RAM để giữ hình ảnh cộng với một phần để chạy HĐH đã tải.

    Ví dụ cấu hình:

    /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
    
  • Các gói PartedMagic đã bị loại bỏ khỏi trang web chính thức sau khi nhà phát triển ban đầu quyết định biến nó thành thương mại, một số bản phát hành có thể được tìm thấy thông qua mạng torrent. Câu trả lời của tôi ở đây là sơ yếu lý lịch thiết lập PXE đầu tiên phù hợp với tôi. Ubuntu Netboot Image nên hoạt động với cùng một hướng dẫn.


Các bạn, thật ra tôi đang làm việc trên Pxeboot. Tôi đã cài đặt các gói này trong một máy ảo (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 Tôi chỉnh sửa dhcpd tập tin .conf và có máy chủ dhcp đang chạy
Người mới bắt đầu

@Sneetsher: Xin chào, tôi đang sử dụng tftpd-hda, được định cấu hình với các giá trị mặc định. A netstat -lu | grep tftphiển thị nó trong chế độ nghe. Thư mục / tftpboot là 777, tuy nhiên nếu tôi thử tftp> get pxelinux.0nó từ máy khách, tôi luôn nhận được một tftp: pxelinux.0: Lỗi từ chối cấp phép . Bạn có một ý tưởng để gỡ lỗi nó? Cảm ơn trước.
Danduk82

@ Danduk82, /var/lib/tftpboot/với 755 (mặc định) sẽ ổn. Kiểm tra nếu pxelinux.0có 644 hoặc chạy sudo chmod -R +r /var/lib/tftpboot/để làm cho tất cả nội dung của nó có thể đọc được.
user.dz

1
Xin chào, thực sự tôi đã giải quyết được vấn đề: Thực tế tôi (ngu ngốc) quên khởi động lại dịch vụ DHCP sau khi thêm filename "pxelinux.0";... không bình luận; P ... cảm ơn câu trả lời của bạn và cho câu trả lời tuyệt vời (và đầy đủ) này. Chúc mừng
Danduk82

1
@Matthieu, Bạn có thể tìm thấy một số bản phát hành thông qua mạng torrent, các gói đã bị xóa khỏi trang web chính thức sau khi nhà phát triển ban đầu quyết định biến nó thành thương mại. Ngoài ra, bạn có thể sử dụng cdimage.ubfox.com/netboot nếu bạn chỉ muốn kiểm tra hoặc thiết lập PXE lần đầu tiên.
user.dz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.