不说那些没用的。
pxe安装其实不是一种安装方式,只是一种引导方式而已。他是网络安装的一个变种。
他通过三个软件来实现安装。
dhcp为自动获得ip地址的
tftp为引导文件的下载
httpd提供系统文件下载的
下面是过程:
安装三个软件:
[[email protected] ~]# yum install httpd tftp-server tftp dhcp -y
设置yum源就不介绍了吧。
设置dhcp:
[[email protected] dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example dhcpd.conf
vim的使用就不介绍了吧。
拷贝一个模板,
default-lease-time 3600; # 默认租约
max-lease-time 7200; #最长租约
log-facility local5; #日志。 要在/etc/rsyslog.conf中添加local5日志设施。也可以默认不用修改。
subnet 192.168.40.0 netmask 255.255.255.0 { #添加作用域。
range 192.168.40.10 192.168.40.20; #地址池
filename "pxelinux.0"; #客户端要去找的文件。
next-server 192.168.40.100; #客户端去哪里找filename的文件。
}
配置tftp:
复制文件,可能位置不一样,但差不多
pxelinux.0文件一定要对应好版本
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #pxelinux.0就是syslinux生成的。
cp /mnt/cdrom/isolinux/{splash.jpg,vesamenu.c32} /var/lib/tftpboot/ #centos6光盘中的文件。用来生成引导窗口,并通过配置文件加载对应内核和传递参数。相当于是grub的第二阶段所需的文件。
cp /mnt/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/ #用于pxe引导的内核与initrd文件, 不过我这里用md5sum发现光盘里正常的内核与initrd文件与pxe目录里面的一样,centos7也是。
mkdir /var/lib/tftpboot/pxelinux.cfg/ #这个里面就是要放vesamenu.c32的配置文件。
cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
tftpboot目录最终样子:
├── initrd.img #虚拟文件系统
├── pxelinux.0 #对应好版本
├── pxelinux.cfg
│ └── default #提供安装菜单
├── splash.jpg
├── vesamenu.c32
└── vmlinuz #应该是内核吧
修改default文件,就是为了指定下载ks位置
这个文件是提供安装菜单,一般修改一个地方
label linux
menu label ^Install CentOS6 #显示的菜单项
menu default #如果有多个label,默认选择这个
kernel vmlinuz #内核文件
append initrd=initrd.img ks=http://192.168.40.100/ks.cfg #传递给内核的参数
蓝色部分为指明使用ks的配置来安装系统。
hpptd设置:
httpd服务不用修改默认值
下载位置为/var/www/html/目录下的文件
测试就是在目录下建立一个index.html,远程访问以下这个ip地址即可
把ks.cfg和系统安装文件的packages放在html目录下即可
ks.cfg是自动化安装anaconda执行的脚本
packages是yum源。系统初始化安装后从这里下载所需要的软件包
ks.cfg文件三个地方注意一下,其他设置看ks.cfg,可以安装一个相同的机器,把/root/anaconda-ks.cfg拷贝过来修改使用
安装方式:
url --url="http://172.16.253.54/centos68/"
yum源码:
repo --name="CentOS" --baseurl=http://172.16.253.54/centos68/ --cost=100
这两个地方都要指好网络位置,要不然不知道从哪里下载安装文件。。
再就是分区哪里,如果不指定,那么他会分一个sda1,剩下的就是逻辑卷。
这里一般的ks.cfg是注释掉的,如果环境相同,可以把这里启用,用grow选项把剩余空间都利用。
我这里是一个简单的分区方式,根据自己的环境设置分区即可
part /boot --fstype=ext4 --size=200
part swap --size=2000
part / --fstype=ext4 --grow --size=200
--grow:剩下的全部磁盘空间
剩下的就是软件包部分了,这个看情况安装。
%packages #开始
@Base #以@开头指明安装的包
%end #结束
启动服务:
启动三个服务:dhcp、tftp、httpd。最后查看一下几个无法的状态
启动为:systemctl start dhcpd.service
查看为:systemctl status dhcpd.service
其他类似,只要状态为Active: active (running)即可
不同的系统可能启动命令不同,具体看自己的版本,上面介绍的命令是CentOS 7的命令
这样服务器的设置就完成了。测试可以找一个机器链接安装一下试试。
值得注意的是一个内网中dhcp服务器只能有一个,否则可能无法获得正确ip。
安装的机器需要设置为网卡安装。