WorkStation 环境 Centos 测试PXE linux自动安装

本例子中使用了CentOS7.6 minimal 系统,并且关闭了防火墙和selinux,并使用了dhcp、tftp、vsftpd服务。

【前言】

workstation 的主机地址为 192.168.182.0/24网段,以下是宿主机的信息:

【正式搭建】

假设PXE服务器是192.168.182.10 ,tftp的根目录在/var/lib/tftpboot下面,以后参数配置,均按此配置。

关闭防火墙和selinux的步骤略。

1、安装DHCP服务

yum -y install dhcp     #安装dhcp服务器

vi /etc/dhcp/dhcpd.conf   #修改dhcp配置文件

option domain-name "pxe-os.org";     #按你的规划指定一个域名

option domain-name-servers 192.168.182.10;     #按你的规划指定一个域名服务器

default-lease-time 600;

max-lease-time 7200;

authoritative;

subnet 192.168.4.0 netmask 255.255.255.0 {                           #定义一个可供分配的IP地址段

        range dynamic-bootp 192.168.182.200 192.168.182.250;

        option broadcast-address 192.168.182.255;

        option routers 192.168.182.1;

       filename        "pxelinux.0";      #linux 的pxe引导文件

       next-server     192.168.182.10;    #指定192.168.182.10为PXE服务器,从这里找PXE启动文件。

}

#编辑完成,启动dhcp服务

systemctl enable dhcpd

systemctl start dhcpd

2、安装tftp服务

yum -y install syslinux xinetd tftp-server   #安装tftp所需的组件,tftp的根目录会在:/var/lib/tftpboot目录下。

mkdir /var/lib/tftpboot/pxelinux.cfg    #建一个目录放pxe引导脚本

#复制syslinux中引导系统经常用到的几个软件:

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp /usr/share/syslinux/memdisk /var/lib/tftpboot/

cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

vi /etc/xinetd.d/tftp    #修改守护进程中的tftp-server配置文件

disable = no   #把disable =yes改为no

#启动tftp服务

 systemctl enable xinetd

systemctl start xinetd

3、安装vsftpd服务,这个服务在安装linux系统时使用

yum -y install vsftpd    #安装httpd

mkdir -p /var/ftp/pub

5、把ISO文件mount起来,然后把所有文件复制到tftpboot根目录下

【备注】ISO文件可以通过挂载方式进行挂载到虚拟机光驱

cd /mnt

mkdir cdrom
 mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom
 cp -R * /var/ftp/pub

将启动时需要使用的镜像文件拷贝到目录位置

cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/netboot/
cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/netboot/

6、拷贝配置

 cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
 cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot
 cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot
 cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot
cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot

7、创建无值守安装ks.cfg文件

创建一个 kickstart,即无人值守安装文件,名字叫 ks.cfg

vim /var/ftp/pub/ks.cfg
其内容如下:
 #platform=x86, AMD64, or Intel EM64T
 #version=DEVEL
 # Firewall configuration
 firewall --disabled
 # Install OS instead of upgrade
 install
 # Use NFS installation media
 url --url="ftp://192.168.182.10/pub/"
 rootpw --plaintext 123456
#root 的密码设为 123456
 # Use graphical install
 graphical
 firstboot disable
 # System keyboard
 keyboard us
 # System language
 lang en_US
 # SELinux configuration
 selinux disabled
 # Installation logging level
 logging level=info
# System timezone
 timezone Asia/Shanghai
 # System bootloader configuration
 bootloader location=mbr
 clearpart --all --initlabel
 part swap --asprimary --fstype="swap" --size=1024
 part /boot --fstype xfs --size=200
 part pv.01 --size=1 --grow
 volgroup rootvg01 pv.01
 logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow

%packages
 @core
 wget
 %end
 %post
 %end

8、创建PXE启动脚本

vi /var/lib/tftpboot/pxelinux.cfg/default ,写入以下内容:

 default menu.c32
 prompt 0
 timeout 30
 MENU TITLE Togogo.net Linux Training

 LABEL centos7_x64
 MENU LABEL CentOS 7 X64
 KERNEL /netboot/vmlinuz
 APPEND  initrd=/netboot/initrd.img inst.repo=ftp://192.168.182.10/pub ks=ftp://192.168.182.10/pub/ks.cfg 

【注意】最后这个 APPEND 写成一行,中间不要断行

9、启动所有服务

systemctl enable dhcpd
systemctl enable tftp
systemctl enable vsftpd
将以上服务设为开机自动启动

systemctl restart vsftpd
systemctl restart dhcpd
systemctl restart tftp
重新启动以上服务

【开始测试】

1、新创建虚拟机,设置如下:

2、启动虚拟机,它会自己找到PXE服务器,并通过DHCP服务获得IP地址等信息。

 

【错误处理】

出现/dev/root does not exist 错误,如下所示:

 原因是:内存不够大,设置内存为2g就好了..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值