GNU/Linux >> Linux の 問題 >  >> Linux

方法:UNIX / Linux で tftpboot サーバーを構成する 10 の手順 (PXE を使用してネットワークから Linux をインストールする場合)

この記事では、必要なパッケージのインストールを含む tftpboot のセットアップ方法と tftpboot 構成について説明します。

TFTP ブート サービスは主に、物理的にアクセスできないリモート マシンで OS のインストールを実行するために使用されます。 OS のインストールを正常に実行するには、wakeonlan を使用するか、誰かが手動で再起動するか、その他の方法で、リモート サーバーを再起動する方法が必要です。

これらのシナリオでは、それに応じて tftpboot サービスをセットアップし、OS のインストールをリモートで実行できます (OS のインストール手順を自動化するには、autoyast 構成ファイルが必要です)。

段階的な手順を示します。この記事では、64 ビット アーキテクチャの SLES10-SP3 について説明します。ただし、これらの手順は他の Linux ディストリビューションとほとんど同じです。

必要なパッケージ

tftpboot セットアップには、次のパッケージをインストールする必要があります。

  • dhcp サービス パッケージ:dhcp-3.0.7-7.5.20.x86_64.rpm および dhcp-server-3.0.7-7.5.20.x86_64.rpm
  • tftpboot パッケージ:tftp-0.48-1.6.x86_64.rpm
  • pxeboot パッケージ:syslinux-3.11-20.14.26.x86_64.rpm

パッケージのインストール

dhcp サーバー サービスのパッケージをインストールします。

$ rpm -ivh dhcp-3.0.7-7.5.20.x86_64.rpm
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]

$ rpm -ivh dhcp-server-3.0.7-7.5.20.x86_64.rpm
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]

$ rpm -ivh tftp-0.48-1.6.x86_64.rpm

$ rpm -ivh syslinux-3.11-20.14.26.x86_64.rpm

syslinux パッケージをインストールすると、pxelinux.0 ファイルが /usr/share/pxelinux/ ディレクトリの下に作成されます。これは、インストール カーネルと initrd イメージをクライアント マシンにロードするために必要です。

パッケージが正常にインストールされたことを確認してください。

$ rpm -qa | grep dhcp
$ rpm -qa | grep tftp

それぞれの Linux ディストリビューションのリポジトリから適切な tftpserver をダウンロードします。

tftpboot のセットアップ手順

ステップ 1:/tftpboot ディレクトリを作成する

以下に示すように、ルート ディレクトリ ( / ) の下に tftpboot ディレクトリを作成します。

# mkdir /tftpboot/

ステップ 2:pxelinux イメージをコピーする

syslinux パッケージをインストールすると、PXE Linux イメージが利用可能になります。以下に示すように、これを /tftpboot パスにコピーします。

# cp /usr/share/syslinux/pxelinux.0 /tftpboot

ステップ 3:ISO のマウント ポイントを作成し、ISO イメージをマウントする

リモート サーバーに SLES10 SP3 Linux ディストリビューションをインストールするとします。 SUSE10-SP3 DVD がある場合は、それをドライブに挿入するか、お持ちの ISO イメージをマウントします。ここでは、iso イメージが次のようにマウントされています。

# mkdir /tftpboot/sles10_sp3

# mount -o loop SLES-10-SP3-DVD-x86_64.iso /tftpboot/sles10_sp3

ISO ファイルをマウントして表示する方法に関する以前の記事を参照してください。

ステップ 4:vmlinuz および initrd イメージを /tftpboot にコピーする

以下に示すように、initrd を tftpboot ディレクトリにコピーします。

# cd /tftpboot/sles10_sp3/boot/x86_64/loader

# cp initrd linux /tftpboot/

ステップ 5:pxelinux.cfg ディレクトリを作成する

/tftpboot の下にディレクトリ pxelinux.cfg を作成し、クライアントの pxe ブート定義を定義します。

# mkdir /tftpboot/pxelinux.cfg

# cat >/tftpboot/pxelinux.cfg/default
default linux
label linux
kernel linux
append initrd=initrd showopts instmode=nfs install=nfs://192.168.1.101/tftpboot/sles10_sp3/

次のオプションは、

  • kernel – TFTP サーバー上の Linux インストール カーネルの場所を指定します。
  • install – インストール カーネルに渡すブート引数を指定します。

上記のエントリに従って、nfs インストール モードは、インストール RPM と構成ファイルの提供に使用されます。そのため、エクスポートされたリストに /tftpboot ディレクトリがあるこのマシンで nfs をセットアップします。 autoyast 構成ファイルに「autoyast」オプションを追加して、OS のインストール手順を自動化できます。それ以外の場合は、インストール手順を手動で実行する必要があります。

ステップ 6:/tftpboot ディレクトリの所有者と権限を変更する

nobody:nobody を /tftpboot ディレクトリに割り当てます。

# chown nobody:nobody /tftpboot

# chmod 777 /tftpboot

ステップ 7:/etc/dhcpd.conf を変更する

以下に示すように、/etc/dhcpd.conf を変更します。

# cat /etc/dhcpd.conf

ddns-update-style none;
default-lease-time 14400;
filename "pxelinux.0"; 

# IP address of the dhcp server nothing but this machine.
next-server 192.168.1.101;
subnet 192.168.1.0 netmask 255.255.255.0 {
  # ip distribution range between 192.168.1.1 to 192.168.1.100
  range 192.168.1.1 192.168.1.100;
  default-lease-time 10;
  max-lease-time 10;
}

/etc/syslinux/dhcpd でインターフェイスを指定して、クライアントからの dhcp リクエストをリッスンします。

# cat /etc/syslinux/dhcpd | grep DHCPD_INTERFACE
DHCPD_INTERFACE=”eth1”;

ここで、このマシンの eth1 デバイスの IP アドレスは 192.168.1.101 です。したがって、上記のように DHCPD_INTERFACE に eth1 を指定します。

関連して、ifconfig を使用してネットワーク インターフェイスを構成する 7 つの例に関する以前の記事を参照してください。

ステップ 8:/etc/xinetd.d/tftp を変更する

/etc/xinetd.d/tftp ファイルを変更して、以下を反映させます。デフォルトでは、disable パラメータの値は「yes」です。必ず「no」に変更してください。また、server_args エントリを -s /tftpboot に変更する必要があります。

# cat /etc/xinetd.d/tftp
	service tftp {
                       socket_type     = dgram
                       protocol          = udp
                       wait               = yes
                       user               = root
                       server            = /usr/sbin/in.tftpd
                       server_args     = -s /tftpboot
                       disable           = no
            }

ステップ 9:/etc/xinetd.conf を変更しない

etc/xinetd.conf ファイルを変更する必要はありません。 xinetd.conf ファイルで指定されたデフォルト値を使用してください。

ステップ 10:xinetd、dhcpd、および nfs サービスを再起動する

以下に示すように、これらのサービスを再起動します。

# /etc/init.d/xinetd restart

# /etc/init.d/dhcpd restart

# /etc/init.d/nfsserver restart

nfs サービスを再起動した後、次のコマンドでエクスポートされたディレクトリ リスト (/tftpboot) を表示できます。

# showmount -e

最後に、tftpboot セットアップの準備が整い、BIOS 設定で最初の起動デバイスを「ネットワーク」に変更した後、クライアント マシンを起動できるようになりました。

tftp エラーが発生した場合は、tftpd サービスからいくつかのファイルを取得してトラブルシューティングを行うことができます。

tftp サーバーからいくつかのファイルを取得して、tftp クライアントを使用して tftp サービスが正しく機能していることを確認します。 sample.txt ファイルが /tftpboot ディレクトリの下にあると仮定しましょう。

 $ tftp -v 192.168.1.101 -c get sample.txt

Linux
  1. Linuxサーバーインフラストラクチャを監視するためのCheckmkの使用

  2. ターミナルを使用してMacOSXからLinuxに接続する

  3. PuTTYを使用してWindowsからLinuxに接続する

  1. LinuxでMongooseを使用してESP8266のネットワークアプリケーションを開発する

  2. UNIX / Linux に Alfresco をインストールして構成する 12 の手順

  3. UNIX / Linux:mod_perl を Apache 2 にインストールして構成する方法

  1. CentOS7サーバー用の15のLinux強化手順

  2. ルーターサーバーを通過するすべてのネットワークアクティビティをログに記録するためにTcpdumpを使用しますか?

  3. Sublime Text から Windows Subsystem for Linux (WSL) を使用する