不适合本地安装的情况

不适合本地安装的情况如下:

(1)无软驱和光驱:如果计算机不带光驱或软驱,则无法通过本地安装。

(2)非标准的软驱和光驱:虽然笔记本电脑都会配置光驱。但是并不一定都是标准的IDE设备,有些通过USB接口或1394接口(例如Samsung的Q10)连接。在Linux安装时所引导的Linux内核一般都不会带这些接口的驱动,所以也无法通过本地安装。

(3)在一些场合,如机房中有大量的计算机需要同时安装Linux。如果通过光驱的方式逐台安装,不仅效率低,也不利于维护。

(4)光驱或安装光盘故障。

二、原理和概念

2.1 什么是PXE

 2.1.1 PXE技术的基本原理

PXE技术与RPL技术不同之处为RPL是静态路由,PXE是动态路由。RPL是根据网卡上的ID号加上其他记录组成的一个Frame(帧)向服务器发出请求。而服务器中已有这个ID数据,匹配成功则进行远程启动。PXE则是根据服务器端收到的工件站MAC地址,使用DHCP服务为这个MAC地址指定个IP地址。每次启动可能同一台工作站有与上次启动有不同的IP,即动态分配地址。下以客户端引导过程说明PXE的原理。

(1)客户端开机后,PXE BootROM(自启动芯片)获得控制权之前执行自我测试,然后以广播形式发出一个请求FIND帧。

(2)如果服务器收到客户端所送出的要求,就会送回DHCP回应,包括用户端的IP地址、预设通信通道,以及开机映像文件;否则服务器会忽略这个要求。

(3)客户端收到服务器发回的响应后则会回应一个帧,以请求传送启动所需文件,并把自己的MAC地址写到服务器端的Netnames.db文件中。

(4)将有更多的消息在客户端与服务器之间应答,用于决定启动参数。BootROM由TFTP通信协议从服务器下载开机映像文档。客户端使用TFTP协议接收启动文件后,将控制权转交启动块以引导操作系统,完成远程启动。

2.1.2 PXE安装流程

PXE协议的成功运行需要解决以下的两个问题

(1)既然是通过网络传输,那么计算机在启动时其IP地址如何配置?

(2)通过何种下载Linux内核和根文件系统?

第一个问题可以通过DHCP Server解决,由DHCP Server来为PXE Client分配一个IP地址,DHCP Server是用来为DHCP Client动态分配IP地址的协议。不过由于这里是为PXE Client分配IP地址,所以在配置DHCP Server时需要增加相应的PXE特有配置;至于第2个问题,在PXE Client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。这样,PXE协议运行的条件就具备了,PXE的安装流程如图所示。

在图中,PXE Client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上,Bootstrap文件、配置文件、Linux内核,以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。除了配置文件,这3个二进制文件是PXE Client在工件过程中所必需的文件,即bootstrap、Linux内核和Linux根文件系统。Bootstrap文件是可执行程序,它为用户提供简单的控制界面,并根据用户的选择下载合适的Linux内核以及Linux根文件系统。

图1 PXE的基本原理

2.2 什么是KickStart

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

2.3 网络结构

如图为网络安装环境的一个原理示意,安装环境由一个局域网和连接到该局域网的启动服务器、安装服务器和待安装客户端,其中启动服务器和安装服务器可以部署在同一台物理机上。

图2 网络结构

下表列出了对这些机器的软硬件要求及其负载的服务与数据。

系统名称

安装和启动服务器

待安装计算机

操作系统

Red HatEnterpriseLinux 5

硬件

普通X86体系

普通X86体系,网卡必须带有PXE

支持

网络

同一子网

服务类型

DHCP、TFTP及NFS

数据

PXE Linux启动镜像,kickstart配置文件、RedHat Enterprise

Linux 5安装介质和Red Hat Enterprise Linux 5安装程序启动

镜像

表1 基本的软硬件要求

三、安装的前提条件

3.1 PXE+KickStart安装的条件

执行PXE+KickStart安装需要的设备为:

DHCP 服务器;

TFTP 服务器;

KickStart所生成的ks.cfg配置文件

一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器。

带有一个 PXE 支持网卡的将安装的主机;

3.2 安装过程中所需要的rpm包及获取

3.2.1 需要的rpm软件包

nfs-utils-lib-*

nfs-utils- *

xinetd-*

tftp-server-*

dhcp-*

dhcp-devel-*

system-config-kickstart-*

3.2.2 软件包的获取 

1、本地方式

一般情况下一些常用的安装包都可以在你的安装光盘中找到。

2、网络方式

如果你无法在安装光盘中找到适合的安装包,你可以通过yum这种方式安装。

四、操作步骤:

操作要求:有一个100台机器的机房,要求需要批量安装Red Hat Linux操作系统,服务器地址为192.168.0.1,子网掩码为255.255.255.0,使待安装的机器做的操作仅仅是开机就可以自动安装操作系统。

4.1 配置IP地址

(1)在终端里输入system-config-network-tui,打开IP配置图形界面。

图3 IP配置命令

图4  IP配置界面(1)

图5  IP配置界面(2)

(2)重启网卡,service network restart

图6 重启网卡及IP的配置情况

4.2 安装rpm

配置该服务器需要安装dhcpd,tftp-server,nfs,system-config-kickstart,等包。首先需要检查本机上是否已经安装了这些包,输入rpm –qa | grep +包名。

图7检查RPM包

如果没有安装这些包则需要通过rpm –ivh +包名一安装。

首先需要用mount –t iso9660 /dev/cdrom /mnt/cdrom(/mnt/cdrom必需存在)来将系统光盘挂载到/mnt/cdrom目录下。然后安装需要的rpm包。

图8 挂载光盘

图9 安装RPM包

图10 检查NFS包

图11 安装tftp-server包

图12 检查所有包的安装

4.3 配置dhcp服务

使用vim编辑器编辑/etc/dhcp.conf文件。

图13 dhcp配置文件位置

由于是第一次编辑dhcp.conf所以里面的内容是空的,那么我们就需要将/usr/shar/doc/dhcp-3.0.5/dhcp.conf.sample 复制到/etc下并改名为dhcp.conf

图14 copy dhcp示例配置文件

现在使用vim打开/etc/dhcp.conf就可以看见系统自带的dhcp示例配置了。

图15 dhcp示例配置文件内容

我们需要对它进行修改,我这里把它修改的尽量简单了。

ddns-update-style none;

ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

option routers 192.168.0.1;

option subnet-mask 255.255.255.0;

#     option domain-name “example.com”;

#     option domain-name-servers 192.168.0.1;

default-lease-time 21600;

max-lease-time 43200;

range  192.168.0.100 192.168.0.200;

filename “/kickstart/ks.cfg”;

next-server 192.168.0.1;

}

option space PXE;

class “PXE” {

match if substring(option vendor-class-identifier, 0, 9) = “PXEClient”;

option vendor-encapsulated-options 01:04:00:00:00:00:ff;

option boot-size 0x1;

filename “pxelinux.0”;

option tftp-server-name “192.168.0.1”;

option vendor-class-identifier “PXEClient”;

vendor-option-space PXE;

}

红色部分都是要特别注意的地方,出错了就会导致服务器配置失败。

图16 修改后的dhcp文件

需要注意的是字段range是给待安装的机器分配的的IP地址池,filename字段是ks.cfg的位置,即待安装机器所需要的安装配置文件,next-server是tftp服务器的位置。和下面的tftp-server-name字段是对应的。

4.4 配置tftp服务

tftp是为了给待安装的机器发送文件的简单的文件传输服务。

这个配置还是比较简单的,只需要把这个服务给启用就可以了。

使用vim编辑器打开/etc/xinetd.d/tftp文件

图17 tftp配置文件位置

将里面的disable字段值改为no,保存退出就可以了。

图18 tftp配置情况

4.5 配置nfs服务

nfs服务是将安装过程所需要的一些文件共享出来,这个也是比较简单的。

使用vim编辑器打开/etc/exports文件,只要将你想共享的文件夹写入其中就可以了,我们这里需要把/kickstart /tftpboot /linuxinstall 给共享出来就可以了,其中/kickstart文件,linuxinstall文件都是我们自己建立的,将在后面建立。而/tftpboot文件夹是在安装tftp-server的rpm包时候自动建立的。

图19 nfs配置文件位置

图20 nfs配置

其中*表示任何主机都可以访问,ro表示read only,只读权限,sync表示与服务器同步。

通过输入service nfs restart重启nfs服务,然后我们输入exportfs可以看见我们共享的文件。

图21 exportfs命令

4.6 配置ks.cfg文件

ks.cfg是待安装机器的所有的配置文件,每台机器在安装过linux系统以后都会自动生成一个ks.cfg文件里面记录了在安装系统的时候所做的所有操作,文件的位置位于/root目录下的anaconda-ks.cfg。

图22 anaconda-ks.cfg文件

下面是我自己的anaconda-ks.cfg文件。

我是通过pxe从网络自动安装的系统,所以和光盘安装有所不同。

图23 anaconda-ks.cfg内容

这个文件也可以通过system-config-kickstart的图形界面来编辑。前提需要安装这个rpm包,系统光盘自带这个包。下面的是kickstart configurator图形界面。

图24 kickstart configurator窗口

下面是笔者的ks.cfg配置内容。

Text

key –skip

keyboard us

lang en_US

langsupport –default en_US en_US

network –bootproto dhcp

nfs –server=192.168.0.1 –dir=/linuxinstall

zerombr yes

clearpart –all

part swap –size 512

part /boot –size 100

part pv.01 –size 14000

volgroup vol0 pv.01

logvol / --vgname=vol0 –size=8192 –name=root

logvol /home –vgname=vol0 –size=500 –name=home

timezone Asia/Shanghai –utc

xconfig –resolution=1024x768 –depth=16 –startxonboot

rootpw redhat

authconfig –useshadow –enablemd5

firewall –disabled

bootloader

reboot

%packages

@ GNOME Desktop Environment

@ X Window System

@ Printing Support

@ Development Tools

elinks

openssh

openssh-server

openssh-clients

vim-enhanced

samba-common

samba-client

gimp

gimp-data-extras

enscript

libcap

ntp

coreutils

elfutils

elfutils-libelf

gimp-print-plugin

gnome-icon-theme

gstreamer

gstreamer-tools

libgnomeprint22

libgnomeprintui22

libgsf

libIDL

libraw1394

nautilus-cd-burner

openmotif

pyorbit

startup-notification

ttmkfdir

firefox

mutt

%post

# Set the time, then set the hardware clock

ntpdate –b 192.168.0.1

hwclock –systohc –utc

# These accounts should be consolidated

useradd student

echo “student” | passwd –stdin student

useradd visitor

echo “password” | passwd –stdin visitor

umount 192.168.0.1:/kickstart

其中第一句text表示以字符界面安装,%packages表示需要安装的包,%post表示系统安装过后所执行的脚本。红色部分一定要注意,指定系统是通过nfs来安装的,安装路径是/linuxinstall

配置好以后保存为ks.cfg,放在后面我们建立了/kickstart目录下。

4.7 创建所需文件夹

上面我们共享出了kickstart和linuxinstall文件夹,但是系统上并没有这两个文件夹,所以就需要我们来建立这两个文件夹,使用mkdir命令来执行新建操作。

图25 创建文件夹

然后将上步创建的ks.cfg保存到/kickstart中,需要注意的是在配置dhcp.conf文件中,我们就指定了filename “/kickstart/ks.cfg”所以路径一定不能搞错。你在dhcp.conf中写的路径是什么你就需要把你的ks.cfg 放在什么样的路径。并且要通过nfs给共享出来。

而/linuxinstall文件夹放的系统安装文件。

4.8配置支持PXE启动

这步需要将linux内核复制到tftpboot文件夹内。

mount –t iso9660 /dev/cdrom /mnt/cdrom

#挂载光盘到/mnt/cdrom

cd /tftpboot/

#tfp-server指定的根目录位置(若该文件夹已经存在则不用建立,通常重启tftp服务后会自动建立)

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

#pxelinux.0是pxe方式的boot loader,如果你发现没有这个目录,不要紧张。找到syslinux这个软件包就OK了

cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot/

#把Linux第一张安装光盘上/image/pxeboot/initrd.img和vmlinux复制到/tftpboot/中

cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot/

mkdir /tftpboot/pxelinux.cfg

#在tftpboot中新建一个pxelinux.cfg目录

图26 pxelinux.cfg文件目录

由于启动镜像pxelinux.0文件在执行过程中,会读取配置文件以确定它应该载入什么Linux内核文件来运行。所有的配置文件都放在启动服务器的/tftpboot/pxelinux.cfg/目录下。pxelinux.0根据一定的规则来搜索合适的配置文件名。比如说C0A88A1E > C0A88A1 > … > C0 > C > default就是说,如果C0A88A1E文件存在,它就是pxelinux.0将载入的配置文件。否则,继续往下找。如果C0A88A1文件存在,它就是 pxelinux.0将载入的配置文件。如果前面的以C开头的文件都不存在,那么pxelinux.0将试图从文件default中读取配置。对于一台需要支持很多安装机器的安装服务器来说,将配置写在与IP地址对应的文件里很不灵活。把所有配置都集中在default文件中是个不错的主意,可以减轻配置文件维护负担。 这里也是为什么要建立pxelinux.cfg文件夹。所以接下来就要在pxelinux.cfg里建立default 文件,系统盘里也有这个文件,位于系统盘的isolinux下的isolinux.cfg但是我这里不借用它的default文件,所以这是我们使用vim编辑器在pxelinux.cfg中直接建立一个default文件。

图27 创建default文件

直接在里面写入一句话就可以了

default linux

label linux

kernel vmlinuz

append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks noipv6

图28 default文件内容

这样写的好处在于不用在待安装机器启动的时候做一些别的操作。

接下来是要在/linuxinstall文件夹中放入系统盘内的文件,你在挂载光盘后可以直接使用cp –r /mnt/cdrom /linuxinstall将文件复制到/linuxinstall中,不过这样做还是比较麻烦的,我直接使用mount –t iso9660 /dev/cdrom /linuxinstall把系统光盘给挂载到/linuxinstall中。

4.9 启动服务器

到这里我们的服务器可以说是配置的差不多了,剩下的就只要将这些服务给启动起来就可以了。

service dhcpd start

#启动dhcpd服务

chkconfig dhcpd on

#dhcpd服务开机自动启动

service nfs restart

#重启nfs服务

chkconfig nfs on

#nfs服务开机自动启动

service xinetd start

#启动xinetd服务

chkconfig xinetd on

#xinetd服务开机自动启动

4.10 测试

将待安装机器启动起来,进入bios界面,将启动方式改为从网络启动,保存退出重启即可,有的机器则不用进入bios就可以直接进入安装界面。主要过程如下:

正在获取IP地址

图29 获取IP地址

获取到IP地址后,从tftp服务器上读取内核及default配置文件并执行安装

图30获取内核文件

图31 执行安装

从nfs上加载文件

图32 加载文件

格式化磁盘

图33 格式化磁盘

安装操作系统

图34 正在安装系统

安装完成,并重新启动计算机

图35安装完成并重启

重新启动后,系统已经安装成功。

五、常见故障排除

5.1 无法分配到IP地址

如果安装开始的时候无法分配到IP地址,则说明你服务器的dhcp.conf配置的有问题,有可能你的语法有问题,比如说少了个分号(;),又或者单词写的有问题,这些语法错误会导致dhcp服务启动失败。

5.2 tftp无法连接

图36 tftp无法连接

上面也指出了错误的所在了,表示了无法连接到tftp服务器,导致这个错误的主要原因是在你的dhcp.conf文件的next-server和tftp-server-name两个字段上,如果这两个字段没有正确的指出tftp服务器的地址的话,一般就会出现这样的问题。这类问题一般都出现在dhcp服务器的配置上面,因为当待安装机器在局域网内广播需要分配IP地址的时候,服务器会将IP地址和一些安装文件的地址返回给待安装机器上,如果dhcp出现了问题则无法将这些地址返回回来,这就导致了待安装机器不知道从何处来获取安装文件。

5.3 无法获取ks.cfg文件

可以获取到dhcp服务器分配的IP地址,也可以从tftp服务器上获取内核文件,并加载,但是在读取ks.cfg文件的时候出现了错误。如下图。

图37 无法获取ks.cfg文件

出现了这样的问题则说明你的客户端是知道ks.cfg的位置的,但是就是无法读取,所以我们看看服务器的ks.cfg的权限,一般都是客户端的权限不够,所以只要更改一下ks.cfg文件的权限这样的问题一般都是可以解决的。使用chmod命令来更改权限。

图38 更改ks.cfg文件权限

基本上到此服务器已经配置好了,可以执行批量的安装Red Hat Linux操作系统了。

六、结论

本论文通过搭建kickstart无人值守服务器,介绍了一些基本Linux服务器的简单搭建,例如dhcp,nfs,tftp服务器的搭建,具体的步骤也都比较明确的写出来了。由于接触Linux还是比较迟,所以或许没有那么的完善,在写的过程中遇到很多古怪的问题,不过在老师的帮助下以及在网络和书本上查找大量资料才最终将他们一一的克服了

通过这样一篇论文使自己在Linux方面有了更深一层的认识,为以后自己在学习和工作中多出了一定的经验。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14293828/viewspace-1418500/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14293828/viewspace-1418500/

利用kickstart无人值守安装Linux相关推荐

  1. Linux PXE批量网络装机与Kickstart 无人值守安装

    Linux PXE批量网络装机与Kickstart 无人值守安装 一.PXE批量网络装机 二.PXE的三个优点 三.搭建PXE的先前条件 四.配置PXE装机服务器 1.安装并启用 TFTP 服务 2. ...

  2. Linux Kickstart无人值守安装(上)

    Linux Kickstart无人值守安装 在我们的网络维护生涯中,有不少朋友,感觉到自己在机械的做一件事情,在无聊.无趣和无奈中工作.尤其一些简单重复的操作更容易让大家感到工作的无趣.今天将给大家介 ...

  3. 用Kickstart批量安装Linux系统、Kickstart安装,linux批量安装;Linux的Kickstart的 无人值守安装;linux pxe自动安装linux系统...

    用Kickstart批量安装Linux|Kickstart,批量安装:Linux的Kickstart的 无人值守安装:linux pxe自动安装linux系统: KickStart + DHCP + ...

  4. 【Linux】PXE+Kickstart无人值守安装系统

    文章目录 前言 一.简介 二.配置DHCP 三.TFTP 四.SYSLinux服务程序 五.vsftpd服务 六.Kickstart应答文件 七.自动安装系统 八.总结 前言 本文来记录下PXE+Ki ...

  5. pxe安装linux dhcp失败,PXE+DHCP+NFS+KICKSTART无人值守安装RHEL6.4

    实验要求: 服务器(192.168.100.250)给192.168.100.0网段的客户机安装RHEL6.4操作系统,并给每台客户端192.168.100.x分配主机名clientx.linuxid ...

  6. 无人值守安装 linux 系统

    项目内容:利用网络安装技术,结合 Kickstart 程序脚本,实现无人值守安装 Linux 操作系统 项目目的:通过此技术,批量的完成成百上千台服务器系统的无人看管安装,节省大量时间. 1.首先配置 ...

  7. CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  8. 无人值守u盘安装linux,从U盘无人值守安装linux操作系统(纯实践笔记)

    作者:曲宝全 本文的目的是:实现从U盘无人值守安装Linux操作系统 环境说明:1个4G的U盘(根据自己的操作系统ISO大小来定),本文试验的操作系统是RHEL4.8-x86_64-AS-DVD.is ...

  9. Centos 6.5 Pxe+kickstart 无人值守安装操作系统

    Centos 6.5PXE+kickstart 无人值守安装操作系统 PXE一种引导方式.进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 ...

最新文章

  1. RDKit | 基于RDKit和Cytoscape绘制分子相似图
  2. 13.7 线程生命周期状态图、线程常用的方法。
  3. 哪个星座更适合做产品经理?
  4. 计算机鼠标不好使,鼠标不好用 原因竟然让人哭笑不得
  5. Android心得4.1--文件的保存与读取及文件的操作模式详解.doc
  6. 后端技术:阿里开源的接口限流神器Sentinel介绍
  7. contos的apt-get安装
  8. 20190907:(leetcode习题)打家劫舍
  9. mysql 8 多线程_mysql8 参考手册--通用线程状态
  10. pythonide的作用_你知道Python神器IDE是什么吗?
  11. Photoshop gif索引解锁及颜色失真问题
  12. 决策树(九)--极端随机森林及OpenCV源码分析
  13. 百度地图,你必须知道的自定义Marker图标方法
  14. 不要着急改代码,先想想--centos 6.8下编译安装tmux
  15. 电子白板计算机培训心得,“希沃电子白板”培训心得体会3篇
  16. GJB438C相比438B在文档种类上的变化
  17. 32个Python爬虫项目含github链接
  18. IDEA导入项目不显示项目结构src解决
  19. Python实现双色球随机选号
  20. 暴力猴简单脚本 - 去除右键菜单、文本选择限制

热门文章

  1. 修复win10 microsoft store 无法访问
  2. c语言中文渲染库,GLSL渲染编程基础与实例 (C#版本) 中文pdf扫描版[136MB]
  3. Domain Primitive 使用推荐
  4. 年轻人买中古、喝酒的地方,换成了精品咖啡馆?
  5. 爱奇艺:基于龙蜥与 Koordinator 在离线混部的实践解析 | 龙蜥技术
  6. 我妈问我12306购票时为啥需要图片验证码
  7. 技术经理平时都干啥?
  8. 如何管理好团队的工时表?
  9. LOL英雄联盟赏金术士老鼠教学视频
  10. redis批量删除名字包含“亚索”的 key