TFTP:Trival File Transfer Protocol,简单文件传输协议。是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。

TFTP和FTP的区别

1、FTP用TCP协议,TFTP用UDP协议
2、FTP支持用户认证,TFTP不支持
3、FTP文件大小没有限制,TFTP有限制,32MB大小
4、TFTP仅仅支持下载和上传(get/put)两个操作

TFTP用于网络远程安装

网络远程安装流程:

开机自检->网卡BOOT ROM的DHCP客户端从DHCP服务器的到IP, 掩码,DN服务器,默认网关和TFTP服务器IP及TFTP文件信息

->网卡BOOT ROM用TFTP协议从TFTP服务器上面下载TFTP文件,将TFTP文件pxelinux.0装载到内存

->pxelinux.0是一个小小的操作系统,因而能够启动机器

->pxelinux.0用TFTP协议下载Linux内核(vmlinuz)和初始化内存盘(initrd.img),用vmlinuz开机

->vmlinuz根据传给它的参数,启动装机过程

初始化内存盘:是一个文件压缩包,里面包含了一些Linux内核vmlinuz需要的一些文件,它被pxelinux.0下载并在内存里面解压

PXE:Pre-Excutable Environment,预启动环境,Intel定义的一个网络开机流程

配置TFTP,启用TFTP服务,并提供内核、引导程序

1.安装tftp服务器软件

# yum -y install tftp-server

xinetd :超级服务器,负责管理tftp,rsync等子服务

/etc/xinetd.d :xinetd的配置文件所在目录,一个子服务一个文件

配置tftp

 vim /etc/xinetd.d/tftp

 service tftp {
...
disable = no
...
}

重新启动xinetd服务器并且设置开机自动启动xinetd服务:

 service xinetd restart
chkconfig xinetd on

/var/lib/tftpboot/:存储TFTP文件的目录,可以供客户访问

pxelinux.0来源于syslinux包

 yum -y install syslinux

/usr/share/syslinux:存放着很多TFTP文件,可以用来启动机器

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

 cd /mnt/rhel-dvd/images/pxeboot/
cp vmlinz initrd.img /var/lib/tftpboot/ 

pxelinux.0需要一个启动菜单

 mkdir /var/lib/tftpboot/pxelinux.cfg

 vim /var/lib/tftpboot/pxelinux.cfg/default

 default lisi
prompt
label lisi
kernel vmlinuz
append ks=ftp://192.168.0.11/rhel6/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192

测试TFTP

 yum -y install tftp
tftp 192.168.1.1 -c get pxelinux.

Linux-TFTP之用于网络远程安装的更多相关文章

  1. Linux下的网络远程安装

    Linux下的网络远程安装 1.用RHEL6.5光盘安装第一台服务器 2.在第一台服务器上配置YUM服务器 先创建一个挂载 #mount #umount /dev/cdrom #mkdir /mnt/ ...

  2. linux使用VNC服务轻松远程安装oracle

    VNC服务在远程服务器上安装oracle,新手安装oracle时总会遇到这样或者那样的问题,下面我就详细解说一下安装过程,其实oracle安装很简单,并不要把他相像的特别复杂. 本环境用:centos ...

  3. Linux(Contos7)下使用SSH远程安装MySQL 8.0.17 完整笔记

    1. 使用putty 配置远程服务器连接,登录服务器. 由于没有指定下载包 使用 yum install mysql-server  提示 未指定包,如: 2. 因为甲骨文的收购了Mysql并且对My ...

  4. Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用

    一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...

  5. Centos安装TFTP/NFS/PXE服务器网络引导安装系统

    客户端网卡要求支持以PXE启动,配置都在服务端进行,通过PXE网络启动安装系统流程: 客户端以PXE启动发送DHCP请求: 服务器DHCP应答,包括客户端的IP地址,引导文件所在TFTP服务器: 客户 ...

  6. 由安装两块网卡的linux系统中引起网络不通想到的

    由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通服务器,我网卡的驱动都安装了,ping 自己的两块网 ...

  7. 使用Linux服务器来通过网络安装和激活Windows 7 —— 一些基本原理

    使用Linux服务器来通过网络安装和激活Windows 7 -- 一些基本原理 https://www.pufengdu.org/blog/?p=372

  8. Linux的基础命令, django的安装与使用

    一. Linux一些基础指令 cat命令, 用于查看纯文本文件(常用于内容较少的) cat 校花的故事.txt # 查看文件 cat -n 校花的故事.txt # 查看文件并显示行号 -n 显示行号 ...

  9. linux服务器开发三(网络编程)

    网络基础 协议的概念 什么是协议 从应用的角度出发,协议可理解为"规则",是数据传输和数据的解释的规则. 假设,A.B双方欲传输文件.规定: 第一次,传输文件名,接收方接收到文件名 ...

随机推荐

  1. web.config

    参数上传和文件上传大小限制调整,参数上传最大2097151 <system.web> <httpRuntime requestValidationMode="2.0&quo ...

  2. 关于SoCFPGA 编译问答

    1.在Qsys里面添加了一个新的组件(不是hps里面的东西),挂在Avalon总线上,如添加了一个新ADC组件,是否需要重新编译dtb. 答:  不需要. 2.修改了相关Qsys里面的东西,是否也需要 ...

  3. iOS官方Sample大全

    转载自:http://blog.csdn.net/yangtb2010/article/details/7005471 http://developer.apple.com/library/ios/s ...

  4. Show "Appear Offline" in Lync

    在注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator 创建DWORD,name是EnableAppearOffline,v ...

  5. ios实现程序切入后台,实现后台任务 (转自)

    ,项目需求,是程序home键切入后台,3分钟后退出登陆, 首先,iOS 会再持续切入后台,给我们5秒钟的时间去处理相关数据,5秒后,程序不会再执行任何代码,处于挂起状态. - (void)applic ...

  6. html doctype 作用介绍

    文档模式主要有以下两个作用: 1.告诉浏览器使用什么样的html或xhtml规范来解析html文档 2.对浏览器的渲染模式产生影响:不同的渲染模式会影响到浏览器对于 CSS 代码甚至 JavaScri ...

  7. PIC32MZ tutorial -- Watchdog Timer

    Watchdog is a very necessary module for embedded system. Someone said that embedded system operates ...

  8. linux部分命令

    打包ROOT文件夹tar -cvf ROOT3.tar ./ROOT 解压则相反 ps aux | grep tomcat 直接杀死tomcat sudo kill -9 进程号 rm -rf ./R ...

  9. 在.net桌面程序中自定义鼠标光标

    有的时候,一个自定义的鼠标光标能给你的程序增色不少.本文这里介绍一下如何在.net桌面程序中自定义鼠标光标.由于.net的桌面程序分为WinForm和WPF两种,这里分别介绍一下. WinForm程序 ...

  10. 通过反汇编理解函数调用机制(x86和ARM)

    如下,一个简单的程序 #include <stdio.h> int add(int a, int b) { return a + b; } void main() { , b = ; in ...