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
下一篇 2018-01-16

相关推荐

  • 15 权限管理及作业

    15 权限管理及作业(作业单独一篇) 一、杂项知识整理 1、访问控制列表:ACL:Access Control List,实现灵活的权限管理。     除了文件的所有者,所属组和其它人,可以对更多的用户设置权限。     centos7.0之后默认创建的ext4文件系统有ACL功…

    Linux干货 2016-08-04
  • 实例;编译安装apache 2.2,并启动此服务

    基于c语言的源代码编译安装,通常有三个步骤     ./configure         (1)通过选项传递参数,指定启用特性,安装路径等:执行时会参考用户的指定以及makefile.in文件生成makefile.  &nbsp…

    Linux干货 2016-08-24
  • MySQL-MMM安装指南(Multi-Master Replication Manager for MySQL)

    最基本的MMM安装必须至少需要2个数据库服务器和一个监控服务器下面要配置的MySQL Cluster环境包含四台数据库服务器和一台监控服务器,如下: function ip hostname server id monitoring host 192.168.0.10 mon – master 1 192.168.0.11 db1 1 maste…

    Linux干货 2015-05-01
  • 一个删除MySQL大表数据的shell脚本

    #!/bin/bash #为了删除一些特别大的表 dbname=''  #库名 tabname=''  #表名 step='10000' #删除步长 sleeptime=1  #睡眠时间 start_index=30000001 &…

    系统运维 2015-07-16
  • Python函数式编程指南(三):迭代器

    这一篇我们将讨论迭代器。迭代器并不是函数式编程特有的东西,但它仍然是函数式编程的一个重要的组成部分,或者说是一个重要的工具。 转载请注明原作者和原文地址:) 3. 迭代器 3.1. 迭代器(Iterator)概述 迭代器是访问集合内元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问一遍后结束。 迭代器不能回退,只能往前进行迭代。这并…

    Linux干货 2015-03-11
  • Linux系统之用户和组

    Linux系统之用户和组 1、什么是用户 用户:资源获取标识符,资源分配,安全权限模型的核心要素之一 2、没有用户,操作系统可否正常执行? 答案是肯定的 在Linux系统上,用户管理是基于用户名和密码的方式进行资源的分配, Username/UID分为以下类别:     管理员:root, 0  &…

    Linux干货 2016-08-04