PXE自动安装CentOS6与CentOS7的实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PXE自动安装CentOS6与CentOS7的实现相关的知识,希望对你有一定的参考价值。
一、 准备工作
- anaconda程序的运行配置文件 kickstart 文件,root用户家目录下的anaconda.cfg即ks.cfg文件。
- CentOS6与CentOS7系统镜像文件
- 软件/工具:httpd 、tftp-server 、dhcp 、syslinux 包
二、 安装软件包/工具,启用
- yum install Packages { httpd , tftp-server , dhcp , syslinux }
- 配置dhcpd.conf文件,示范文件地址:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
- 如果在自己实验,网卡选择主机模式,并且关闭DHCP服务
```
subnet 192.168.163.0 netmask 255.255.255.0 {
range 192.168.163.40 192.168.163.60;#dhcp服务的ip地址范围
option routers 192.168.163.1;#网关
filename"pxelinux.0";#文件名写死,固定在tftp空间寻找这一个文件
next-server 192.168.163.20;#系统文件提供机器的地址
#详细dhcp配置请自行了解
}
```
- httpd服务使用
- httpd服务目录地址 /ver/www/html/
mkdir -pv centos/{6,7} ksdir #kickstart 文件放到 ksdir目录下,方便寻找;
- 将系统镜像文件分别挂载到 centos/6和7的目录下
mount /dev/sr0 /var/www/html/centos/6 #挂载7同法 #导入的系统镜像文件,挂载加 -o loop 比较通用
- 将所有共享出去的文件权限修改为 644 权限;不然无法获取到安装文件
- httpd服务目录地址 /ver/www/html/
-
启动服务
- 关闭SElinux 修改/etc/selinux/config文件 SELINUX=disabled
- 关闭防火墙
service iptables stop chkconfig iptables off #开机不启动 #centos6方法 systemctl stop firewalld systemctl disable firewalld #centos7方法
- 启动服务
systemctl enable httpd #开机自动启动http dhcp tftp 服务 systemctl enable dhcpd systemctl enable tftp.socket
三、 文件配置
- kickstart 创建
- 安装包 system-config-kickstart ,命令system-config-kickstart 打开软件,可以根据自己的需求直接创建kickstart文件。
- 使用root家目录中的 anaconda.cfg文件修改
- kickstart文件格式
简单说明,详情请自行了解
#version=DEVEL
auth --enableshadow --passalgo=sha512 #密码加密方式
url --url=http://192.168.163.20/centos/7 #使用什么方式去引导启动
install #安装
text #命令模式安装 可以选择
reboot #安装完,自动重启
selinux --disabled #关闭SElinux
firewall --disabled #关闭防火墙
firstboot --enable #初始化开启
ignoredisk --only-use=sda #选择磁盘 sda
keyboard --vckeymap=us --xlayouts=‘us‘ #语言和键盘选择
lang en_US.UTF-8 #文字选择
network --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --activ
ate #网卡设置
network --hostname=localhost.localdomain #主机名设置
rootpw --iscrypted xxxxxxx #设置密码 为加密文本
services --disabled="chronyd"
timezone Asia/Shanghai --isUtc --nontp #时区选择
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda #分区引导
zerombr yes #清除分区
clearpart --all --initlabel #清空磁盘
#磁盘分区
part pv.198 --fstype="lvmpv" --ondisk=sda --size=10240
part /boot --fstype="xfs" --ondisk=sda --size=1024
volgroup centos --pesize=4096 pv.198
logvol / --fstype="xfs" --size=5120 --name=root --vgname=centos
logvol swap --fstype="swap" --size=2048 --name=swap --vgname=centos
logvol /app --fstype="xfs" --size=2048 --name=app --vgname=centos
eula --agreed #同意选项 centos7中必备
%packages #安装的包
@^minimal
@core
kexec-tools
vim-enhanced
%end
%post #安装后运行脚本
rm -f /etc/yum.repos.d/*
cat > /etc/yum.repos.d/base.repo <<EOF
[base]
name=basemage
baseurl=http://192.168.163.141/centos/6
gpgcheck=0
EOF
useradd arno
echo 123456 |passwd --stdin arno &> /dev/null
%end
- httpd哪些文件
-
配置tftp中的文件
- tftp为轻量级共享文件方式,网卡自带集成tftp的客户端
- 共享目录为:/var/lib/tftpboot
- 安装syslinux包后,我们要用到/usr/share/syslinux目录下两个的文件
- 文件全部完成后,注意权限需要 644
cd /var/lib/tftpboot
cp /usr/share/syslinux/{pxelinux.0,menu.c32} .
#将两个文件拷贝过来
#menu.c32是简单的启动菜单文件 ,启动页面比较简陋
mkdir {6,7}
#创建系统区分目录,将两个系统的启动文件拷入 vmlinuz initrd.img
cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} .
#拷贝进tfpboot目录
mkdir pxelinux.cfg
#创建目录,放置菜单的布局配置文件
cp /var/www/html/centos/6/isolinux/isolinux.cfg pxelinux.cfg/default
#拷贝进isolinux.cfg目录下,并改名为default
-
tftp-server哪些文件?
- 镜像里的 isolinux.cfg 文件格式
default menu.c32 #菜单样式文件
timeout 60 #倒计时6s后自动选择默认选项
menu title PXE CentOS 7 #菜单标题
label desktop
menu label ^Install MIni CentOS 7 # 选项 ; ‘^‘表示首字母快捷键选择
kernel 7/vmlinuz #内核文件路径
append initrd=7/initrd.img ks=http://192.168.163.20/ksdir/ks7-mini.cfg
#initrd.img文件路径,和kickstart文件路径
label mini
menu label Install ^mini CentOS 6
menu default #默认选项;进入菜单,光标自动选择该选项
kernel 6/vmlinuz
append initrd=6/initrd.img ks=http://192.168.163.20/ksdir/ks6-mini.cfg
label centos6mini
menu label Install Desktop ^CentOS 6
kernel 6/vmlinuz
ppend initrd=6/initrd.img ks=http://192.168.163.20/ksdir/ks6-desktop.cf
g
label local
#磁盘启动 ;不安装系统时,该项设置成默认选项,不然重复安装系统
menu label Boot from ^local drive
localboot 0xffff
menu end
四、 打开需要安装系统的电脑,在一个局域网内,且没有其他DHCP服务器的环境;选择网卡启动------------------>成功
以上是关于PXE自动安装CentOS6与CentOS7的实现的主要内容,如果未能解决你的问题,请参考以下文章
linux cobbler 自动安装centos6与centos7系统
centos7 搭建pxe 安装centos windows(非全自动)(这个教程测试centos6和7.2可以用,Windows各版本也可以)