103、kickstart自动化安装操作系统


103.1、前言:

作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。

常规的办法有:

光盘安装系统===>一个服务器DVD内置光驱百千块,百台服务器都配光驱就浪费了,因为一台服务器也就开始装系统能用的上,以后用的机会屈指可数。用USB外置光驱,插来插去也醉了。

U盘安装系统===>还是同样的问题,要一台一台服务器插U盘。

103.2、pxe介绍:

PXE,全名Pre-boot Execution Environment,预启动执行环境;

通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;

由Intel和Systemsoft公司于1999年9月20日公布的技术;

Client/Server的工作模式;

PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议;

PXE客户端(client)这个术语是指机器在PXE启动过程中的角色。一个PXE客户端可以是一台服务器、笔记本电脑或者其他装有PXE启动代码的机器(我们电脑的网卡)。

103.3、pex工作流程:

1.PXE Client向DHCP发送请求:

PXE Client从自己的PXE网卡启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向本网络中的DHCP服务器索取IP。

2.DHCP服务器提供信息:

DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端

分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。

3.PXE客户端请求下载启动文件:

客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。

4.Boot Server响应客户端请求并传送文件:

当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM由TFTP通讯协议从Boot Server下载启动

安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。

5.请求下载自动应答文件:

客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),

则会在这个时候初始化网络,并定位安装源位置。接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

这里有个问题,在第2步和第5步初始化2次网络了,这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。因此PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序,从而进行两次获取IP地址过程,但IP地址在DHCP的租期内是一样的。

6.客户端安装操作系统:

将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。

OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。

103.4、批量装机软件介绍:

Redhat系主要有两种Kickstart和Cobbler。

Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。

如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数;如果

没有找到合适的参数,便会弹出对话框让安装者手工填写。所以,如果ks.cfg文件涵盖了安装过程中所有需要填写的参数,那么安装者

完全可以只告诉安装程序从何处下载ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启/关闭系统,并结束安装。

Cobbler集中和简化了通过网络安装操作系统需要使用到的DHCP、TFTP和DNS服务的配置。Cobbler不仅有一个命令行界面,还提

供了一个Web界面,大大降低了使用者的入门水平。Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。

简单的说,Cobbler是对kickstart的封装,简化安装步骤、使用流程,降低使用者的门槛。

103.5、系统环境准备:

[root@m01 ~]# cat /etc/redhat-release

CentOS release 6.10 (Final)

[root@m01 ~]# uname -r

2.6.32-754.3.5.el6.x86_64

[root@m01 ~]# getenforce

Disabled

[root@m01 ~]# /etc/init.d/iptables status

iptables:未运行防火墙。

[root@m01 ~]# ifconfig eth0 | awk -F "[ :]+" 'NR==2{print $4}'

10.0.0.61

[root@m01 ~]# hostname

m01

注意:因为是使用的虚拟机进行实验,eth0网卡使用的nat,需要将dhcp功能去掉,防止冲突;

103.6、dhcp服务安装:

dhcp工作流程:

[root@m01 ~]# yum install dhcp -y

[root@m01 ~]# rpm -qa dhcp

dhcp-4.1.1-63.P1.el6.centos.x86_64

[root@m01 ~]# rpm -ql dhcp | grep "dhcpd.conf"#查看dhcp配置文件的位置;

/etc/dhcp/dhcpd.conf

/usr/share/doc/dhcp-4.1.1/dhcpd-conf-to-ldap

/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

/usr/share/man/man5/dhcpd.conf.5.gz

[root@linux-node1 ~]# cat /etc/dhcp/dhcpd.conf

#

# DHCP Server Configuration file.

# see /usr/share/doc/dhcp*/dhcpd.conf.sample

# see 'man 5 dhcpd.conf'

#

[root@m01 ~]# \cp -av /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

"/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample" -> "/etc/dhcp/dhcpd.conf"

103.6.1、dhcp服务参数配置:

[root@m01 ~]# egrep -v "^$|#" /etc/dhcp/dhcpd.conf

subnet 10.0.0.0 netmask 255.255.255.0 {

range 10.0.0.100 10.0.0.200; #可分配的起始IP-结束IP

option subnet-mask 255.255.255.0; #设定netmask

default-lease-time 21600; #单位:分钟,设置默认的IP租用期限15天

max-lease-time 43200; #单位:分钟,设置最大的IP租用期限30天

next-server 10.0.0.61; #告知客户端TFTP服务器的ip

filename "/pxelinux.0"; #告知客户端从TFTP根目录下载pxelinux.0文件

}

[root@m01 ~]# /etc/init.d/dhcpd start

正在启动 dhcpd: [确定]

[root@m01 ~]# netstat -tunlp|grep dhcp

udp 0 0 0.0.0.0:67 0.0.0.0:* 3921/dhcpd

[root@m01 ~]# chkconfig dhcpd off

103.6.2、补充说明:

本来软件装完后都要加入开机自启动,但这个Kickstart系统就不能开机自启动,而且用完后服务都要关闭,防止未来重启服务器自动重装系统了。

如果机器数量过多的话,注意dhcp服务器的地址池,不要因为耗尽IP而导致dhcpd服务器没有IP地址release的情况。

dhcp服务默认是开机不启动的;

dhcp启动后如果是多网卡的情况下默认监听的是所有的网卡,且在配置地址池的地址时要和网卡的地址在同一个网段内才会生效,这里监听的eth0;

dhcp指定监听网卡:

[root@m01 ~]# vim /etc/sysconfig/dhcpd

# Command line options here

DHCPDARGS=eth1

103.7、安装tftp服务:

103.7.1、tftp服务简介:

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、

开销不大的文件传输服务。端口号为69。

103.7.2、tftp服务安装:

[root@m01 ~]# yum install tftp-server -y

[root@m01 ~]# rpm -qa tftp-server

tftp-server-0.49-8.el6.x86_64

103.7.3、tftp服务配置:

[root@m01 ~]# egrep -v "^$|#" /etc/xinetd.d/tftp

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /var/lib/tftpboot #指定的目录,保持默认,不用更改;

disable = no #由原来的yes改为no;

per_source = 11

cps = 100 2

flags = IPv4

}

[root@m01 ~]# /etc/init.d/xinetd start

正在启动 xinetd: [确定]

[root@m01 ~]# netstat -tunlp|grep xinetd

udp 0 0 0.0.0.0:69 0.0.0.0:* 4452/xinetd

[root@m01 ~]# chkconfig xinetd off

103.8、配置http服务:

103.8.1、安装apache软件:

[root@m01 ~]# yum install httpd -y

[root@m01 ~]# rpm -qa httpd

httpd-2.2.15-69.el6.centos.x86_64

[root@m01 html]# sed -i "277i ServerName 127.0.0.1:80" /etc/httpd/conf/httpd.conf

[root@m01 html]# mkdir /var/www/html/CentOS-6.7 -p #创建镜像挂载目录;

[root@m01 html]# mount /dev/cdrom /var/www/html/CentOS-6.7/

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@m01 html]# df -h

/dev/sr0 3.7G 3.7G 0 100% /var/www/html/CentOS-6.7

[root@m01 html]# /etc/init.d/httpd start

正在启动 httpd: [确定]

测试浏览器访问:

103.8.2、配置说明:

可以使用nginx搭建web服务器;

不管怎么弄,只要把安装光盘内容能通过web发布即可。因为是演示,如果复制镜像就有点浪费时间。但生产环境就一定要复制了,

光盘读取速度有限。

103.9、配置支持pxe的启动程序:

103.9.1、bootstrap介绍:

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,

并建立修护或其它特殊用途的启动盘。

103.9.2、安装syslinux:

[root@m01 html]# yum -y install syslinux

[root@m01 html]# rpm -qa syslinux

syslinux-4.04-3.el6.x86_64

103.9.3、配置linux启动文件:

[root@m01 ~]# \cp -av /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

"/usr/share/syslinux/pxelinux.0" -> "/var/lib/tftpboot/pxelinux.0"

[root@m01 ~]# \cp -av /var/www/html/CentOS-6.7/isolinux/* /var/lib/tftpboot/

"/var/www/html/CentOS-6.7/isolinux/boot.cat" -> "/var/lib/tftpboot/boot.cat"

"/var/www/html/CentOS-6.7/isolinux/boot.msg" -> "/var/lib/tftpboot/boot.msg"

"/var/www/html/CentOS-6.7/isolinux/grub.conf" -> "/var/lib/tftpboot/grub.conf"

"/var/www/html/CentOS-6.7/isolinux/initrd.img" -> "/var/lib/tftpboot/initrd.img"

"/var/www/html/CentOS-6.7/isolinux/isolinux.bin" -> "/var/lib/tftpboot/isolinux.bin"

"/var/www/html/CentOS-6.7/isolinux/isolinux.cfg" -> "/var/lib/tftpboot/isolinux.cfg" #启动时显示的引导界面;

"/var/www/html/CentOS-6.7/isolinux/memtest" -> "/var/lib/tftpboot/memtest"

"/var/www/html/CentOS-6.7/isolinux/splash.jpg" -> "/var/lib/tftpboot/splash.jpg"

"/var/www/html/CentOS-6.7/isolinux/TRANS.TBL" -> "/var/lib/tftpboot/TRANS.TBL"

"/var/www/html/CentOS-6.7/isolinux/vesamenu.c32" -> "/var/lib/tftpboot/vesamenu.c32"

"/var/www/html/CentOS-6.7/isolinux/vmlinuz" -> "/var/lib/tftpboot/vmlinuz"

[root@m01 ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg #创建一个pxelinux.cfg目录,存放客户端的配置;

[root@m01 ~]# \cp -av /var/www/html/CentOS-6.7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

"/var/www/html/CentOS-6.7/isolinux/isolinux.cfg" -> "/var/lib/tftpboot/pxelinux.cfg/default"

[root@m01 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

default vesamenu.c32 #默认加载第一个菜单;

#prompt 1 #开启会显示命令行boot:提示符,prompt指为0时在不提示,将会直接启动‘default’参数中指定的内容;

timeout 600 #引导时等待时间;

display boot.msg

menu background splash.jpg

menu title Welcome to CentOS 6.7!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000 #菜单颜色、背景图片、标题;

label linux #一个标签就是前面图片的一行选项

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz #指定要启动的内核,默认是tftpboot目录;

append initrd=initrd.img #指定追加给内核的参数,initrd.img是一个最小的linux系统;

label vesa

menu label Install system with ^basic video driver

kernel vmlinuz

append initrd=initrd.img nomodeset

label rescue

menu label ^Rescue installed system

kernel vmlinuz

append initrd=initrd.img rescue

label local

menu label Boot from ^local drive

localboot 0xffff

label memtest86

menu label ^Memory test

kernel memtest

append -

103.10、此时pxe安装完成,可以手动安装linux了:

103.10.1、选择url模式安装:

103.10.2、禁用ipv6

103.10.3、输入http的地址:

103.10.4、进行安装:

103.11、配置kickstart服务:

103.11.1、kickstart简介:

通常,我们在安装操作系统的过程中,需要大量的和服务器交互操作,为了减少这个交互过程,kickstart就诞生了。使用这种kickstart,

只需事先定义好一个Kickstart自动应答配置文件ks.cfg(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安

装程序就可以自己从该文件中读取安装配置,这样就避免了在安装过程中多次的人机交互,从而实现无人值守的自动化安装。

103.11.2、生成kickstart配置文件的三种方法:

方法1、 每安装好一台Centos机器,Centos安装程序都会创建一个kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统

类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位于/root/anaconda-ks.cfg)

方法2、Centos提供了一个图形化的kickstart配置工具。在任何一个安装好的Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。

kickstart配置工具命令为redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5)。

方法3、阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。

103.11.3、centos系统中anaconda-ks.cfg文件:

[root@m01 ~]# egrep -v "^$|#" anaconda-ks.cfg

install

cdrom

lang en_US.UTF-8

keyboard us

network --onboot no --device eth0 --bootproto dhcp --noipv6

network --onboot no --device eth1 --bootproto dhcp --noipv6

rootpw --iscrypted $6$uzBPN.vSUjJ0A6k6$IV6fpwO67zbMeGydfrPRilV7e8ZQKxpvrFE8eI5iWiPG/L9hwDXR2tPuP3MsqFyfWzR626nW8cabikwdWey8Y1

firewall --service=ssh

authconfig --enableshadow --passalgo=sha512

selinux --enforcing

timezone --utc Asia/Shanghai

bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100

%packages

@base

@compat-libraries

@core

@debugging

@development

@server-policy

@workstation-policy

python-dmidecode

sgpio

device-mapper-persistent-data

systemtap-client

%end

103.11.4、手动编写ks.cfg文件:

[root@m01 ~]# grub-crypt #生成root用户的加密密码,类似/etc/shdowpass

Password: #密码,123456;

Retype password:

$6$UW3dXT35pL2NEPoI$TUBlyW9BSre2lAgcA0mmw0EVy76eyBmJmFfeYpKa8CrdLNUjz5jO1SvFbQF/wtmFvmtvpaUNxgw/Rg9guA9Ze1

[root@m01 ~]# mkdir /var/www/html/ks_config -p #创建ks配置文件;

[root@m01 ~]# vim /var/www/html/ks_config/CentOS-6.7-ks.cfg

##############################################################

# Description: Linux system initialization

#Author:Lc

##############################################################

install #告知安装程序,这是一次全新安装,而不是升级upgrade。

url --url="http://10.0.0.61/CentOS-6.7/" #通过FTP或HTTP从远程服务器上的安装树中安装

#url --url ftp://<username>:<password>@<server>/<dir>

text #使用文本模式安装

lang en_US.UTF-8 #设置在安装过程中使用的语言

keyboard us #设置系统键盘类型。keyboard us

zerombr #清除mbr引导信息

##############################################################

#bootloader,系统引导配置

#--location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)。

#--driveorder,指定在BIOS引导顺序中居首的驱动器。

#--append=,指定内核参数.要指定多个参数,使用空格分隔它们。

#centos7改卡的参数:--append="net.ifnames=0 biosdevname=0 crashkernel=auto rhgb quiet"

##############################################################

bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

##############################################################

#network,为通过网络的kickstart安装以及所安装的系统配置联网信息。

#--bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp

#static方法要求在kickstart文件里输入所有的网络信息。

#network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2

#请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行。

#--ip=,要安装的机器的IP地址.

#--gateway=,IP地址格式的默认网关.

#--netmask=,安装的系统的子网掩码.

#--hostname=,安装的系统的主机名.

#--onboot=,是否在引导时启用该设备.

#--noipv6=,禁用此设备的IPv6.

#--nameserver=,配置dns解析.

##############################################################

network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6

timezone --utc Asia/Shanghai #设置系统时区

authconfig --enableshadow --passalgo=sha512 #设置密码加密方式为sha512 启用shadow文件

#root密码

rootpw --iscrypted $6$UW3dXT35pL2NEPoI$TUBlyW9BSre2lAgcA0mmw0EVy76eyBmJmFfeYpKa8CrdLNUjz5jO1SvFbQF/wtmFvmtvpaUNxgw/Rg9guA9Ze1

clearpart --all --initlabel #从系统中清除所有分区,初始化磁盘标签;

##############################################################

#part 磁盘分区

#--fstype,为分区设置文件系统类型.有效的类型为ext2,ext3,ext4 xfs,swap和vfat。

#--asprimary,强迫把分区分配为主分区,否则提示分区失败。

#--size,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。

#--grow,告诉分区使用所有可用空间(若有),或使用设置的最大值。

##############################################################

part /boot --fstype=ext4 --asprimary --size=200 #boot分区为200m

part swap --size=1024 #交换分区为1G

part / --fstype=ext4 --grow --asprimary --size=200 #根分区使用剩余的所有空间

firstboot --disable #负责协助配置redhat一些重要的信息。

selinux --disabled #关闭selinux

firewall --disabled #关闭防火墙

logging --level=info #设置日志级别

#设定安装完成后重启,此选项必须存在,不然kickstart显示一条消息,并等待用户按任意键后才重新引导,也可以选择halt关机。

reboot

##############################################################

#%packages

#@groupname:指定安装的包组

#package_name:指定安装的包

#-package_name:指定不安装的包

##############################################################

%packages

@base

@compat-libraries

@debugging

@development

tree

nmap

sysstat

lrzsz

dos2unix

telnet

iptraf

ncurses-devel

openssl-devel

zlib-devel

OpenIPMI-tools

screen

%end

%post #%post:安装系统后执行的命令或脚本(基本支持所有命令)

wget -O /tmp/optimization.sh http://10.0.0.61/ks_config/optimization.sh >/dev/null 2>&1

/bin/sh /tmp/optimization.sh

%end #结束

103.11.5、创建优化脚本:

[root@m01 ~]# vim /var/www/html/ks_config/optimization.sh

#!/bin/bash

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

##############################################################

# Description: Linux system initialization

#Author:Lc

##############################################################

. /etc/init.d/functions #functions方法用于设置linux的umask,时区,color等参数;


# Defined result function

function Msg(){

if [ $? -eq 0 ];then

action "$1" /bin/true

else

action "$1" /bin/false

fi

}


# Defined IP function

function ConfigIP(){

Suffix=`ifconfig eth0|awk -F "[ .]+" 'NR==2 {print $6}'`

cat >/etc/sysconfig/network-scripts/ifcfg-eth0 << END

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=10.0.0.$Suffix

NETMASK=255.255.255.0

IPV6INIT=no

USERCTL=no

DNS2=8.8.8.8

GATEWAY=10.0.0.253

DNS1=114.114.114.114

END #该end前面不能出现任何的空格,否则会报错;

Msg "config eth0"

}


# Defined Hide the system version number Functions

function HideVersion(){

>/etc/issue

Msg "Hide issue"

> /etc/issue.net

Msg "Hide issue.net"

}


# Defined OPEN FILES Functions

function openfiles(){

echo '* - nofile 65535' >> /etc/security/limits.conf

Msg "open files"

}



# Defined System Startup Services Functions

function boot(){

for lc in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|network|rsyslog|sshd|sysstat"`

do

chkconfig $lc off

done

Msg "BOOT config"

}


# Defined Time Synchronization Functions

function Time(){

echo "#time sync by lc at $(date +%F)" >>/var/spool/cron/root

echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root

Msg "Time Synchronization"

}


# Defined Hisitory、LoginTime

function History(){

echo "export TMOUT=1200" >>/etc/profile

Msg "TMOUT"

echo "export HISTFILESIZE=20" >>/etc/profile

Msg "HISTFILESIZE"

echo "export HISTSIZE"=20 >>/etc/profile

Msg "HISTSIZE"

source /etc/profile

Msg "source /etc/profile"

}

# Defined main Functions

function main(){

ConfigIP

HideVersion

openfiles

boot

Time

History

}

main #调用main方法,执行所有的脚本;

[root@m01 ~]# chmod u+x /var/www/html/ks_config/optimization.sh

[root@m01 ~]# ls -l /var/www/html/ks_config/optimization.sh

-rwxr--r-- 1 root root 2271 12月 18 17:14 /var/www/html/ks_config/optimization.sh

103.12、整合default文件配置;

[root@m01 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

label linux

menu label ^Install Optimization Linux System By LC

menu default

kernel vmlinuz

append initrd=initrd.img ks=http://10.0.0.61/ks_config/CentOS-6.7-ks.cfg ksdevice=eth0

#当客户端有多块网卡时,从第一块网卡启动;

103.13、安装系统:

1、新建一台虚拟机,稍后安装操作系统,网卡使用eth0,我这里使用的nat指向eth0网卡;

2、启动虚拟机:

103.14、总结:

最小的启动系统:.cfg文件(界面)和最小的内核系统.img,.vmlinuz文件

安装操作系统主要依靠的是最小的启动系统,然后再安装其它的包文件;

pxe不过是将包安装包放在了远端的服务上,最小的启动系统在客户端上;

自动化安装不过是将操作系统的交互模式通过配置文件转化为了非交互模式;

猜你喜欢

转载自www.cnblogs.com/LiuChang-blog/p/12315220.html