PXEBootInstall

序文

ネットワークブートを使用したインストールは、DebianNetworkInstallと混同してはなりません。 ネットワークインストールでは、ネットワーク経由でさらにパッケージをダウンロードする前に、最小限のLinuxシステムをインストールするには、CD(またはUSBフラッ

ネットワークブートを使用したインストールは、既にインストールされているシステムをブートするためにネットワークを使用するのとは異なります。 たとえば、Linux Terminal Server Project(LTSP)はそのように機能します。

このページでは、CD、DVD、USBをまったく使用しない新しいDebianシステムのインストールについて説明します。 インストールプロセスが終了するまでに、新しいマシンはサーバーのサポートなしで実行できます。 インストール中に、ネットワークブートサーバーが必要になります。 実際には受託ブートサーバーは存在しないため、独自のサーバーをセットアップする必要があります。

これは、CdからDebianをインストールするよりもかなり複雑です(cdまたはUSBまたはの省略形。..). 通常、ネットワークブートは、CDから起動する方法が実際にない場合にのみ使用されます。 CDからの起動が失敗した場合、これはBIOSの問題が原因であり、ネットワーク起動を同様に妨げる可能性があります(一般的なトラブルシューティングの試みには、セキュアブートのスイッチオフ、UEFIからレガシーブートモードへの切り替えなどが含まれます)。

Webでは、ネットワークブートサーバーを設定する方法を多かれ少なかれ詳細に説明するいくつかの記事を見つけることができます。 彼らはすべて同じ弱点を持っています: 起動しようとするときは、手順の最後の前にフィードバックを得ることなく、長いリストの命令を実行する必要があります。 それが動作する場合は、罰金。 そうでない場合、デバッグは非常に非常に困難になります。 したがって、以下では、手順を個別にデバッグできる手順に分解します。

http://www.debian.org/releases/stable/amd64/ch04s05-Debianインストールガイド-4.5. TFTPネットブート用のファイルの準備

メモ:システムがiPXEをサポートしている場合は、netbootを使用してください。xyzははるかに簡単になる可能性があります。

前提条件

インストールするコンピュータはクライアントと呼ばれます。

インストール元のコンピュータはサーバーと呼ばれます。 サーバーがDebianを実行していると仮定します。

具体的には、クライアントとサーバーは次のIPアドレスを持つLANの一部であると仮定します。

xの値は後でわかります。 特定のLANでは1つのDHCPサーバーしか実行できないため、オフにする必要があります。

多くのルーターではDHCPサーバーも提供されていることに注意してくださ 以下のISC DHCPサーバ設定に準拠するようにルータのDHCPサーバを設定することができますが、これはこのドキュメントの範囲外である場合を除きます。

ルーターとサーバーが同じマシンであること、つまりDebianサーバーがこのLANのデフォルトゲートウェイである可能性もあります。 これは正常に動作します。

以下の手順は、2015年9月にDebian8.2(Jessie)でテストされました。 Pxeブートを有効にする

クライアントのBIOSブートメニューをネットワークから起動するように設定します。

再起動します。 ほとんどのシステムでは、これはクライアントのMACアドレスを含む出力を生成します。 次に、それは失敗します

 PXE-E53: no boot filename received.

MACアドレスに注意してください。 多くのサーバーでは、BIOS設定を永続的に変更することなく、一時的にpxeブートに切り替えることもできます。 BIOSのポストの間にヒットするキーストロークのいくつかの種類があります。 Dellサーバーでは、F12がそのトリックを行います(またはEsc、次にシリアルまたはIPMIコンソールから@)。

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

サーバーでは、DHCPサーバーをセットアップする必要があります。

現在のベストプラクティスは、デーモンdhcpdを提供するパッケージisc-dhcp-serverを使用することです。 設定ファイルは/etc/dhcp/dhcpdです。コンフ… 上記の各変更の後、DHCPサーバーを

 # /etc/init.d/isc-dhcp-server restart

または同等のsystemd

 # systemctl restart isc-dhcp-server

実際に実行されていることを確認します。

 # /etc/init.d/isc-dhcp-server restart

DHCPサーバーを再起動します。

 # systemctl restart isc-dhcp-server

実際に実行されていることを確認します。

 # /etc/init.d/isc-dhcp-server restart

 # pgrep -lf dhcpd 32277 /usr/sbin/dhcpd -q

または

 # systemctl status isc-dhcp-server

少し多くの情報を提供します。

クライアントを再起動する前に、

 # journalctl -fu isc-dhcp-server

を実行して、DHCPサーバーログの最後の数行を表示し、新しいログエントリごとに画面を更新します。 (ログを”フォロー”したくない場合は、”f”を省略してください)

 PXE-E32: TFTP open timeout

同時に、サーバー画面にDHCP要求を示すログメッセージが表示され、以下の代替コマンドの下にある出力と同様のオファーが表示されます

systemdを使用したくない場合、または診断目的で従来のログ出力を比較したい場合は、/var/log/syslogを検索することができます

 # grep DHCP /var/log/syslog
  • どこに次のようなものが表示されるはずですか:

(以前のDebianリリースでは/var/log/daemonが使用されていたことに注意してください。いずれかのコマンドでログに何も表示されない場合は、サーバーとクライアント間のネットワークリンクを確認します。 Ciscoのもののために、可能なら’portfast’を使用して下さい(http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00800b1500.shtmlを見て下さい)。 次に、サーバ上にTFTPサーバを設定する必要があります。 繰り返しになりますが、TFTPを提供するパッケージがいくつかあります(trivial FTP、unsafe、LANでのみ使用されます)。 パッケージtftpd-hpaを使用することをお勧めします。 インストール時には、いくつかの質問があります。 これらの質問に対する応答は、設定ファイル/etc/default/tftpd-hpaに入ります。 次のデフォルトの内容を変更する必要はありません。

 TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"

‘RUN_DAEMON=”yes”‘のようなものを挿入するように指示する古いWebサイトを無視します。 上記の設定ファイルを変更するたびに、

 # /etc/init.d/tftpd-hpa restart

または

 # systemctl restart tftpd-hpa

JESSIEでは、ディレクトリ/srv/tftpが自動的に作成されます。 これは、Jessieを使用する場合、次の2つの手順は必要ないことを意味します。 最初は、Jessieより前のバージョンでは、TFTPサーバーの再起動が失敗し、次のようなメッセージが表示される可能性があります。

 Restarting HPA's tftpd: in.tftpd/srv/tftp missing, aborting.

したが TFTPデーモンを再起動します。 実際に実行されていることを確認します: p>

 # pgrep -lf tftpd 12555 /usr/sbin/in.tftpd

または

 # systemctl status tftpd-hpa

これも、タスクが実行されている(実行されていない)という事実だけではなく、ログの数行を示します。 この目的のためにtftp-hpaパッケージを単に使用することができます。

 # cd /tmp # uname -a >/srv/tftp/test # tftp 192.168.0.2 tftp> get test tftp> quit # diff test /srv/tftp/test (nothing, they are identical)

存在するファイルをダウンロードしたときや、存在しないファイル Tftpを使用してtftpdサーバをテストしている間、TFTPクライアントを使用して存在しないファイルと存在しないファイルをダウンロードしている間、logコマン

Jessieの伝統的なコマンド

 # tail -f /var/log/syslog

(以前のDebianリリースでは/var/log/daemonが使用されていたことに注意してください。syslogの代わりにログを記録します。 悲しいことに、これらは2017年1月の時点で異なる結果をもたらすようです。 Systemdコマンドは、存在しないファイルに対するファイル要求を表示しません。 後で間違いを犯した場合にファイルを期待される場所に移動するのに役立つので、クライアントが何を求めているかを知ることは非常に便利です。 現時点では、おそらくTFTPDのログ追跡の伝統的な方法を使用する価値があります。

クライアントを再起動します。 クライアント画面には、

 PXE-T01: File not found

で始まるエラーメッセージが表示されるはずですが、これはまだファイルを提供していないた サーバー画面には、クライアントが何を要求したかが正確に表示されます。

ブートイメージを提供します

netboot/netbootをダウンロードします。タールDebianミラーからのgz(http://www.debian.org/distrib/netinst#netbootを参照)。

オプション:デジタル署名を確認するには、次のコマンドを入力します。

netbootを解凍します。タールこのディレクトリ内のすべてのファイルをTFTPデーモンに対して読み取り可能にするには、chmod-R a+r*が必要な場合があります。 また、grub/grubを編集する必要がある場合があります。cfg必要に応じて、シリアルコンソールを設定するために、(私はグラフィカルな端末についてのセクションを交換しました):

serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1terminal_input console serialterminal_output console serial

debian-installerのシリアルコンソールと同様に、これをカーネルコマンドラインに追加します。

console=ttyS1,115200n8r console=tty1

TFTPデーモンを再起動し、ログエントリが表示されるように

 # tail -f /var/log/syslog

クライアントを再起動します。 Debianのインストール画面が表示されます。 /var/log/syslogを検索すると、PXEブートローダによってTFTPサーバからダウンロードされたものが表示され、次にSYSLINUXによってダウンロードされたものが表示されます。 SYSLINUXが存在しないファイルを要求したときに、いくつかの”NAK”応答が表示されることもあります(重要なファイルのいくつかの場所を試行します)。

PXEローダー(BIOSのファームウェアまたはクライアントのネットワークコントローラ)は、次の順序でロードしようとします。

  • pxelinux。0(またはより正確には、DHCP応答の「ファイル名」フィールドにダウンロードするように指示したもの)

次に、SYSLINUX/PXELINUXは、最も具体的なものから最小のものまで、異なcfg/GUID

  • pxelinux.cfg/MAC
  • pxelinux.cfg/default
  • 設定メニューが他の設定項目に依存している場合は、それらもダウンロードされます。 Debianには少なくとも’bootmenuが必要です。メインメニューであるtxt’ファイル。

    デフォルトでは、グラフィカルなDebianインストールのスタートメニュー画面に到着します。 インストールを開始するには、”enter”を押します。 我慢してください:次の画面(”言語を選択”)が表示されるまでに1分かかることがあります。

    ブートイメージを取得する別の方法

    インストールしたいのと同じリリースのDebianシステムを持っている場合は、aptを使用してブートイメージをインストー ここで、tftpサーバーを/usr/lib/debian-installer/images/images VERSION/ARCH ARCH/INTERFACE INTERFACEにポイントします。 これを実現する簡単な方法は、/srv/tftpをシンボリックリンクに変換することです。 dnsmasqは軽量で、BOOTP/TFTP/PXE機能を備えたDNSフォワーダーとDHCPサーバーを簡単に設定できます。 つまり、Isc-dhcp-serverおよびtftpd-hpaをDnsmasqに置き換えることができます。 以下は/etc/dnsmasqです。confは、上記のisc-dhcpd-serverおよびtftpd-hpaのインストールおよび設定方法と同じ機能を提供します。

    netbootをダウンロードします。タール前の説明と同じように/srv/tftpで展開します。

    潜在的な問題

    netbootイメージ内のカーネルがカーネルモジュールパッケージと同期しなくなると、モジュールがロードされず、インストールが失敗します。

    これを修正するには、netbootサーバー上のカーネルとinitrdを更新します。 おそらくDebian BTSの問題が開かれていますが、今は見つかりません。

    も参照してください

    • http://www.debian.org/releases/stable/amd64/ch04s05-Debianインストールガイド-4.5. TFTPネットブート用のファイルの準備

    • di-netboot-assistantは、上記の手順のほとんどを自動化します。DebianInstaller/NetbootAssistant

    • netbootのLennyインストーラ。タールgzはデフォルトでシリアルコンソールを使用したインストールをサポートしていません。 この問題の詳細と、シリアルコンソールアクセスを有効にするためのパッチについては、309223を参照してください。

    • https://networkboot.org/

    https://networkboot.org/https://networkboot.org/

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です