pxe自动安装linux

配置自动安装操作系统

1.网卡应支持pxe技术,由网卡作为dhcp的客户端向dhcp服务器请求一个IP地址,dhcp会将ip,网关等信息和的tftp服务器的地址应加载的文件名提供给客户端

2.根据dhcp服务器提供的信息网卡上内置的tftp客户端向tftp服务器发出请求,将文件下载至内存,包括bootloader(可能有选单),initrd,内核等(内核和initrd应该是专用于pxe的版本,就是具有相应功能的没有过度裁剪的内核)

3.加载完内核会读取kickstart文件,该文件会指明仓库的位置和要安装的程序包 

anaconda是红帽系列的安装系统,不同系统的安装系统不同,anaconda可以通过读取kickstart实现自动安装

要通过ftp,http等提供系统安装的仓库,注意版本

tftp是一个非独立进程,监听udp的69端口 tftp的程序的服务端由tftp-server提供,客户端有tftp提供

tftp的启动

CentOS 7:

systemctl start tftp.socket

CentOS 6:

chkconfig tftp on

service xinetd restart

默认的文件根目录:/var/lib/tftpboot/

注意:有些系统的tftp后会有不能下载大文件的问题造成不能通过tftp下载内核和initrd文件导致自动安装失败,建议布置好tftp服务后先验证能否通过tftp下载对应文件

注意,安装完程序后要记得开启,防止出现问题

syslinux是一个提供多种引导程序的安装包,pxelinux.0是此处需要使用的文件,在centos6上使用rpm -ql不能查看所有

1.安装dhcp并提供配置文件并开启

yum install dhcp -y

配置文件

option domain-name "hehehe.com";

option domain-name-servers 10.1.1.1, 8.8.8.8;

default-lease-time 3600;

max-lease-time 7200;

subnet 10.1.0.0 netmask 255.255.0.0 {

range 10.1.5.5 10.1.5.10;

filename ”pxelinux.0“;(文件名必须写在双引号内,必须以;结尾)

next—server 10.1.1.1;

}

service dhcpd start

2.安装tftp并开启

systemctl start tftp.socket

3.安装syslinux,并将pxelinux.0,menu.c32(提供选单),mboot.c32(能够通过内存引导),memdisk(将内存模拟为磁盘),chain.c32(基于bootloader引导系统)复制到/var/lib/tftpboot/下

yum install syslinux  -y 

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

cp /usr/share/syslinux/{chain.c32,memdisk,menu.c32,mboot.c32} /var/lib/tftpboot/

4.从安装光盘复制vmlinuz和initrd.img到tftp的根目录下

cp vmlinuz initrd.img /var/lib/tftpboot/

5.创建菜单加载的配置文件信息,在tftp的根目录下创建pxelinux.cfg目录,在pxelinux.cfg目录下创建default

mkdir pxelinux.cfg

default配置文件

default menu.c32

        prompt 5 (此处为选单出现后几秒内没有动作选择默认选项)

        timeout 30(设定选单超时时间)

        MENU LABEL THIS IS CENTOS(选单的大标题)

        LABEL linuxzidong (在命令行下直接输入此处定义字符能启动该选项)

        MENU LABEL install(选单的选项)

        KERNEL vmlinuz 

        APPEND initrd=initrd.img inst.repo=ftp://10.1.1.1/pub/centos (安装文件路径)ks=ftp://10.1.1.1/pub/centos7.cfg (应答文件路径)

6.在ftp的共享目录创建上面定义的目录,并将光盘挂载

mkdir centos

mount /dev/sr0 /var/ftp/pub/centos/                                                                                                                                         

7.在/root下的anaconda-ks.cfg是保存了本机安装系统时选择的应答文件

本次采用的应答文件centos7.cfg,只包含了最基础的安装包

# Keyboard layouts

# old format: keyboard us

# new format:

keyboard –vckeymap=cn –xlayouts='cn'

# Reboot after installation

reboot

# Root password

rootpw –iscrypted $1$HDHf2v4i$LMo.xGHfxQDOf8e043C.g/

# System timezone

timezone Asia/Shanghai

# Use network installation

url –url="ftp://10.1.1.1/pub/centos"

# System language

lang zh_CN

user –groups=wheel –name=mageedu –password=$6$1eWrOetY$DfLZgquGiOaNkwpEF4ItMipz.1kpn7Q.s6oXyoW2bALkWesRWHCCACICkJ.2zBXDbwEw0ibR.wxSt

LI41ZhfF1 –iscrypted –gecos="MageEdu"

# Firewall configuration

firewall –disabled

# Network information

network  –bootproto=dhcp –device=eth0

# System authorization information

auth  –useshadow  –passalgo=sha512

# Use text mode install

text

firstboot –disable

# SELinux configuration

selinux –permissive

ignoredisk –only-use=sda

# System bootloader configuration

bootloader –location=mbr –boot-drive=sda

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart –all –initlabel

# Disk partitioning information

part /boot –asprimary –fstype="xfs" –size=512

part swap –fstype="swap" –size=2048

part /usr –fstype="xfs" –size=20480

part / –fstype="xfs" –size=20480

%packages

@base

@core

8.将应答文件复制到ftp的根所在的目录

mv centos7.cfg  /var/ftp/pub/

9.将服务器和要安装系统的机器配置在同一个网络内通过网卡启动要安装系统的机器就可以完成自动安装

原创文章,作者:zzzzz1357x1,如若转载,请注明出处:http://www.178linux.com/57869

(0)
zzzzz1357x1zzzzz1357x1
上一篇 2016-11-11
下一篇 2016-11-11

相关推荐

  • linux 基础命令(四)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@localhost home]# cp -r /etc/skel/ /home/tuser1 [root@localhost home]# c…

    Linux干货 2016-10-16
  • 浅谈bash shell 变量

    一、简述 变量是指内存空间的命名,指向内存中一个或一组地址。bash shell中的变量属于弱类型变量,使用变量无需声明、不需要指定类型,默认为字符型变量。 二、变量命名、赋值、引用 (1)命名规则:     1.只能使用字母,数字,下划线;并且不能使用数字开头。     2.不…

    Linux干货 2016-08-15
  • 《种一棵树最好的时间,是十年前,其次是现在。》

    选择一个处于不断发展中的行业,学习新知识就如逆水行舟,不能停止。

    Linux干货 2018-03-26
  • bash中的变量

        对任何一门编程语言来说,最基础的部分就是变量。那什么事变量呢?变量就是把一个已知的可以变动的值,赋给一个固定名字的,用固定的名字代表这个可变动的值。在bash中也不例外,跟大多数编程语言一样,它也有一些自己的语法和规则 bash变量:     1.规则设置:变量和变量的值中间用=连接,=的两…

    Linux干货 2016-08-15
  • linux下的打包与压缩

    linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gzip等,我们来说说它们的用法。 先来说bzip2。bunzip2和bzcat可以由bzip2指定选项来执行同样的结果,这里只介绍bzip2的用法。使用bzip2这个工具创建的文件以.bz2,.bz,.tbz,.tar.bz2或者…

    Linux干货 2017-04-16
  • DNS 笔记

    Ø DNS查询。工作流程如下图         n  客户端的DNS:8.8.8.8 /etc/hosts  14.215.177.38 www.baidu.com n  客户端访问www.baidu.com 不用向DSN服务器发生查询,只需要查询本地的 /e…

    Linux干货 2016-08-15