网络自动安装centos{dhcp+pxe+tftp+http)

本文档详述了如何通过PXE(网络引导)结合dhcp、tftp、http服务来实现CentOS的自动安装。首先,制作ks.cfg配置文件,包括网络设置、系统语言、时区等信息,并通过http服务提供。接着,安装和配置tftp及dhcp服务,确保网络引导文件pxelinux.0、vmlinuz和initrd能被正确获取。最后,将pxe相关文件放入tftp目录,设置好引导参数,完成网络自动安装的准备工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


开始:
开机选PXE网卡启动(一般按F12)--dhcp获取ip和pxelinux.0位置--tftp下载pxelinux.0、vmlinuz、initrd--通过pxelinux.0文件找到pxelinux.cfg里的default配置文件,按配置文件找着vmlinuz引导centos进入安装界面--根据ks.cfg去指定http下载安装文件,并自动安装完成
本机ip:192.168.0.6

一、制作ks.cfg

1. 全新安装centos,选择好所需定制包

2. 完成安装后会在root下面生成一个install.log(rpm包列表)anaconda-ks.cfg(下文的ks.cfg基于此文件修改)

3. 将其简单编辑下保存起来
   cat /root/install.log | grep Installing | sed 's/Installing //g'|sed 's/^[0-9]/+://g' > /tmp/rpm.log

4. 创建存放rpm包的目录
   mkdir -p /tmp/cdrom/CentOS

5. 将centos光盘或iso文件挂在到mnt下
   mount -o loop CentOS-5.5-i386-bin-DVD.iso /mnt
   mount /dev/cdrom /mnt/

6. 将所需软件包(rpm.log 列出的)copy到 /tmp/cdrom/CentOS/ 下

使用shell如下:
#!/bin/bash
DEBUG=0
LT_CD=/mnt
ALL_RPMS_DIR=/mnt/CentOS
LT_RPMS_DIR=/tmp/cdrom/CentOS/
packages_list=/tmp/rpm.log
number_of_packages=`cat $packages_list | wc -l`
i=1
while [ $i -le $number_of_packages ] ; do
line=`head -n $i $packages_list | tail -n -1`
name=`echo $line | awk '{print $1}'`
version=`echo $line | awk '{print $3}' | cut -f 2 -d :`
if [ $DEBUG -eq "1" ] ; then
echo $i: $line
echo $name
echo $version
fi
if [ $DEBUG -eq "1" ] ; then
ls $ALL_RPMS_DIR/$name-$version*
if [ $? -ne 0 ] ; then
echo “cp $ALL_RPMS_DIR/$name-$version* ”
fi
else
echo “cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/”
cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/
# in case the copy failed
if [ $? -ne 0 ] ; then
echo “cp $ALL_RPMS_DIR/$name-$version* ”
cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/
fi
fi
i=`expr $i + 1`
done

7. 赋予执行权限 chmod 777 rpm.sh
   执行shell   ./rpm.sh

8. 将除CentOS目录以外的文件同步到cdrom文件夹里
   rsync -avpz --exclude=CentOS /mnt/ /tmp/cdrom/

10.生成ks.cfg文件
cat /tmp/cdrom/CentOS/ks.cfg

install
url --url http://192.168.0.6/
lang en_US.UTF-8
keyboard us
network --device=eth0 --bootproto static --ip 192.168.0.6 --netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 8.8.8.8 --hostname csys
rootpw --iscrypted $1$ioa/i9np$zbOdjS52XKA62z7NC5KwN/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=hdb
text
firstboot --disable
logging --level=info
reboot
zerombr
clearpart --all --initlabel
part swap --fstype="swap" --size=2000
part /boot --fstype="ext3" --size=100
part / --fstype="ext3" --size=20000
part /opt --fstype="ext3" --grow --size=1
skipx
%packages --resolvedeps
@base
@core
@dialup
@editors
@text-internet
keyutils
trousers
fipscheck
device-mapper-multipath
%post
echo "nameserver 202.106.46.151" >> /etc/resolv.conf
/sbin/chkconfig microcode_ctl off
/sbin/chkconfig lvm2-monitor off
/sbin/chkconfig readahead_early off
/sbin/chkconfig kudzu off
/sbin/chkconfig mcstrans off
/sbin/chkconfig isdn off
/sbin/chkconfig auditd off
/sbin/chkconfig restorecond off
/sbin/chkconfig cpuspeed off
/sbin/chkconfig irqbalance off
/sbin/chkconfig portmap off
/sbin/chkconfig nfslock off
/sbin/chkconfig mdmonitor off
/sbin/chkconfig rpcidmapd off
/sbin/chkconfig rpcgssd off
/sbin/chkconfig messagebus off
/sbin/chkconfig bluetooth off
/sbin/chkconfig netfs off
/sbin/chkconfig pcscd off
/sbin/chkconfig acpid off
/sbin/chkconfig apmd off
/sbin/chkconfig haldaemon off
/sbin/chkconfig hidd off
/sbin/chkconfig autofs off
/sbin/chkconfig cups off
/sbin/chkconfig rawdevices off
/sbin/chkconfig sendmail off
/sbin/chkconfig gpm off
/sbin/chkconfig anacron off
/sbin/chkconfig atd off
/sbin/chkconfig yum-updatesd off
/sbin/chkconfig avahi-daemon off
/sbin/chkconfig firstboot off
/sbin/chkconfig local off
/sbin/chkconfig smartd off
/usr/sbin/eject

11.制作iso文件(网络安装,可省略)
mkisofs -r -T -J -V CentOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /tmp/CentOS5.5-i386.iso /tmp/cdrom/

12.将/tmp/cdrom/目录设置成http跟目录。

 


二、安装tftp

安装
yum install tftp*

配置
-bash-3.2# more /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -u nobody -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

启动
-bash-3.2# /etc/init.d/xinetd restart

查看确认
-bash-3.2# chkconfig --list |grep tftp
        tftp:           on


三、安装dhcp

安装
-bash-3.2# yum install dhcp*

配置
-bash-3.2# more /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8;
option time-offset -18000;
range dynamic-bootp 192.168.0.200 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.0.6;
filename "/pxelinux.0";
}
host wy {
        hardware ethernet 40:61:86:7C:77:F3;
        fixed-address 192.168.0.6;
}

启动
-bash-3.2# /etc/init.d/dhcpd start

卡机自动启动
-bash-3.2# chkconfig --level 2345 dhcpd on

查看确认
-bash-3.2# chkconfig --list |grep dhcpd
dhcpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off


四. pxe相关文件放到tftp目录

挂载centos5.5光盘到/mnt目录


-bash-3.2# mkdir /tftpboot/pxelinux.cfg
-bash-3.2# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
-bash-3.2# cp /mnt/isolinux/vmlinuz /tftpboot/
-bash-3.2# cp /mnt/isolinux/initrd.img /tftpboot/
-bash-3.2# vi /tftpboot/pxelinux.cfg/default

default linux
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img ramdisk_size=8192 ks=http://192.168.0.6/ks.cfg
label text
  kernel vmlinuz
  append initrd=initrd.img text
label ks
  kernel vmlinuz
  append ks initrd=initrd.img
label local
  localboot 1
label memtest86
  kernel memtest
  append -


#文件说明dhcpd.conf:
/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。

1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户

   参 数                                解 释
ddns-update-style               配置DHCP-DNS 互动更新模式。
default-lease-time              指定确省租赁时间的长度,单位是秒。
max-lease-time                  指定最大租赁时间长度,单位是秒。
hardware                        指定网卡接口类型和MAC地址。
server-name                     通知DHCP客户服务器名称。
get-lease-hostnames flag        检查客户端使用的IP地址。
fixed-address ip                分配给客户端一个固定的地址。
authritative                    拒绝不正确的IP地址的要求。


2.DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等

声 明                                                 解 释
shared-network                              用来告知是否一些子网络分享相同网络。
subnet                                      描述一个IP地址是否属于该子网。
range                                       起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值