Ubuntu Server VMでのPXEブートサーバーのインストール手順


回答:


31

PXE(プリブート実行環境、ピクシーと発音)‬

ウィキペディアを参照してください:PXE

使い方?

これは私の理解です!

PXE_Diagram_en.png

  1. クライアントマシンの電源がオンになっています。デバイスのBIOSスキャン。次に、ブート順序/シーケンスにリストされているように、必要なデバイスからブートローダーをロードしようとします。ネットワークカードROMからPXEをロードします。
  2. PXE(クライアント側)は、IPの要求をブロードキャストします。DHCPサーバーが必要な情報を返信します:IP、Next Server IP(TFTPサーバーIP)、pxelinux.0(PXEブートストラップローダーファイル名)、... etc

    PXE_Boot_1.png

  3. PXE(クライアント側)pxelinux.0はTFTPサーバーからファイルを要求し、RAMにロードしてから制御をに渡しpxelinux.0ます。

    pxelinux.0次の名前でTFTPサーバーからブート構成ファイルを取得します
    (存在しない場合は、次のもので試行します)。

    • UUID
    • マック
    • Capital HexのIP
    • IPの一部
    • defaultファイルにドロップ

    PXE_Boot_2.png

  4. ユーザー選択またはデフォルトのメニューエントリ。pxelinux.0TFTPサーバーから対応するカーネルとRAMDiskを要求し、RAMにロードします。

    次に、ブートパラメータと制御をロードされたカーネルに渡します。

    PXE_Linux.png

  5. カーネルは、その機能/プロパティに応じて、TFTPサーバーまたはその他のプロトコルサーバーから残りの部分を読み込みます。

    Parted_Magic_1.png Parted_Magic_2.png

サーバーのセットアップ

PXEサーバーをセットアップするには多くの方法がありますが、これはそのうちの1つです。

これらの手順は、実際のマシン上の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固有の構成:filenamenext-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削除するか、コメントの下にない場合は追加します。(systemd、15.10以降でこれをスキップします)#<off>#tftp#:BOOT:

      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存在しない場合は、Syslinux ProjectまたはUbuntu Netboot Imageにsysliux-commonインストールされているパッケージから入手してください。/usr/lib/syslinux/pxelinux.0

      それらを同様の構造に配置します。

      /var/lib/tftpboot/
       |-- pxelinux.0
       |-- pxelinux.cfg/
       |   `-- default
       `-- pmagic/
           |-- bzimage
           `-- initramfs
      
    • /var/lib/tftpboot/pxelinux.cfg/default必要に応じて、パスの編集:pmagic/bzimagepmagic/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の起動順序を1回変更します。またはF12、BIOS設定からの永続的なセットアップDELF2またはを使用しますF12。(マシンのブランドによって異なります)

上部に移動します[PXE | NIC | LAN | Ethernet | Network]

ノート

  • inetutils-inetdまたはのxinetd代わりに使用できます。openbsd-inetd一部のinetd手順は異なります。

  • TFTPルートディレクトリはから変更できます/etc/default/tftpd-hpa。更新すること‪/etc/inetd.confも忘れないでください。

  • 多くのディストリビューションは、SSH(SFTP)、SMB、NFSなどの多くのプロトコルを介したRAMDiskの読み込みをサポートしています。例UbuntuはNFSをサポートしています。

  • 一部の古いネットワークカードはPXE、サポートしていないIPXE例。gPXEのかEtherbootのは、フロッピーディスク、USBドライブ上のいずれか)を使用することができ、ハードディスクの(/bootパーティション)、あるいはがROMにフラッシュする(ほんの数NICがサポートされています)。GRUB2には、PXEを使用した起動をサ​​ポートするモジュールがあります。

    ウィキペディア:gPXEおよびROM-O-maticも参照してください。

  • cdimage.ubuntu.com/netboot/の Ubuntu Netboot Imageは 、ネットワークからUbuntuをインストールし、公式ミラーまたはローカルミラー(ある場合)から必要なパッケージをすべてダウンロードするように要求します。

    ほとんどのユーザーは、PXEからライブイメージを起動することを探しています。この質問は、PXEサーバーをセットアップすることだけでした。Ubuntu Wiki:インストール-LocalNetを参照してください

    Ubuntu NetBoot-公式アーカイブミラー Ubuntu NetBoot-カスタム/ローカルアーカイブミラー

  • PXEメニューはカスタマイズできます。学習するのに最適なテンプレートはUbuntu NetBootです。Pxeboot Multiple imageを参照してください

    PXE_Linux_Menu.png

  • memdiskPXEを介してISOまたはフロッピーディスクイメージを直接読み込むために使用できます。syslinux-commonパッケージにはコピーがあります。クライアントには、イメージと、ロードされたOSを実行するための一部を保持するのに十分な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 Netboot Imageは同じ手順で動作するはずです。


友達、実はPxebootに取り組んでいます。これらのパッケージを1つの仮想マシン(Oracle Virtualbox)にインストールしました。apt-getinstall nfs-kernel-server apt-get install tftpd-hpa inetutils-inetd apt-get install syslinux apt-get install isc-dhcp-server私はdhcpdを編集します.confファイルとdhcpサーバーの実行
2014

@Sneetsher:こんにちは、tftpd-hdaを使用しています。デフォルト値で構成されています。A netstat -lu | grep tftpはリスニングモードで表示されます。/ tftpbootフォルダーは777ですがtftp> get pxelinux.0、クライアントから試してみると、常にtftp:pxelinux.0:Permission deniedエラーが発生ます。デバッグするアイデアはありますか?前もって感謝します。
Danduk82 14年

/var/lib/tftpboot/755(デフォルト)の@ Danduk82は問題ないはずです。pxelinux.0644があるかどうかを確認して実行sudo chmod -R +r /var/lib/tftpboot/し、すべてのコンテンツを読み取り可能にします。
user.dz 14年

1
こんにちは、実際に問題を解決しました:実際、追加した後にDHCPサービスを再起動するのを忘れました(filename "pxelinux.0";コメントなし); P ...回答とこの素晴らしい(そして完全な)回答に感謝します。乾杯
Danduk82

1
@ Matthieu、torrentネットワークを介していくつかのリリースを見つけることができます。元の開発者が商用化することを決定した後、パッケージは公式サイトから削除されました。また、PXEを初めてテストまたはセットアップするだけの場合は、cdimage.ubuntu.com / netbootを使用できます。
user.dz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.