web-dev-qa-db-ja.com

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

PXEブートサーバーを使用してUbuntu仮想マシンをインストールするにはどうすればよいですか?

すべての構成の詳細と構成ファイルの変更内容が必要です。

15
Beginner

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

Wikipedia:PXE を参照してください

使い方?

これは私の理解です!

PXE_Diagram_en.png

  1. クライアントマシンの電源が入っています。デバイスのBIOSスキャン。次に、Boot Order/Sequenceにリストされているように、必要なデバイスからブートローダーをロードしようとします。ネットワークカードROMからPXEをロードします。
  2. PXE(クライアント側)は、IPの要求をブロードキャストします。 DHCPサーバーが必要な情報を返信します。IP、Next Server IP(TFTPサーバーIP)、pxelinux.0(PXE bootstrap loader file name)、... 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.0は、対応するカーネルとRAMDiskをTFTPサーバーに要求し、RAMにロードします。

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

    PXE_Linux.png

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

    Parted_Magic_1.pngParted_Magic_2.png

サーバーのセットアップ

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

これらの手順は、Ubuntu 9.10Ubuntu 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;
      }
      
    • 私の場合、デスクトップエディションのネットワークマネージャーまたはサーバーエディションのeth0を使用して、192.168.10.123/etc/network/interfacesの静的IPを設定します。

      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を編集し、tftp行の先頭から#<off>#を削除するか、#: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-commonSyslinux Project または buntu Netboot Image にインストールされている/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 {} \;
      

クライアント設定

次を使用してBIOSのブート順序を1回変更します F9 または F12、BIOS構成からの永続的なセットアップ用 DELF2 または F12。 (マシンのブランドによって異なります)

一番上に移動:[PXE | NIC | LAN | Ethernet | Network]

ノート

  • inetutils-inetdの代わりにopenbsd-inetdまたはxinetdを使用できます。一部の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を使用した起動をサ​​ポートするモジュールがあります。

    Wikipedia:gPXE および ROM-O-matic も参照してください。

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

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

    Ubuntu NetBoot - Official archive mirrorUbuntu NetBoot - Custom/Local archive mirror

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

    PXE_Linux_Menu.png

  • memdiskは、PXEを介して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パッケージは公式サイトから削除されました。ここでの私の答えは、私のために働いた最初のPXEセットアップの履歴書です。 buntu Netboot Image は同じ手順で動作するはずです。

30
user.dz