回答:
1つのUbuntuシステム(通常はUbuntu Serverシステムですが、インストールする必要はありません)をインストールし、それをサーバーとして使用してPXEブートし、他のシステムをインストールできます。これが機能するには、クライアント(Ubuntuをインストールする場所)のBIOSがPXE(ネットワークブートなど)をサポートしている必要があります。しかし、最近ではほとんどのBIOSが対応しています。
Ubuntu以外のシステムをホストとして使用することもできます。セットアップ済みで、Ubuntu以外のシステムで必要なサーバーを構成する方法を知っている場合。
PXEInstallServer Ubuntuのヘルプのwikiの記事は、 PXEサーバーとしてUbuntuシステムを設定する方法、およびそれから他のシステム上のUbuntuをインストールする方法について説明します。主なポイントを要約するのは難しいでしょう。詳細は非常に重要です。そのため、ここにすべてがあります(書式設定と句読点に若干の変更があります)。
前書き
これにより、UbuntuサーバーをPXEインストールサーバーとして実行できます。ネットワーク上でDHCPサーバーを実行する必要があります。必ずしもこのサーバーである必要はありませんが、必要です。
必要なパッケージのインストール
次のパッケージをインストールする必要があります:(
inetutils-inetd
以前netkit-inetd
)、tftpd-hpa
(ソフトウェアのインストールを参照 )。
- Ubuntu 10.04には、のバグがあり
inetutils-inetd
ます。IPv6ではリッスンし、IPv4ではリッスンしません。簡単な回避策として、openbsd-inetd
代わりに使用できます 。これがDHCPサーバーでもある場合は、次のパッケージに含まれるdhcpサーバー
dhcp3-server
をインストールします(ソフトウェアのインストールを参照 )。tftpd-hpaを構成する
tftpd-hpaにデーモンを起動するように指示する必要があります(デフォルトでは起動しません)。これを行うには、
/etc/default/tftpd-hpa
ファイルを編集し、次のようになっていることを確認します。#Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
次に、起動スクリプトを実行して、実際にデーモンを起動します。
/etc/init.d/tftpd-hpa restart
dhcpdを構成する
pxeサーバーがdhcpサーバーでもある場合は、次のようなものが必要です
/etc/dhcp3/dhcpd.conf
。subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; filename "pxelinux.0"; }
既存のdhcpサーバーがある場合は、次のようにしてpxeサーバーを指定する必要があります。
subnet 192.168.0.0 netmask 255.255.255.0 { <other config here> filename "pxelinux.0"; next-server <pxe host>; }
変更が有効になるように、dhcpサーバーを必ず再起動してください。
sudo /etc/init.d/dhcp3-server restart
tftpd-hpaを構成する
tftpd-hpa
から呼び出されinetd
ます。tftpd-hpa
したがって、起動時に渡されるオプションは次の場所にあります。/etc/inetd.conf
デフォルトは問題あり
/etc/inetd.conf
ません。次のようなエントリが必要です。tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
(このファイルを編集し、交換する必要があるかもしれないが
udp
とudp4
のように、tftpd-hpa
今、IPv6アドレスを期待しているようです。)次に、Ubuntu CDから必要なファイルをコピーします。
sudo cp -r /media/cdrom/install/netboot/* /var/lib/tftpboot/
dhcpサーバーが正しいネットワーク情報を発行し、pxeクライアントがネットワークにアクセスできる場合、この時点でインターネットリポジトリを使用してUbuntuのインストールを実行できます。
ただし、もう少し先に進み、インストールサーバーからすべてをインストールし、インストールするパッケージの一部をカスタマイズします。
Apacheをインストールする
現在、nfsのインストールはサポートされていません(間違っている場合は修正してください)ので、httpを介してインストールします。そのためには、インストールサーバーにもWebサーバーが必要です。次のパッケージ
apache
をインストールしてください(InstallingSoftwareを参照 )。Ubuntuファイルのコピー
新しくインストールしたApacheのドキュメントルートの下にubuntuディレクトリを作成し、Ubuntu Alternate CDのすべてのコンテンツをそのディレクトリにコピーします。
mkdir /var/www/ubuntu cp -r /media/cdrom/* /var/www/ubuntu/
インストールのカスタマイズ
system-config-kickstart
キックスタートファイルを作成するためのGUIフロントエンドであると呼ばれるパッケージがあります。キックスタートファイルは、インストーラーにパッケージの取得元、インストール対象、その他の便利な設定を指示します。詳細については、KickstartCompatibilityを参照してください。このパッケージはインストールサーバーにインストールする必要はありません。どこかの便利なUbuntuデスクトップにインストールできます。
でカスタム
ks.cfg
を作成し、system-config-kickstart
「インストール方法」でHTTPを指定してください。インストールサーバーのIPを提供し、HTTPディレクトリを作成します/ubuntu/
。ファイルを保存し、インストールサーバーのの下にコピーします/var/www/html/
。インストールサーバー上のインストールファイルのみを使用し、他のすべての質問を要求する非常に最小限の `ks.cfgファイルは、次のようになります。
install url --url http://192.168.0.1/ubuntu/
ks.cfgを使用します
ネットワークのUbuntuインストールでキックスタートファイルを使用するには、ファイルの場所を指定する必要があります。編集 して追加行に
/var/lib/tftpboot/pxelinux.cfg/default
追加ks=http://<installserver>/ks.cfg
します。この場合、次のようになります(追加行は1行であることに注意してください)。label linux kernel ubuntu-installer/i386/linux append ks=http://192.168.0.1/ks.cfg vga=normal initrd=ubuntu-installer/i386/initrd.gz ramdisk_size=16432
root = / dev / rd / 0 rw-
Jaunty [そしておそらくあなたが使用している可能性のあるリリースを含む後のリリース] 1では、デフォルトのファイルはインクルードに分割されています。追加行は次の場所にあります
/ubuntu-installer/i386/boot-screens/text.cfg
。label install menu label ^Install (from my http server) menu default kernel ubuntu-installer/i386/linux append ks=http://192.168.0.1/ks.cfg vga=normal initrd=ubuntu-installer/i386/initrd.gz -- quiet
起動してインストールする
これで、LAN上の別のPCをネットワーク経由で起動し、Ubuntuを自動的にインストールできるようになります。:) tftpとhttpのインストールポイントを変更して、ネットワークに複数のバージョンのUbuntuをインストールできるようにすることができます。
CD(または.iso)を直接使用する
実際にファイルをどこにでもコピーせずに上記を達成することもできます。CD(または.iso)をマウントしてから、
--bind
オプションを使用して追加のマウントを実行できます。利点は、インストールサーバーファイルを更新する必要なく、CD(または.iso)をアップグレードできることです。たとえば、CD(または.iso)を
/media/cdrom/
にマウントした後、ubuntuファイルをWebディレクトリにマウントできます。mount --bind /media/cdrom/ /var/www/ubuntu/
同様に、あなたは同じことをすることができます
tftproot
:mount --bind /media/cdrom/install/netboot/ /var/lib/tftpboot/
pxelinux.cfg
適切なデフォルトファイルを使用してディレクトリを作成する場合、tftpサーバーがpxelinux.cfg / defaultファイルを提供するように、マウントされたCDの上部にそのファイルをマウントできます。たとえば、次のようにpxelinux.cfg
ディレクトリを~/pxelinux.cfg
マウントできます。mount --bind ~/pxelinux.cfg /var/lib/tftpboot/pxelinux.cfg
(上記の例では、CD上のシンボリックリンク(または.iso)である
/var/lib/tftpboot/ubuntu-installer/i386/pxelinux.cfg
ため、 ディレクトリの実際のマウントポイントが終了することに注意してくださいpxelinux.cfg
)。
— PXEInstallServer。主にAsk Ubuntu形式に対応するために、わずかな書式設定、句読点、大文字の変更があります。
その記事はUbuntuドキュメンテーションwikiからです。「Ubuntuドキュメンテーションwikiへの貢献者」によって書かれ、CC-BY-SA 3.0の下でライセンスされています。
1 [イタリック体で囲まれたテキスト]は元のものではありません。私の解説です。
この方法とMitchが提案した方法の違いに注意してください。この方法では、CD / DVDまたはUSBフラッシュドライブから起動し、ネットワーク経由でシステムをインストールします。デフォルトでは、このネットワークはインターネットです。その方法がネットワーク上の数百台のマシンにインストールするのに合理的であるためには、おそらくネットワーク上でUbuntuリポジトリを作成してホストし、それをインストール先に指定する必要があります。
それを行うために必要な労力とインフラストラクチャは、上記のようにマシンをPXEブートするために必要なものと同等です。その方法は、あなたのニーズを満たすかもしれないがだから、私はあなたがいる場合、PXEブートを検討することをお勧めしたい、本当にせずにインストールする必要があり、「物理メディア。」
ネットワーク経由でUbuntuのインストールを開始するnet installメソッドを使用して、これを行うことができます。Netboot Installで説明されています
ネットワークインストーラー
ネットワークインストーラーを使用すると、ネットワーク経由でUbuntuをインストールできます。これは、たとえば、ライブCDの最小要件を満たしていないため、ブート不可能なCD-ROMを搭載した古いマシンや、グラフィカルインターフェイスベースのインストーラーを実行できないコンピューターがある場合に便利です。 / DVDまたはグラフィカルデスクトップを使用する前に追加の構成が必要なため、または多数のコンピューターにUbuntuを一度にインストールする場合。Ubuntu
これを実現する方法はたくさんあります。
1- ネットブート
独自のセットアップのために、このHOWTOのホスト名とIPアドレスを変更する必要があります。ここで説明する原則は、以下で説明するもの以外のDHCPおよびTFTPサーバーにも適用できます。代替サーバーソフトウェアの使用は、読者の課題として残されています。
WindowsコンピューターをTFTPおよびDHCPサーバーとして使用する方法については、Installation / WindowsServerNetbootに進んでください。
このHOWTOは、インストーラーを実行する限りの情報を提供します。Ubuntuの自動または無人インストールを実行する場合は、Installation / LocalNetを参照してください。
2- LocalNet
このインストール方法では、DHCP / BOOTP、TFTP、およびFTP / HTTPを使用してインストールソースを取得します。インストーラー自体は、Linuxカーネルとinitrdで構成されています。これらのファイルは、DHCP / TFTPブートプロセスを介して転送されます。
残りのインストールソースは、FTPまたはHTTP経由で転送できます。ターゲットマシンがインターネットにアクセスできる場合、これらのソースはUbuntuミラーから直接取得できます。または、インストールISOの1つをダウンロードし、ループバックマウントして、ローカルHTTP / FTPサーバーで提供することもできます。
CD(TFTPなど)から起動し、SSH経由でシステムをインストールします。
Hardy Ubuntu 12.04をssh経由で専用サーバーにインストールするためのクイックガイド。
サーバーとネットワークのインストールに関する完全なドキュメントをご覧ください
Ubuntu 18.04 LTSをインストールしたときにうまくいったのは、Isabel Castelloのガイドに基づいていました。これはUbuntu wikiのLocalNetガイドに基づいているようですが、私にとってははるかに読みやすく、理解しやすいものでした。
3つのノードを持つネットワーク上にいる必要があります。
ターゲットのBIOSでネットワークブートを有効にしてください。
BIOSの起動は、多くの場合、長押しするDelかF2、マシンの起動時に行われます。または、F12多くの場合、を押すと、ベンダー固有の方法でブートシーケンスを変更できるため、役立つ場合があります。
次の値を見つけます。
(ルーターの DHCP設定を参照/変更して、それらのいくつかを見つけることもできます。また、ターゲットマシンの起動時にネットワークブートステージに入ることができた場合、少なくともMACアドレスが表示される可能性があります。書き留めてください。)
ソースホストにtftpをインストールして構成します。
$ sudo apt-get install tftpd-hpa
$ grep TFTP_DIRECTORY /etc/default/tftpd-hpa
TFTP_DIRECTORY="/var/lib/tftpboot"
$ wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz
$ sudo tar xzvf netboot.tar.gz -C /var/lib/tftpboot/
$ rm netboot.tar.gz
grep
上記が異なるパスを示している場合は、この手順と次の手順にリストされているコマンドの値を適宜調整してください。
ソースホストにもbootpをインストール、構成、および実行します。
注:$TARGET_MAC
などの値を上記の手順2で収集した適切な値に置き換えます。$TARGET_MAC
アドレスは例えば、コロンで次のようになります00:00:39:2B:54:B5
、そして$SUBNET_MASK
、例えば点在しました255.255.255.0
。
$ sudo apt-get install bootp
$ vim ./bootptab
client: ha="$TARGET_MAC": ip=$TARGET_IP: gw=$GATEWAY_IP: sm=$SUBNET_MASK: td=/: hd=/: bf=pxelinux.0
$ sudo bootpd -d 4 -c /var/lib/tftpboot -s $PWD/bootptab
ネットワークブート機能が有効になっていることを確認しながら、ターゲットマシンを再起動します(F12必要に応じて、何も押さないか、BIOSで必要なものを押します)。
これで、テキストベースのインタラクティブなUbuntu 18.04インストーラーがターゲットマシンで起動します。Ubuntuを通常どおりインストールするかのように続行します。
追加:安全のため、インストールの完了後、ターゲットのBIOSのネットワークブート機能を無効に戻すようにしてください。
お役に立てれば!