pxe+kickstart(无人值守安装linux)

pxe+kickstart

环境:
服务端:192.168.10.10
客户端:后面创建

指定网卡并在虚拟网络编辑器中添加相应的网卡

pxe+kickstart(无人值守安装linux)
pxe+kickstart(无人值守安装linux)
重启网卡并关闭防火墙

[root@localhost ~]# systemctl restart network
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

具体操作:
1、安装dhcp服务并更改配置文件 重启

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
#在末尾添加
subnet 192.168.10.0 netmask 255.255.255.0 {      #声明一个网段
       range 192.168.10.100 192.168.10.200;      #指定DHCP分配ip地址的范围
       next-server 192.168.10.20;   #tftp服务器的ip(也就是本机的ip)
       filename "pxelinux.0";    #引导文件的第一个文件名称  (isolinux.bin)
}
[root@localhost ~]# systemctl restart dhcpd

释:
pxelinux.0 是指通过pxe来启动引导文件
isolinux.bin 指通过镜像来启动引导文件

2、安装tftp服务和引导文件并修改配置文件

[root@localhost ~]# yum -y install tftp-server xinetd
注:xinetd是TFTP的管理程序
[root@localhost ~]# vim /etc/xinetd.d/tftp
#将disable后面的yes改为no
disable                 = no

3、安装syslinux

[root@localhost ~]# yum -y install syslinux   #里面有引导文件

3.1、把需要的引导文件放到TFTP的传输目录下

[root@localhost ~]# cd /var/lib/tftpboot/   
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./ 
 #引导程序
[root@localhost tftpboot]# mount /dev/sr0 /media/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost tftpboot]# cp /media/images/pxeboot/vmlinuz ./
#虚拟的内核
[root@localhost tftpboot]# cp /media/images/pxeboot/initrd.img ./
#虚拟的根文件系统
[root@localhost tftpboot]# cp /media/isolinux/vesamenu.c32 ./
#菜单
[root@localhost tftpboot]# cp /media/isolinux/splash.png ./
#背景图片
[root@localhost tftpboot]# cp /media/isolinux/boot.* ./
#提示信息

3.2、创建引导程序的配置文件的目录

[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cp /media/isolinux/isolinux.cfg pxelinux.cfg/default
#引导程序默认的配置文件

注:
因为要让程序自动安装,所以要选择默认的安装配置 只能创建一个目录,让其加载default的配置文件

3.3、修改引导程序的配置文件 并重启服务

[root@localhost tftpboot]# vim pxelinux.cfg/default
1 default linux    #把菜单选择成默认安装linux的选项
64   append initrd=initrd.img inst.stage2=ftp://192.168.10.20/centos ks=ftp://192.168.10.20/centos/ks.cfg quiet
#指定ftp服务器的地址和kickstart配置文件的地址
[root@localhost tftpboot]# systemctl restart xinetd
[root@localhost tftpboot]# systemctl restart tftp

4、安装ftp服务

[root@localhost tftpboot]# yum -y install vsftpd
[root@localhost tftpboot]# cd /var/ftp/  #匿名用户的共享目录
[root@localhost ftp]# mkdir centos
[root@localhost ftp]# cd centos/
[root@localhost centos]# cp -r /media/* ./    #将整个镜像文件复制到共享目录下
注:
有可能会出现空间分配不足的问题 新添加一块硬盘,重启虚拟机并将添加的硬盘分成一个分区,然后挂载到 /var/ftp 就ok了

#kickstart文件
方法一:复制本身主机上面的文件
方法二:可以通过图形化界面来生成

方法一:直接复制

[root@localhost centos]# cp /root/anaconda-ks.cfg ./ks.cfg
#复制本机的kickstart文件
[root@localhost centos]# chmod +r ks.cfg
[root@localhost centos]# vim ks.cfg
 5 url --url=ftp://192.168.10.20/centos   #从ftp中获取完整的操作系统
 24 timezone Asia/Shanghai --isUtc   #时间同步
 #最后一行添加:
 67 reboot    #重启
 68 eula --agreed   #自动同意协议文件
 [root@localhost centos]# systemctl restart vsftpd   #重启ftp服务

验证:
客户端:
新建一台虚拟机
pxe+kickstart(无人值守安装linux)
pxe+kickstart(无人值守安装linux)
直接开启虚拟机 出现以下窗口直接关闭即可
pxe+kickstart(无人值守安装linux)
接下来只需要等待安装即可
pxe+kickstart(无人值守安装linux)
pxe+kickstart(无人值守安装linux)

方法二:通过图形化界面生成kickstart文件

1、自建一个yum源,名字必须是

[root@localhost ~]# vim /etc/yum.repos.d/development.repo  
[development]   #这个名字不可变
name=xiix
baseurl=file:///rzh 
enabled=1
gpgcheck=0

2、安装system-config-kickstart

[root@localhost ~]# yum -y install system-config-kickstart
[root@localhost centos]# system-config-kickstart

基础配置:
pxe+kickstart(无人值守安装linux)
安装方法:
pxe+kickstart(无人值守安装linux)
引导程序需要pxe的引导文件
pxe+kickstart(无人值守安装linux)
重新制定分区 也可以保留现在的分区
pxe+kickstart(无人值守安装linux)
添加分区:
pxe+kickstart(无人值守安装linux)
pxe+kickstart(无人值守安装linux)
pxe+kickstart(无人值守安装linux)
防火墙:
pxe+kickstart(无人值守安装linux)
安装图形化界面:
pxe+kickstart(无人值守安装linux)
保存:

3、修改ks.cfg配置文件

[root@localhost ~]# cd /var/ftp/centos/
[root@localhost centos]# ls
CentOS_BuildTag  GPL       ks.cfg    repodata                      TRANS.TBL
EFI              images    LiveOS    RPM-GPG-KEY-CentOS-7
EULA             isolinux  Packages  RPM-GPG-KEY-CentOS-Testing-7
[root@localhost centos]# vim ks.cfg
#在末尾这两行下添加
%packages
@gnome-desktop
#以下三行是添加的内容
@11
initial-setup
initial-setup-gui    #这两行是初始化操作系统

%end
user --name=test --password=123.com   #创建普通用户
eula --agreed   #同意协议
[root@localhost centos]# systemctl restart vsftpd

之后验证的步骤和前面一样

上一篇:TQ2440与Ubuntu进行TFTP传输


下一篇:windows shell命令和快捷命令