Suse11批量安装系统

本文是根据 suse 11 sp1实际安装所写,如果是别的安装环境,大致更换一点路径就行


一步:先安装一个操作系统(SUSE11 建议不要勾选添加附属产品,不然在后面的自动化安装过程中,会提示一个报错
add-on的,需要鼠标点击。另外安装最后,记得勾选保存安装文件,生成ks文件。注意
那些不要的参数,该注释,注释,不然会影响到客户端的引导)

然后稍微讲一下PXE工作原理

PXE到底是什么东东?

PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。

既然是通过网络传输,就需要IP地址;也就是说在其启动过程中,客户端请求服务器分配IP地址,之后PXE Client使用TFTP Client 通过TFTP(Trivial File Transfer Protocol)协议下载启动安装程序所需的文件。

简单地说PXE网络安装,客户机通过支持PXE的网卡向网络中发送请求DHCP信息的广播请求IP地址等信息,DHCP服务器给客户端提供IP地址和其它信息(TFTP服务器、启动文件等),之后请求并下载安装需要的文件。在这个过程中需要一台服务器来提供启动文件、安装文件、以及安装过程中的自动应答文件等。下图中介绍了Linux中自动安装系统的详细工作过程:

第一步:PXE Client向DHCP发送请求

首先,将支持PXE的网络接口卡(NIC)的客户端的BIOS设置成为网络启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向网络中的DHCP服务器索取IP地址等信息。

第二步:DHCP服务器提供信息

DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。

第三步:PXE客户端请求下载启动文件

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

第四步:Boot Server响应客户端请求并传送文件

当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。

第五步:请求下载自动应答文件

客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。

接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

第六步:客户端安装操作系统

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

OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。

在上面介绍中PXE client是需要安装Linux的计算机,TFTP Server、DHCP Server和NFS Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核都放置在Linux Server上TFTP服务器的根目录下。而Linux根文件系统存放于NFS Server的共享目录中。

PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

那么我们配置的思路就是

① 配置DHCP,用于给客户端提供IP地址及其它信息

② 配置TFTP服务器,用于提供客户端PXE引导所必须的文件

③ 配置NFS服务器,用于存放安装树

④ 配置Kickstart,用于自动应答安装(这个也可以按照开头所说用安装系统产生的文件)

⑤ 使用PXE功能引导客户机

SUSE配置DHCP

我们使用YAST进行操作

1 以 root 身份登录到主管 DHCP 服务器的计算机。

2 启动 YaST > 网络服务> DHCP 服务器。

3 完成基本 DHCP 服务器安装的安装向导。

4 当遇到退出启动对话框的警告时,选择专家设置并选择是。

5 在配置声明对话框中,选择新系统所在的子网并单击编辑。

6 在子网配置对话框中,选择添加来向子网配置添加新选项。

7 选择 filename 并输入 pxelinux.0 作为值。

8 添加另一选项 (next-server) 并设置 TFTP 服务器地址的值。

9 选择确定和完成以完成 DHCP 服务器配置。

当然,你也可以手动配置

vi /etc/dhcpd.conf

几个参数说一下,authoritative 是在一个网络环境中,有两个DHCP服务器才使用,这个可以默使当前分发DHCP服务器为主要DHCP服务器,客户端拒绝连接其他的DHCP服务器。

allow booting 是允许pxe

filename 是指定引导文件(不写绝对路径,具体的在下面的tftp中指定)

next-server是告诉服务器,找到PXE以后,去哪里寻找剩下的配置参数(也可以理解为tftp服务器地址)

设置完成后,重新引导dhcp服务(rcdhcpd start)

至于红帽的安装方法

1)安装DHCP软件包

[[email protected] Server]# rpm -ivh dhcp-3.0.5-13.el5.i386.rpm

Preparing...                ########################################### [100%]

1:dhcp                      ########################################### [100%]

[[email protected] Server]#

2)配置DHCP

安装完成后,复制DHCPD配置文件模版替换原配置文件/etc/dhcpd.conf。

[[email protected] Server]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

接下来我们需要配置相关信息。为了满足我们的安装需求,假设PXE服务器、DHCP服务器、TFTP服务器全部安装在一台为192.168.1.1的计算机上。我们需要进行如下操作:

(1)修改 /etc/dhcpd.conf 文件,指定 IP 地址等信息。

(2)在 ‘‘‘/etc/dhcpd.conf‘‘‘ 中增加 tftp-server 需要推送给客户端的启动文件(bootstrap):filename "pxelinux.0";因为 tftp 的默认目录是 /tftpboot,所以文件的绝对路径就是: /tftpboot/pxelinux.0";当然也可以指定为其它的路径。

另外需要指定 next-server 参数,告诉客户端在获取到 pxelinux.0 文件之后去哪里获取其余的启动文件: next-server 192.168.1.1;

最终的配置文件结果如下所示:

[[email protected] Server]# vi /etc/dhcpd.conf

ddns-update-style interim;

ignore client-updates;

allow booting; #定义能够PXE启动

allow bootp;  #定义支持bootp

subnet 192.168.1.0 netmask 255.255.255.0 {

range  192.168.1.10 192.168.1.80;

option routers                  192.168.1.1;

option subnet-mask              255.255.255.0;

default-lease-time 21600;

max-lease-time 43200;

next-server 192.168.1.1; #TFTP Server的IP地址

filename "pxelinux.0";   #pxelinux启动文件位置

}

配置完成后,重启DHCP服务,并将它设为开机自启动。

配置TFTP服务器

SUSE

使用 YaST 设置 TFTP 服务器

1 以 root 身份登录。

2 启动 YaST > 网络服务> TFTP 服务器,并安装请求的包。

3 单击启用以确保服务器启动并包含在引导例程中。之后您就无需为此再进行

任何操作。xinetd 将在引导时启动。

4 单击打开防火墙中的端口以在您计算机上运行的防火墙中打开相应的端口。

如果您的服务器上未运行任何防火墙,则该选项不可用。

5 单击浏览以查找引导映像目录。默认目录 /tftpboot 是自动创建并选定的。

6 单击完成以应用设置并启动服务器。

手动设置 TFTP 服务器

1 以 root 身份登录,然后安装 tftp 包和 xinetd 包。

2 如果这两个包不可用,请创建 /srv/tftpboot 目录和 /srv/tftpboot/

pxelinux.cfg 目录。

3 按第 14.3.3 节 “使用 PXE 引导” [213]中所述添加引导映像所需的相应文件。

4 修改位于 /etc/xinetd.d 下的 xinetd 的配置,以确保 TFTP 服务器在引导

时启动:

4a 如果该配置文件不存在,请使用 touch tftp 命令在该目录下创建一

个名为 tftp 的文件。然后运行 chmod 755 tftp。

4b 打开文件 tftp,添加以下几行:

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /srv/tftpboot

disable = no

}

4c 保存该文件,然后使用 rcxinetd restart 命令重启动 xinetd。

准备系统安装镜像

SUSE

1 切换到安装源所在目录 boot/<architecture>/loader,然后输入以下

命令将 linux、initrd、message、biostest 和 memtest 文件复制到

/srv/tftpboot 目录:

cp -a linux initrd message biostest memtest /srv/tftpboot

2 通过 YaST 直接从安装 DVD 安装 syslinux 包。

3 输入以下命令来将 /usr/share/syslinux/pxelinux.0 文件复制到

/srv/tftpboot 目录中:

cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot

4 切换到安装源所在目录,然后输入以下命令,将 isolinux.cfg 文件复制

到 /srv/tftpboot/pxelinux.cfg/default:

cp -a boot/<architecture>/loader/isolinux.cfg

/srv/tftpboot/pxelinux.cfg/default

5 编辑 /srv/tftpboot/pxelinux.cfg/default 文件。(下面是这次的配置文件)

具体的意思我不介绍了,SUSE上面有详细的。基本上写一个 install= 和 autoyast=就行

最后,准备安装介质

SUSE用YAST配置NFS即可

红帽

3)用于网络启动的内核文件

将 RedHat 安装光盘目录中的 ‘‘‘images/pxeboot/{vmlinuz,initrd.img}‘‘‘ 启动文件复制到某个安装目录,比如:‘‘‘/tftpboot/ ‘‘‘:

[[email protected] Server]# cp /media/rhel5/images/pxeboot/{vmlinuz,initrd.img} /tftpboot/

由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件搜索方式来查找针对客户机的配置文件。如果客户机的网卡的MAC地址为‘‘‘88:99:AA:BB:CC:DD‘‘‘,对应的IP地址为192.168.1.195,那么客户机首先尝试以MAC地址为文件名匹配的配置文件,如果不存在就以IP地址来查找。根据上述环境针对这台主机要查找的以一个配置文件就是 /tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd。如果该文件不存在,就会根据IP地址来查找配置文件了,这个算法更复杂些,PXE映像查找会根据IP地址16进制命名的客户机配置文件。例如:192.168.1.195对应的16进制的形式为C0A801C3。(可以通过syslinux软件包提供的gethostip命令将10进制的IP转换为16进制)

如果C0A801C3文件不存在,就尝试查找C0A801C文件,如果C0A801C也不存在,那么就尝试C0A801文件,依次类推,直到查找C文件,如果C也不存在的话,那么最后尝试default文件。

总体来说,pxelinux 搜索的文件的顺序是:

/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd

/tftpboot/pxelinux.cfg/ C0A801C3

/tftpboot/pxelinux.cfg/ C0A801C

/tftpboot/pxelinux.cfg/ C0A801

/tftpboot/pxelinux.cfg/ C0A80

/tftpboot/pxelinux.cfg/ C0A8

/tftpboot/pxelinux.cfg/ C0A

/tftpboot/pxelinux.cfg/ C0

/tftpboot/pxelinux.cfg/C

/tftpboot/pxelinux.cfg/default

对于一台需要支持很多安装机器的安装服务器来说,将配置写在与IP地址对应的文件里很不灵活。把所有配置都集中在default文件中是个不错的主意,可以减轻配置文件维护负担。接下来创建/tftpboot/pxelinux.cfg/ 目录,该目录用于存放客户端的配置文件。

[[email protected] Server]# mkdir /tftpboot/pxelinux.cfg

将光盘中的 ‘‘‘isolinux/isolinux.cfg‘‘‘ 文件复制为 ‘‘‘/tftpboot/pxelinux.cfg/default‘‘‘

[[email protected] Server]# cp /media/rhel5/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

查看default文件内容:

以下内容根据原文件略加修改并做了注释(注:该文件中的空行和以 ‘‘‘#‘‘‘ 开头的行都将被忽略)

# 默认启动的是 ‘label linux‘ 中标记的启动内核

default linux

# 显示 ‘boot: ‘ 提示符。为 ‘0‘ 时则不提示,将会直接启动 ‘default‘ 参数中指定的内容。

prompt 1

# 在用户输入之前的超时时间,单位为 1/10 秒。

timeout 60

#显示某个文件的内容,注意文件的路径。默认是在 /tftpboot 目录下。也可以指定位类似 ‘install/rhel4.4-inst/boot.msg‘这样的,路径+文件名。

display boot.msg

F1 boot.msg  #按下 ‘F1‘ 这样的键后显示的文件。注意路径。默认是 /tftpboot。注:syslinux 官方网站上说目前只能使用F1-F10。

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

# ‘label‘ 指定你在 ‘boot:‘ 提示符下输入的关键字。

# 比如:

# boot: linux[ENTER]

# 这个会启动 ‘label linux‘ 下标记的 kernel 和 initrd.img 文件。

# 这里还定义了其它几个关键字:

#  boot: text

#  boot: ks

# kernel 参数指定要启动的内核。同样要注意路径,默认是 /tftpboot 目录。

# append 指定追加给内核的参数,能够在 gurb 里使用的追加给内核的参数,在这里也都可以使用。

# 使用 kickstart 安装。

# 可以在 ks 参数后直接指定 kickstart 文件的位置。

label linux

kernel vmlinuz

append ks=nfs:192.168.1.1:/mnt/install/ks.cfg initrd=initrd.img

label text

kernel vmlinuz

append initrd=initrd.img text

label ks

kernel vmlinuz

append ks initrd=initrd.img

… …

配置NFS 即可。

时间: 2024-08-11 05:43:36

Suse11批量安装系统的相关文章

cobbler批量安装系统使用详解-技术流ken

1.前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 2.系统环境准备及其下载cobbler 一.系统环境 系统版本:CentOS release 6.7 (Final) 内网IP:192.168.232.7/24    #用来对内通信,提供cobbler服务 外网IP:10.220.5.166/24      #连接外网 二. 关闭安全服务 [[email protected] ~

基于centos7系统部署cobbler批量安装系统

1.cobbler cobbler是一个可以实现批量安装系统的linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. cobbler部署安装: 1. 下载相关软件 2. 配置dhcp 3. 配置tftp 4. 启动httpd 5. 启动cobbler 6. cobbler自检 7. 根据提示进行修改 8. cobbler重启及同步 9. 挂载光盘 10. 生成distro 11. 创建kickstart文件 12. 创建profile

自动化批量安装系统

1. 什么是PXE 严格来说,PXE 并不是一种安装方式,而是一种引导方式.进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client.PXE (Pre-boot Execution Environment)协议可以使计算机通过网络启动.此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中.当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client

linux__kickstart无人值守批量安装系统

一.    部署前的安装环境: 1.centos6.3的系统环境. 第一台服务器搭建dhcp+tftp.IP为192.168.0.253.第二台服务器搭建nfs服务,并安装kickstart自动应答文件IP为192.168.0.254. 2需要安装dhcp服务(分配客户端IP地址的,以便从网络引导) 3安装tftp(ftp,http)服务(提供下载系统镜像的). 4安装kickstart(用来自动安装系统的). 二     安装: 1挂载光盘,用rpm方式安装. 2用yum安装的方式,保证你的电

如何利用PXE+kickstart实现批量安装系统

PXE网络快速自动安装系统,以下实验环境均在RedHat 7.2 配置PXE网络装机服务器,为了避免防火墙与selinux的干扰,改为信任以及宽松模式 1. 将防火墙状态设置为trusted 2.SELinux当前修改为permissive 3.SELinux永久状态修改为permissive 步骤一:构建DHCP服务,使客户端自动获取ip, 1. 服务器添加虚拟磁盘 2. 把光盘挂在在/mnt目录下 mount  /dev/cdrom  /mnt/ 3.  由于该服务器上没有对应的yum仓库,

PXE无人值守批量安装系统

设想一个场景:假如让你给1000台服务器装系统,你会怎么做?跑去每一台服务器给它安装系统吗?显然不会.接下来就是如果给1000台快捷安装系统. 一.概括 通过网络引导系统的做法可以不必从硬盘.软盘或CD-ROM硬盘,而是完全通过网络来引导一台计算机.这对于安装来说非常方便,因为它意味着你可以坐在桌子旁边,不必走到机器那里插入CD-ROM光盘或软盘,就可以从网络上引导位于别处的一台机器. PXE的作用:就像在网卡上ROM里的小小操作系统,它通过标准API把自己的网络引导功能提供给系统的BIOS,就

【自测成功案例】PXE无人值守批量安装系统

项目简介: PXE高效批量网络装机 在我们实际工作中,服务器并不会配备光驱设备,但是又需要安装几十台服务器裸机服务器怎么办,又需求就会有解决的办法,PXE(预启动执行环境)技术的网络装机方法.并结合kickstart配置实现无人值守自动安装就解决了这一个实际问题. 部署要求: 1·客户机的网卡需要支持PXE协议,且主板支持网络引导(市面上大多数都支持) 2·需要又一台DHCP服务器为客户机自动分配地址.指定引导文件位子. 3·服务器通过TFTP(简单文件传输协议),提供引导镜像文件的下载 环境要

linux下配置cobbler批量安装系统

1.安装准备 yum install -y cobbler tftp dhcp httpd cman pykickstart debmirroryum install -y ed patch perl perl-Compress-Zlib perl-Digest-SHA1 perl-LockFile-Simple perl-libwww-perlyum install -y syslinux 2.启动httpd和cobbler [[email protected] ~]# service htt

kickstart模式实现批量安装centos7.x系统

1.1 安装系统的方法 l  光盘(ISO文件,光盘的镜像文件)===>>每一台物理机都得给一个光驱,如果用外置光驱的话,是不是每台机器都需要插一下 l  U盘:ISO镜像刻录到U盘==>>需要每台机器都需要插一下 l  并行安装==>>网络安装 l  自动化安装 1.2 linux下批量安装系统 kickstart是RedHat公司开源的软件,所以对CentOS兼容性最好. 原理: 我们将手动安装的所有的详细步骤记录到一个文件中,然后kickstart通过读取这个文件