linux系统自动安装之PXE

PXE(集成在网卡上的)
预启动执行环境 (能够通过网络实现操作系统安装)

PXE工作原理
1、Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client
2、Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0
3、Client执行接收到的pxelinux.0文件
4、Client向TFTP Server发送针对本机的配置信息文件(在TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
5、Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
6、Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
7、Client启动Linux内核
8、Client下载安装源文件,读取自动化安装脚本

下面以centos7的安装为例说明实现步骤:

此例子中dhcp服务端ip为192.168.27.128

安装前准备:
1、关闭防火墙和SELINUX
2、DHCP服务器静态IP

安装软件包
httpd   tftp-server   dhcp   syslinux    system-config-kickstart

配置文件共享服务:
systemctl enable httpd
systemctl start httpd
mkdir /var/www/html/centos/7
mount /dev/sr0/var/www/html/centos/7

准备kickstart文件
/var/www/html/ksdir/ks7-mini.cfg  #注意文件权限,权限不足,会导致安装过程中无法获取文件
cdrom更改为 url –url=http://192.168.27.128/centos/7
firewall –disabled
selinux –disabled
把安装方式更改为文本
text
reboot
把网络设为on
zerombr
更改clearpart –all –initlabel

配置tftp服务
客户端连接时,默认访问的就是/var/lib/tftpboot/目录
systemctl enable tftp.socket
systemctl start tftp.socket
配置DHCP服务
vim /etc/dhcp/dhcpd.conf
option domain-name “example.com”;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.27.0 netmask 255.255.255.0 {
range 192.168.27.100 192.168.27.200;
filename “pxelinux.0”;
next-server 192.168.27.128;
}
systemctl enable dhcpd
systemctl start dhcpd

准备相关文件
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
#也可以用vesamenu.c32,不同的菜单风格
cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /misc/cd/isolinux/isolinux.cfg
/var/lib/tftpboot/pxelinux.cfg/default

准备启动菜单
Vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title PXE INSTALL MENU
label auto
menu label Install ^Mini CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.27.128/ksdir/ks7-mini.cfg
label manual
menu label Install ^Desktop CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.27.128/ksdir/ks7-desktop.cfg
label local
menu default
menu label ^Boot from local drive
localboot 0xffff

至此所有步骤完成,在安装系统的时候就可以选择从网络引导自动安装系统了

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91154

(0)
oranixoranix
上一篇 2018-01-16 13:04
下一篇 2018-01-16 20:20

相关推荐

  • 基于Redis的开源分布式服务Codis

    Redis在豌豆荚的使用历程——单实例==》多实例,业务代码中做sharding==》单个Twemproxy==》多个Twemproxy==》Codis,豌豆荚自己开发的分布式Redis服务。在大规模的Redis使用过程中,他们发现Redis受限于多个方面:单机内存有限、带宽压力、单点问题、不能动态扩容以及磁盘损坏时的数据抢救。 Redis通常有3个使用途径…

    Linux干货 2015-02-25
  • 自制Linux系统

                          自制Linux系统 1、环境准备:         在centos6上添加一块新硬盘,并分区格式化。 &n…

    系统运维 2016-09-21
  • 萝卜运维记-第二周

    part2–针对文件命令的介绍,使用,演示 Ⅰ Linux文件管理类命令常用方法 Ⅱ bash的工作特性,相关示例 Ⅲ 文件的元数据有哪些,以及所代表的含义。 Ⅳ 相关命令的操作,和结果演示。 ①Linux文件管理命令常用方法 Linux常见文件类型 -:常规文件;即f; d: directory…

    Linux干货 2016-12-12
  • 20160803用户权限作业

    三种权限rwx对文件和目录的不同意义 文件:r:可以cat查看文件中的内容,可以查看文件的属性          w:可以ll查看文件的属性,也可以往文件中写入内容,如果其父目录具有写和执行权限就可删除其内部文件        &…

    Linux干货 2016-08-07
  • redis/twemproxy 客户端连接异常

    对于一个DBA,客户端连接异常问题可以说是家常便饭的事情,处理多了都想吐。 root cause无疑发生在三个地方,先找自身的原因,依次排查下去: 1)服务器端db的负载,如果负载太高,创建socket太慢引起超时。另外服务器端socket的个数太多,也可以导致创建连接需要很长的时间或者创建连接不成功。 2)网络是够有抖动,包括lvs/twemproxy重启…

    Linux干货 2015-04-03
  • 字段分隔符和迭代器

        内部字段分隔符(Internal Field Separator)是shell脚本编程中的一个重要概念。在处理文本数据时,有很大的作用。内部字段分隔符是用于特定用途的定界符,IFS是存储定界符的环境变量,它是当前shell环境中使用的默认定界符字符串。     例一:da…

    Linux干货 2016-08-15