Ubuntu Server VM 中的 PXE 启动服务器安装步骤

Ubuntu Server VM 中的 PXE 启动服务器安装步骤

如何使用 PXE 启动服务器安装 Ubuntu 虚拟机?

我需要所有的配置细节以及配置文件中需要更改的内容。

答案1

PXE(预启动执行环境,发音为 pixie)

维基百科:PXE

怎么运行的?

这是我的理解!

PXE 图.png

  1. 客户端计算机已启动。BIOS 扫描设备。然后尝试从所需设备(如启动顺序/序列. 它从网卡 ROM 加载 PXE。
  2. PXE(客户端)广播 IP 请求。DHCP 服务器回复所需信息:IP、下一个服务器 IP(TFTP 服务器 IP)、pxelinux.0(PXE 引导加载程序文件名)...等

    PXE 启动

  3. PXE(客户端)pxelinux.0从 TFTP 服务器请求文件,将其加载到 RAM 然后将控制权传递给pxelinux.0

    pxelinux.0从 TFTP 服务器获取名称为:的启动配置文件
    (如果不存在则尝试下一个)

    • 唯一唯一标识符
    • 苹果
    • 大写十六进制中的 IP
    • IP 的一部分
    • 拖放到default文件

    PXE 启动

  4. 用户选择或默认菜单项。pxelinux.0从 TFTP 服务器请求相应的内核和 RAMDisk 并将它们加载到 RAM 中。

    然后将启动参数和控制传递给加载的内核。

    PXE_Linux.png

  5. 内核根据其功能/属性从 TFTP 服务器或任何其他协议服务器加载剩余部分。

    Parted_Magic_1.png Parted_Magic_2.png

服务器设置

设置 PXE 服务器的方法有很多,这是其中之一。

这些说明已在Ubuntu 9.10&Ubuntu 10.04在真实机器上。它们应该仍然有效,只需进行少量更改即可。(针对 VirtualBox 上的 Ubuntu 14.04 进行了更新和测试,检查旧版本的编辑修订)

我的目标是PartedMagic 4.5,它应该与 Ubuntu 或任何 Linux 发行版类似。

  1. 安装 DHCP 和 TFTP 包

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

    • 编辑/etc/default/isc-dhcp-server,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 eth0192.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                *:*                                
      
  3. 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                  *:*                          
      
  4. PXE 启动文件设置

    • 解压pmagic-pxe-4.5.zip。如果pxelinux.0没有,请从sysliux-common的安装包中获取/usr/lib/syslinux/pxelinux.0Syslinux 项目或者Ubuntu 网络启动映像

      将它们置于相似的结构中。

      /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 {} \;
      

客户端设置

F9使用或一次性更改 BIOS 启动顺序F12,从 BIOS 配置中进行永久设置DELF2F12。(取决于机器品牌)

移至顶部:[PXE | NIC | LAN | Ethernet | Network]

笔记

  • inetutils-inetdxinetd可以代替openbsd-inetd,有些inetd步骤有所不同。

  • TFTP 根目录可以从 更改/etc/default/tftpd-hpa。记得也更新‪/etc/inetd.conf

  • 许多发行版支持通过多种协议加载 RAMDisk:SSH(SFTP)、SMB、NFS...例如 Ubuntu 支持 NFS。

  • 有些老网卡不支持PXE,远程控制例如 gPXE 或 Etherboot) 都可以在软盘、USB 驱动器、硬盘(/boot分区)上使用,甚至可以将其刷新到 ROM(仅支持少数 NIC)。GRUB2 具有支持使用 PXE 启动的模块。

    也可以看看维基百科:gPXEROM-O-matic

  • Ubuntu 网络启动映像来自cdimage.ubuntu.com/netboot/ 提供从网络安装 Ubuntu,它会要求从官方镜像或本地镜像(如果有)下载所有必需的软件包。

    大多数用户都希望通过 PXE 启动实时映像。这个问题只是设置 PXE 服务器。请参阅Ubuntu Wiki:安装 - LocalNet

    Ubuntu NetBoot - 官方存档镜像 Ubuntu NetBoot - 自定义/本地存档镜像

  • PXE 菜单可以自定义,最好的学习模板是Ubuntu 网络启动。 看Pxeboot 多映像

    PXE_Linux 菜单.png

  • memdisk可用于通过 PXE 直接加载 ISO 或软盘映像。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 软件包从官方网站上撤下,一些版本可以通过 torrent 网络找到。我的答案是第一次为我工作的 PXE 设置的简历。Ubuntu 网络启动映像应按照相同的指令工作。

相关内容