關於linux - Centos 7 系統下使用PXE網絡的方式(pxe+dhcpd+tftp+httpd)安裝操作系統


PXE(Pre-boot Execution Environment)是由Intel設計的協議,它可以使計算機通過網絡而不是從本地硬盤、光驅等設備啟動。

現代的網卡,一般都內嵌支持PXE的ROM芯片。當計算機引導時,BIOS把PXE client調入內存執行,並顯示出命令菜單,

經用戶選擇后,PXE client將放置在遠端的操作系統通過網絡下載到本地運行。

 

>>>>>>這里筆者將PXE網絡安裝Centos 7的方法記錄如下,首先服務端(Centos 7)的需要准備的環境如下:

操作系統鏡像:CentOS-7-x86_64-DVD-1503-01.iso    //解壓到/var/www/html/cento目錄

dhcpd服務的安裝與配置:可參考《關於linux - Centos 7 下DHCP服務的安裝與配置》

tftp服務的安裝與配置:可參考《linux-Centos 7下tftp-server服務的安裝與配置》

如連接失效,可到筆者博客網:http://www.cnblogs.com/5201351進行查找

===========================================================================

1、除了如上環境,我們還需要安裝httpd服務,再到httpd默認的根目錄下創建centos目錄,並將系統鏡像掛載於此

[root@5201351 ~]# yum install httpd -y
[root@5201351 ~]# mkdir /var/www/html/centos
[root@5201351 ~]# mount CentOS-7-x86_64-DVD-1503-01.iso /var/www/html/centos

2、使用yum的方式安裝syslinux軟件包,安裝此軟件包的目錄主要是為了獲取對PXE網絡安裝有用的pxelinux.0文件

     安裝syslinux軟件包后,我們需要將pxelinux.0文件復制到tftp默認的根目:/var/lib/tftpboot

[root@5201351 ~]# yum install syslinux  -y
[root@5201351 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/   //pxelinux.0,是一個bootloader,類似於grub,通過它來load kernel

3、接下來就是准備tftp的根目錄中,主要是將系統鏡像中的文件放入tftp的根目錄,除了default文件,其他全部放置在tftp根目錄

[root@5201351 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
#########################################################################################
[root@5201351 ~]# cd /var/www/html/centos
[root@5201351 centos]# cp isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@5201351 centos]# cp images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@5201351 centos]# cp isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/

這時,我們可以看到/var/lib/tftpboot目錄的結構如下:

============================================================================

4、接下來就是配置pxelinux.cfg/default文件,這里我們可以只是簡單的修改append initrd項的值

label linux
  menu label ^Install CentOS 7
  menu default                                                                //設置此項后,剛這個菜單為默認的選中啟動菜單
  kernel vmlinuz
  append initrd=initrd.img inst.ks=http://192.168.0.1/ks.cfg quiet            //這里注明ks.cfg文件的位置,即實現無人值守全自動安裝
  #append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet  //此項為默認的值,我們將其注釋

  注:如果我們只是單純的使用pxe網絡有人值守的方式安裝,即只需要設置inst.stage2=http://192.168.0.1/centos即可

============================================================================

5、如果只是現實有人值守的方式安裝,只需要上面的操作,服務端即已經實現了pxe網絡安裝的功能

     當然我們在工作中,可能更多的是需要用到pxeKickStart現實操作系統無人值守的的安裝,這樣我們可能

     還需要得安裝system-config-kickstart軟件包,安裝完成后就能使用system-config-kickstart命令生成ks.cfg文件

     當然我們如果對ks.cfg文件的配置熟悉,也可以直接創建/var/www/html/ks.cfg文件,筆者這里創建的ks.cfg內容如下:

# platform=x86, AMD64, or Intel EM64T
# version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'# Reboot after installation
reboot
# Root password
rootpw --iscrypted $6$Pf08DlF16p7svB6o$YngeMfbPtRPpGXT.H6r6MIhKNhf3s/34mamd1jarSU2RI08hn/wFB6ayWYbrRajmW0JhqrA1VFoGgNnGj6usl1
# System timezone
timezone Asia/Shanghai --isUtc
# Use network installation
url --url="http://192.168.0.1/centos"                 #最后面不需要加 /
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8
# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --onboot=yes --noipv6 --hostname=5201351
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled

# System bootloader configuration
# 新硬盤需要創建mbr
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
part pv.123 --fstype="lvmpv" --ondisk=sda --size=953336
part /boot --fstype="xfs" --ondisk=sda --size=500
volgroup centos --pesize=4096 pv.123
logvol /data  --fstype="xfs" --size=613365 --name=data --vgname=centos
logvol swap  --fstype="swap" --size=32764 --name=swap --vgname=centos
logvol /home  --fstype="xfs" --size=204800 --name=home --vgname=centos
logvol /  --fstype="xfs" --size=102400 --name=root --vgname=centos
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

%packages
@core
@chinese-support
vim
ntp
%end
#########################################################################
%post
##
%end

6、最后我們再使用如下命令啟動各項服務即可,網絡中的客戶端便能從pxe網絡啟動進行無人值守的系統安裝了。

[root@5201351 ~]# systemctl restart dhcpd.service
[root@5201351 ~]# systemctl restart xinetd.service
[root@5201351 ~]# systemctl restart tftp.socket
[root@5201351 ~]# systemctl restart tftp.service
[root@5201351 ~]# systemctl restart httpd.service

 

尊重別人的勞動成果 轉載請務必注明出處:http://www.cnblogs.com/5201351/p/5128912.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM