ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

LinuxでPXEブートサーバーをセットアップする方法

編集済み 1 日前 によって ExtremeHow 編集チーム

ネットワークブート PXE => PXE Deployment => 展開 TFTP => TFTP Imaging => イメージングPXEサーバー設定デプロイメント設定シスアドミンTFTPコマンドラインインストールイメージング

LinuxでPXEブートサーバーをセットアップする方法

翻訳が更新されました 1 日前

このガイドでは、LinuxマシンでPreboot Execution Environment(PXE)ブートサーバーをセットアップする方法を学びます。このプロセスにより、コンピュータはローカルストレージではなくネットワーク経由で提供されるイメージを使用して起動できます。PXEは、ネットワーク上の複数のマシンにオペレーティングシステムやソフトウェアをデプロイする必要があるシステム管理者にとって便利です。

1. PXEブートの紹介

PXEは、Preboot Execution Environmentの略で、ネットワークインターフェイスを介してデータストレージデバイスやインストールされたオペレーティングシステムに依存せずにコンピュータを起動できるようにします。これは、サーバーの自動展開を支援し、Linux OSや他のオペレーティングシステムのネットワークインストールに使用できます。

基本的に、PXEは2つの主要コンポーネントで構成されています:

PXEブートサーバーを使用すると、集中管理された場所から複数のマシンに効率的にオペレーティングシステムをインストールできます。

2. 必要条件

LinuxでPXEブートサーバーをセットアップするには、次のコンポーネントが必要です:

3. DHCPサーバーのセットアップ

DHCPサーバーはPXEクライアントにIPアドレスを割り当て、次に接続するべきサーバーを知らせます。

パッケージマネージャーを使用してDHCPサーバーをインストールします。UbuntuやDebianのようなディストリビューションを使用している場合、コマンドは次のようになります:

sudo apt-get install isc-dhcp-server

インストール後、通常/etc/dhcp/dhcpd.confにあるDHCPサーバーの設定ファイルを編集して、PXEクライアントのIPアドレス、サブネットマスク、およびブートローダーファイルの詳細を指定します。

以下は基本的な設定スニペットです:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.100;
    option routers 192.168.1.1;
    filename "pxelinux.0";
    next-server 192.168.1.5; # PXEサーバーのIPアドレス
    option broadcast-address 192.168.1.255;
}

設定後、DHCPサービスを再起動して変更を適用します:

sudo systemctl restart isc-dhcp-server

DHCPサーバーが起動時に開始することを確認します:

sudo systemctl enable isc-dhcp-server

4. TFTPサーバーのインストール

TFTP(Trivial File Transfer Protocol)サーバーはPXEクライアントにブートローダーを提供します。次のコマンドを使用してインストールします:

sudo apt-get install tftpd-hpa

TFTP設定ファイルを/etc/default/tftpd-hpaで編集し、ブートファイルを適切に供給するように設定します:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

指定されたディレクトリ(デフォルトは/var/lib/tftpboot)が作成され、アクセス可能であることを確認します。TFTPサービスを再起動して有効にします:

sudo systemctl restart tftpd-hpa
sudo systemctl enable tftpd-hpa

5. ブートローダーの設定

SYSLINUXはpxelinuxというPXEブートローダーを提供しています。まず、syslinuxがインストールされていない場合はインストールします:

sudo apt-get install syslinux-common

必要なファイルをtftpbootディレクトリにコピーします:

sudo cp /usr/lib/PXELINUX/pxelinux.0 /var/lib/tftpboot
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg

ブートメニューを提供するには、/var/lib/tftpboot/pxelinux.cfgに設定ファイルを作成します。defaultという名前のファイルを作成します:

DEFAULT menu.c32
PROMPT 0
TIMEOUT 50
ONTIMEOUT local
LABEL linux
    MENU LABEL ^Install Linux
    KERNEL vmlinuz
    APPEND initrd=initrd.img

この設定は、Linuxなどのネットワークブート可能なイメージを選択するためのブートメニューを提供します。

6. ブートカーネルとinitrdの準備

Linuxインストールメディアからカーネルとinitrdファイルを/var/lib/tftpbootディレクトリにコピーします:

sudo cp /path-to-linux-iso/vmlinuz /var/lib/tftpboot/
sudo cp /path-to-linux-iso/initrd.img /var/lib/tftpboot/

パーミッションが正しいことを確認します:

sudo chmod 644 /var/lib/tftpboot/*

7. NFSまたはHTTPの設定

実際のインストールファイルをNFSまたはHTTPを使用してホストする必要があります。それぞれの方法はネットワーク要件に応じて適切です。

NFSの場合:

NFSサーバーをインストールします:

sudo apt-get install nfs-kernel-server

エクスポートファイル/etc/exportsを編集して、インストールファイルが含まれているディレクトリを追加します:

/path-to-your-linux-files 192.168.1.0/24(ro,sync,no_root_squash)

NFSサービスを再起動します:

sudo exportfs -a
sudo systemctl restart nfs-kernel-server

HTTPの場合:

ApacheなどのHTTPサーバーをインストールします:

sudo apt-get install apache2

インストールメディアをWebアクセス可能なディレクトリにリンクします:

sudo ln -s /path-to-your-linux-files /var/www/html/linux

Apacheを再起動します:

sudo systemctl restart apache2

ファイアウォールがNFS/HTTPポートを許可していることを確認します:

sudo ufw allow 2049
sudo ufw allow 80

8. PXEクライアントを起動する

最後に、クライアントをネットワークから起動するように構成します。通常、これはBIOSまたはUEFIファームウェア設定で行います。PXEクライアントが起動すると、ネットワークに接続し、DHCPサーバーからIPを取得します。次に、TFTPサーバーからブートローダーファイルをロードし、NFS/HTTPが提供するファイルを使用してインストールプロセスを開始します。

上記の手順に従うことで、ネットワークマシンがネットワーク経由でオペレーティングシステムをロードできるPXEブートサーバーを設定することができます。

記事の内容に誤りがある場合, あなたは


コメント