PXE——Linuxオペレーティングシステムの無人自動インストール(ピットレコードを踏んで)

ここに画像の説明を挿入

DHCPサービス

DHCPサーバーは主に、企業の内部ネットワーク上のクライアントIPアドレスなどのネットワークパラメーター割り当てるために使用されます

ネットワークからクライアントの選択が開始されたときに無人環境、それがでますブロードキャストデータパケットを送信する形でDHCPサーバーを見つけ、DHCPは、IPアドレスを取得するには、読み取り開始パラメータは、TFTP経由でファイルを共有することができた後。

(1)DHCPサービス操作をインストールしますyum install -y dhcp
(2)構成ファイルを変更して、ネットワークパラメータをクライアントに割り当てます

[root@python ~]# vim /etc/dhcp/dhcp.conf
#dhcpd.conf
#
# Sample configuration file for ISC dhcpd
log-facility local7;

# A slightly different configuration for an internal subnet.
subnet 192.168.213.0 netmask 255.255.255.0 {
  range 192.168.213.3 192.168.213.254;
  option domain-name-servers 192.168.213.163;
  option subnet-mask 255.255.255.0;
  option routers 192.168.213.2;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 192.168.213.163;
  filename "pxelinux.0";
}
[root@python ~]# systemctl start dhcpd
[root@python ~]# systemctl enable dhcpd
[root@python ~]# netstat -tunpl|grep 67
udp        0      0 0.0.0.0:67              0.0.0.0:*                           5440/dhcpd
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1506/dnsmasq

TFTPサービス

TFTPサービスはクライアントにシンプルなファイル共有を提供します。FTPのような豊富な機能はありませんが、シンプルなデザインのため、TFTPは小さくてシンプルな PXEスタートアップファイルの転送に非常に適しています。

#安装TFTP
[root@python ~]# yum install -y tftp-server
#修改配置文件
[root@python ~]# cat /etc/xinetd.d/tftp
service tftp
{
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -s /var/lib/tftpboot
        disable         = no	#关闭禁用状态
        per_source      = 11
        cps             = 100 2
        flags           = IPv4
}

tftpの動的管理ツール
tfptは、xinetdによって動的に管理されるサービスをインストールします。サービスを開始するには、xinetdを開始するだけです。

[root@python ~]# yum install xinetd
#将客户端所需要的启动引导文件复制到TFTP服务器
[root@python ~]# yum install -y syslinux	#通过该软件包获取引导文件
[root@python ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@python ~]# mount -o loop -t iso9660 /iso/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u7
[root@python ~]# cp /var/ftp/centos7u7/isolinux/vmlinuz /var/lib/tftpboot/centos7u7/
[root@python ~]# cp /var/ftp/centos7u7/isolinux/vesamenu.c32 /var/lib/tftpboot
[root@python ~]# cp /var/ftp/centos7u7/isolinux/initrd.img /var/lib/tftpboot/centos7u7/
[root@python ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@python ~]# cp /var/ftp/centos7u7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@python ~]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@python pxelinux.cfg]# chmod 644 default
[root@python ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 60
display boot.msg
menu background splash.jpg
menu title CentOS X of Zhao

label centos7 64 <Auto Installation>
  menu label Install CentOS Linux ^7 x86_64 <Auto>
  kernel centos7u7/vmlinuz
  append initrd=centos7u7/initrd.img inst.stage2=ftp://192.168.213.163/centos7u7 inst.repo=ftp://192.168.213.163/centos7u7 inst.ks=ftp://192.168.213.163/centos-7-ks.cfg

label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff

menu end
#准备图片
[root@python ~]# cp splash.jpg /var/lib/tftpboot/splash.jpg
[root@python ~]# systemctl start xinetd
[root@python ~]# systemctl enable xinetd
[root@python ~]# ss -nutlp|grep 69
udp    UNCONN     0      0         *:69                    *:*                   users:(("xinetd",pid=14264,fd=5))

FTPサービス

FTP(ファイル転送プロトコル)ファイル転送プロトコルvsftpは、データ共有にFTPプロトコルを使用するソフトウェアです。vsftpの主な機能は、安全なデータ共有サービス提供することです。

CentOSシステムファイル共有サービスプラットフォームとしてvsftpを使用します。クライアントがネットワークから開始して正式にインストールインターフェイスに入ると、Centos CDのシステムファイルを読み取って最終的なインストールを完了する必要があります。これらのファイルはvsftpと共有され、インターネットユーザー。

[root@python ~]# yum install -y vsftpd
[root@python ~]# systemctl start vsftpd
[root@python ~]# systemctl enable vsftpd

自動インストールの例

システム環境を初期化する

[root@python ~]# systemctl stop firewalld
[root@python ~]# systemctl disable firewalld
[root@python ~]# sed -i.bak 's/=enforcing/=disabled/' /etc/sysconfig/selinux
[root@python ~]# sed -i.bak 's/=enforcing/=disabled/' /etc/selinux/config
[root@python ~]# setenforce 0
[root@python ~]# cd /var/ftp/

インストールディレクトリ構造を作成する

[root@python ftp]# mkdir centos6u8
[root@python ftp]# mkdir centos7u7
[root@python ftp]# cd /var/lib/tftpboot/
[root@python tftpboot]# mkdir centos6u8
[root@python tftpboot]# mkdir centos7u7

DHCPを開始するように構成する

スタートアップTFTPを構成する

自動応答ファイルを作成する

[root@python ~]# yum install system-config-kickstart
[root@python ~]# system-config-kickstart
#检查有无语法错误
[root@python ~]# ksvalidator ks.cfg
[root@python ~]# mv ks.cfg /var/ftp/centos-7-ks.cfg

仮想マシンテストを自動的にインストールする

ピットに足を踏み入れる

(1)ブートローダーオプション
ここに画像の説明を挿入

# System bootloader configuration
bootloader --location=mbr	#在主引导记录(MBR)中安装引导装载程序
# Partition clearing information
clearpart --all

ブートローダーをインストールしないと(下記を参照)、黒い画面が表示されて行き詰まります。booting from local disk

# System bootloader configuration
bootloader --location=none

カーネルパラメータnet.ifnames=0 biosdevname=0追加すると、ネットワークカード名がeth0に変更されます

# System bootloader configuration
bootloader --append="net.ifnames=0 biosdevname=0" --location=mbr

(2)インストール方法
ここに画像の説明を挿入FTPディレクトリも設定ファイルでcentos-7-ks.cfg変更可能

(3)イメージをマウントすることを忘れないでください
mount -o loop -t iso9660 /iso/CentOS-7-x86_64-DVD-1908.iso /var/ftp/centos7u7

マウントされていない場合、エラーが報告され、インストーラーのメインパスが.treeinfoに見つかりません

Warning: can't find installer maininage path in .treeinfo
Warning: Downloading 'ftp://192.168.213.163/centos7u7/Live0S/squashfs.img' failed!
Warning anaconda: failed to fetch stage2 from ftp://192.168.213.163/centos7u7

(4)ks.cfgファイルをエクスポートした後、名前を変更し、最後に次のコンテンツを追加します

%packages
@^minimal
@core
%end

(5)インストールされた画像にはサイズ(640ピクセル* 480ピクセル)の要件があり、要件を満たしていない画像は失敗を表示する場合があります
(6)正しくミラーリングしないと、オペレーティングシステムのインストールが失敗する場合があります

テストCentOS-6.10-x86_64-minimal.isoを自動的にインストールできません
ここに画像の説明を挿入
(7)FTPからキックスタットを取得できませんでしたエラー
がselinuxであるか、ftpが匿名モードに設定されていない可能性があります
(8)VMwareワークステーションはデバイス/資格情報ガードと互換性がありません
管理者(管理者)としてWindows Powershellを実行します( Windowsキー+ X)、コマンドを実行しbcdedit /set hypervisorlaunchtype off、コンピューターを再起動します

この問題は、Windows 10の自動更新後に発生したWindowsのシステムバージョンに関連しているはずです。

おすすめ

転載: www.cnblogs.com/zhaoya2019/p/12761520.html