远程网络安装RHEL5

一:Linux安装工作原理

众所周知,在安装过程中Linux首先需要一个引导程序来让安装光盘启动,再实行配置与安装。但目前转化为远程网络安装那么就需要我们的安装程序能够远程地通过网络传送给客户端。因此在搭建远程Linux安装服务器时候首先要值得注意以下几个问题:

    1.远程客户端属于裸机。在这里所定义的裸机是除了标准硬件之外没有任何的操作系统与软件程序。当然也可以拥有操作系统或者是软件,之所以告诉大家是裸机是主要说明最简单的一种思维方式。

    2.远程客户端必须能够支持网络启动。在这里所说明的问题是远程客户端为了能够发送安装请求必须能够通过网络的方式进行,将安装请求发送给服务器端。因此客户端必须存在网卡,并且网卡上拥有PXE ROM[预引导执行环境]芯片而且BIOS能够支持网络启动。

    3.在远程计算机启动后将会出现初始化设置,此时因客户端没有进入操作系统或处于在裸机状态下,不可能绑定我们所熟悉TCP/IP地址或者其他网络协议地址。因此他们之间的沟通必须通过IP地址自动分配服务----DHCP来为客户端进行分发IP地址,从而实现Client-Server端之间的链接与沟通。

    4.在远程安装客户端得到IP地址之后,将请求远程安装服务器给客户端一个Linux引导程序以便于引导Linux并在客户端上实现安装界面。但是在TCP/IP协议栈中如果采用TCP协议进行传送服务,那么将会出现著名的TCP三次握手过程,从而导致远程客户端等待超时而无法完成引导过程。因此就需要采用UDP协议进行快速传递,确保远程客户端的引导。因此笔者在这里所采用的程序为TFTP[琐碎文件传输协议]服务作为远程传输服务器传送Linux引导程序的服务器。

    5.虽然UDP速度非常快速(这是本身结构有关),但是其仍然属于不可靠协议之一不具备纠错、确保数据到达目的地等保障机制,因此在传输大量文件或者是大文件时候还是需要采用TCP方式,这样将不会出现因UDP协议传输丢包而导致安装无法进行。

    在这里有多种方式供大家选择:
 1)NFS[网络文件系统]
 2)HTTP
 3)FTP等
    笔者在这里选择采用FTP方式,主要原因在于FTP的方式比较简单。

    因此准备建立远程安装服务器至少需要三个服务:DHCP、TFTP、FTP,三个服务可以再三台不同的计算机上,也可以在同一台计算机上进行实现。

原理归纳:
    远程客户端计算机启动,由于BIOS设置了网卡启动,所以网卡PXE ROM中的程序被调入内存执行。首先,客户端在网络中寻找DHCP服务器,然后请求一个IP地址;同时DHCP服务器联系到TFTP服务器为此客户端发送一个bootstrap(引导程序)。客户端收到bootstrap(文件pxelinux.0)后执行,bootstrap会请求TFTP传送bootstrap的配置文件(pxelinux.cfg)。收到后读配置文件。根据配置文件内容和客户情况,客户端请求TFTP传送内核映象文件(vmlinuz)和根文件系统文件(initrd.img)。最后启动内核。这就是一个完整的pxe构建过程。然而要使网卡启动后再继续网络安装系统,则最后还需要FTP服务将系统所需安装文件放置FTP相应目录中进行传输安装。

    下面用图形来表述原理:

                         


二:Linux安装实现步骤

    这里实现中所使用的平台为vmware6+RHEL5,您可以在FC系列、RH9、CenOS中都可以实现。

   首先创建ks.cfg文件。如果你先前已安装了一个rhel5,则在root目录下有一个anaconda-ks.cfg文件,你可以对它进行编辑,然后保存为ks.cfg文件,如果没有就要手工创建或者用其他方法创建我的如下所示:
# Kickstart file automatically generated by anaconda.

install
nfs --server=mail.xzxj11.com --dir=/tools/i386
lang en_US.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$PGpgheN.$eAAu/giXgKY4iU4AMcyi20
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone Asia/Chongqing
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --linux
part /boot --fstype ext3 --size=100 --grow --maxsize=100
part / --fstype ext3 --size=100 --grow
part swap --size=100 --grow --maxsize=512

%packages
@admin-tools
@base
@base-x
@cluster-storage
@clustering
@core
@dialup
@dns-server
@editors
@ftp-server
@games
@gnome-desktop
@graphical-internet
@graphics
@legacy-network-server
@mail-server
@network-server
@news-server
@office
@printing
@server-cfg
@smb-server
@sound-and-video
@text-internet
@web-server
@x-software-development

    1、配置DHCP服务器
    配置DHCP服务器主要用途是为了能够给客户端分配IP地址,从而让客户端与TFTP及FTP进行联系

    1.1 DHCP的配置文件
    DHCP的配置文件的位置在/etc目录下配置文件的名称为dhcpd.conf。如果您的系统中不存在dhcpd.conf同时您又确认您确实安装了DHCP程序,那么您可以手动建立dhcpd.conf文件。

    1.2 配置文件的内容:
 option space PXE;    #DHCP对PXE的TFTP(琐碎文件传输协议)应答选项
 option PXE.mtftp-ip code 1 = ip-address;
 option PXE.mtftp-cport code 2 = unsigned integer 16;
 option PXE.mtftp-sport code 3 = unsigned integer 16;
 option PXE.mtftp-tmout code 4 = unsigned integer 8;
 option PXE.mtftp-delay code 5 = unsigned integer 8;
 option PXE.discovery-control code 6 = unsigned integer 8;
 option PXE.discovery-mcast-addr code 7 = ip-address;

 class "pxeclients" {
 match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
 option vendor-class-identifier "PXEClient";
 vendor-option-space PXE;
 option PXE.mtftp-ip 0.0.0.0;
 filename "pxelinux.0";  #指定客户端所需要的的bootstrap(引导器)文件名
 next-server 192.168.1.105;   #指定TFTP服务器的IP地址
 }
 
 ddns-update-style interim; 
 ignore client-updates;
 default-lease-time 1200;
 max-lease-time 9200;
 option subnet-mask 255.255.255.0;
 option broadcast-address 192.168.1.255;
 option routers 192.168.1.1;
 option domain-name-servers 192.168.1.105;
 subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192.168.1.2 192.168.1.254;
 }

 上述所指明的pxelinux.0为网络远程安装引导程序bootstrap.其位置在/usr/lib/syslinux目录中。

    1.3  启动DHCP服务
 #service dhcpd restart


    2、配置TFTP服务器

    配置TFTP服务器主要用途是为了能够给客户端传送bootstrap程序[即pxelinux.0],这样才能够让客户端进行引导加载内核映象文件(vmlinuz)和根文件系统文件(initrd.img)以及启动内核(Kernel)

    2.1  TFTP的配置文件
 TFTP的配置文件的位置在/etc/xinetd.d目录下配置文件的名称为tftp。
 配置内容如下:
 service tftp
 {  
 socket_type = dgram
 protocol = udp
 wait = yes
 user = root
 server = /usr/sbin/in.tftpd
 server_args =  -s /tftpboot    #指定TFTP的根目录所在位置,允许任何用户可以进行访问
 disable = no
 per_source = 11
 cps = 100 2
 flags = IPv4
 }

 在这里主要修改的字段是 disable ,将yes改为no。以打开TFTP服务
 
    2.2  启动TFTP服务
 #service xinetd restart

3、配置NFS服务器

#vi /etc/exports

/tools/i386                    *(ro,insecure,sync,no_root_squash)
/tools/ks                      *(ro,insecure,sync,no_root_squash)

#service nfs start

    4、配置bootstrap目录
   
    要配置TFTP所要传输的bootstrap,首先要准备好引导文件、内核镜像文件、跟文件系统文件。

    4.1 bootstrap文件:pxelinux.0
 文件位置在/usr/lib/syslinux目录中。将其拷贝到/tftpboot目录中
 #cp /usr/lib/syslinux /pxelinux.0  /tftpboot

    4.2.内核镜像文件:vmlinuz

    vmlinuz文件在RHEL5第一张光盘下的/images/pxeboot目录中,将vmlinuz拷贝到/tftpboot目录中[假定光盘加载到/mnt/cdrom]
 #cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot
 
    4.3.根文件系统文件:initrd.img
   
    initrd.img文件在RHEL5第一张光盘下的/images/pxeboot目录中,将initrd.img拷贝到/tftpboot目录中[假定光盘加载到/mnt/cdrom]
 #cp /mnt/cdrom/images/pxeboot/initrd.img   /tftpboot

    5、创建pxelinux.cfg目录与default文件

    pxelinux.cfg为远程安装客户端配置文件所在目录,您可以为不同的计算机制定不同的安装方式或者方法。但是基本上我们都可以用default配置文件来进行为所有的计算机进行配置。
 #cd        /tftpboot
 #mkdir     pxelinux.cfg

 #vi  /tftpboot/pxelinux.cfg/default

 default内容如下:
  DEFAULT install
  PROMPT 1
  LABEL install
  KERNEL vmlinuz       
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384 ##启动参数包括启动内核时所需要mount的挂载点和ramdisk大小。一般16384都可以满足了。
   
 6、最后检查一下/tftpboot下是否存在以下文件:
1.initrd.img
2.pxelinux.0
3.vmlinuz
4.pxelinux.cfg目录
5.pxelinux.cfg/default

    ok,启动一台机器进入bios里设置为lan启动,如果没有报错的话就会出现boot:提示符,然后输入install ks=nfs:192.168.1.105:/tools/ks/ks.cfg回车,无需人工干预就开始安装了。
 

 
 原文地址 http://blog.chinaunix.net/u1/36549/showart_307973.html 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sed命令操作

sed 是一种数据流编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区(pattern space称为“模式空间”)中,在内存中处理,完成后把该行发送到屏幕上,清理pattern space中的内容,接着重复刚才的动作,读入下一行,直到文件处理结束。文件内容并没有 改变,…

Portainer简介及部署

一、介绍 Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用…

Nexus搭建Maven私有仓库

一、使用Docker安装Nexus 1、查询当前有哪些Nexus镜像 docker search nexus2、下载sonatype/nexus3 docker pull docker.io/sonatype/nexus33、运行nexus容器 mkdir -p /usr/local/nexus3/nexus-data #新建挂载目录 chown -R 200 /usr/local/nexus3/nexus-datadocker run -…

VI资料收集

1.6.1 vi 的工作模式Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移动光标,相当于向右箭头键,k 是向下移动光标&#xff…

linux终端

终端就是处理计算机主机输入输出的一套设备,它用来显示主机运算的输出,并且接受主机要求的输入,典型的终端包括显示器键盘套件,打印机打字机套件等 linux终端类型终端名称标识含义串行端口终端Serial Port Terminal/dev/ttySx 串行…

日常问题——VMware下的CentOS7 Ping不通百度

问题描述: 在VMware下新创建的CentOS ping 不通百度 解决方案: 1、点击VMware的编辑按钮下的虚拟网络编辑器 2、更改设置后,选择NAT类型,点击NAT设置 3、记录下,子网ip,掩码,网管IP信息 4、…

linux查找文件find

查找命令文件whatis 从path还从man中查找which 从path环境变量中查找文件查找locate /var/lib/mlocate/mlocate.db 通过update更新数据库 find 默认动作是 -print -ls -delete -ok -exec 命令 {} \; -name根据文件名查找-iname忽略大小写-size根据文件及目录大小查找…

linux下用ntp对时

更新系统时间的命令用&#xff1a;ntpdate <时间服务器>教育网下常用的时间服务器有s1a.time.edu.cn&#xff0c;或者210.72.145.44ntpdate 210.72.145.44更多教育下的时间服务器可在这里找到&#xff1a; http://www.time.edu.cn/mem.htm。如果想让系统退出时的把时间写…

CentOS7.6下安装Ambari

一、准备工作 1.1、准备三台CentOS 1.2、配置静态IP、DNS vi /etc/sysconfig/network-scripts/ficfg-ens33IPADDR为 配置的ip NETMASK 子网掩码 GATEWAY 网关 配置保存后重启虚拟网络 service network restart1.3、配置Hostname vi /etc/hostname#将第一行替换成新名字 m…

多主机推送公钥、修改配置、修改密码脚本

推送公钥&#xff1a; !#/bin/bash if [! -f ~/.ssh/id_rsa ] ;thenssh-keygen -P "" -f ~/.ssh/id_rsa fifor i in seq 100 do {ip192.168.1.$iping -c1 $ip &>/dev/nullif [ $? -eq 0];thenecho $ip |tee addreee/usr/bin/expect<<-EOFset time 10…

shell生活序

从编程语言的观点看linux shell-变量的作用域&#xff0c;环境变量&#xff0c;位置变量我们仍以BASH 为讨论的shell 语言每一种编程语言中&#xff0c;我们都会碰到变量的作用域的问题。&#xff08;比如在函数中定义的变量在函数外不能使用的)BASH 中也有类似的问题&#xff…

linux下安装phantomjs

PhantomJS俗称为&#xff1a;无界面的浏览器。 PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能&#xff0c;使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情。 1、下载安装包 官网下载地址&#xff1a;htt…

shell 生活0806012145

引用&#xff1a;        学习 Shell Scripts 如果您真的很想要走信息这条路&#xff0c;并且想要好好的管理好属于您的主机&#xff0c;那么&#xff0c;别说鸟哥不告诉您&#xff0c; Shell Scripts 真的是必须要学习的一项课题呢&#xff01;基本上&#xff0c; shel…

linux系统启动流程详解

一、MBR的概念 主引导扇区位于硬盘的0磁道0柱面1扇区,共512bytes,可存放一小段程序及主分区表,由三大部分组成: 硬盘主引导记录MBR(Master Boot Record)占446bytes 分区表DPT(Disk Partition Table)占64bytes 硬盘有效标志(Magic Number)占2bytes。 硬盘…

linux下安装davinci

官网地址 https://edp963.github.io/davinci/ 1、准备 JDK 1.8&#xff08;或更高版本&#xff09; MySql5.5&#xff08;或更高版本&#xff09; Mail Server (本人测试可以不用安装) phantomjs 或 chrome&#xff08;需同时安装chromedriver&#xff0c;清注意版本&#xf…

GRUB详解

一、GRUB介绍 GRUB (GRand Unified Bootloader)是GNU 下的FSF 组织所推行的一套多重开机管理软件,目前 GRUB 在 Linux 上使用的版本为 0.97 版,FSF 的官方网站表示已经不会在此版本上再追加任何新的功能,会将心思放在 GRUB 2 上。 GNU GRUB(GRand Unified Bootloader)是一…

好用的yum

从Windows转到Linux下面&#xff0c;一个不习惯的地方就是在图形界面下安装和删除软件的时候非常缓慢。但是如果你掌握了用yum的命令行模式进行配置程序&#xff0c;你肯定会从心底喜欢上这个强大的工具。因为yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令&#…

Ambari系统架构

一、Ambari系统架构 Ambari框架采用的是Server/Client的模式&#xff0c;主要由两部分组成&#xff1a;ambari-agent和ambari-server。ambari依赖其它已经成熟的工具&#xff0c;例如其ambari-server 就依赖python&#xff0c;而ambari-agent还同时依赖ruby, puppet&#xff0…

Linux系统的基本安装

一、制作Linux安装启动盘 1.准备一个干净的U盘&#xff0c;格式化。 2.下载64位系统镜像&#xff1a;rhel-server-6.8-x86_64-dvd.iso。64位系统直接安装就好&#xff0c; 3.首先制作一个启动盘&#xff0c;解压rhel-server-6.8-i386-dvd.iso文件 4.下载安装UltraISO&#…

linux tips 技巧笔记一

作者: Jeffrey出处: http://blog.zhangjianfeng.com/?p171 实现RedHat非正常关机的自动磁盘修复先登录到服务器&#xff0c;然后在/etc/sysconfig里增加一个文件autofsck,内容如下&#xff1a;AUTOFSCK_DEF_CHECKyesPROMPTyes 改变文件或目录之最后修改时间(变为当前时间)执…