如何通过PXE的方式远程安装linux(本地无 光 , 软驱)

2016-01-29 19:09 12 1 收藏

如何通过PXE的方式远程安装linux(本地无 光 , 软驱),如何通过PXE的方式远程安装linux(本地无 光 , 软驱)

【 tulaoshi.com - Linux 】

  如何远程安装Linux
作者:汤凯    本文选自:IBM DW中国  2002年12月06日  
 
一般情况下,我们都是利用软驱或光驱引导Linux后,再通过本地的光驱安装Linux。但是,这种安装方法在以下的几种情况下就不能适用: 

· 无软驱和光驱:很多公司为了节省成本,计算机一般都不带光驱或软驱,这样就无法通过本地安装Linux; 

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

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

笔者在工作过程中,就遇到过第二种情况。一台Samsung的Q10笔记本需要安装Redhat Linux 8.0,但是通过光驱引导后发现,安装程序无法访问光盘。针对这个问题,笔者经过查阅资料和摸索,找到了在Q10上安装Linux的方法。在下面的讨论中,如不做特别声明,都将以Q10为例,介绍如何通过PXE Bootrom来远程安装Linux。 


基本原理


什么是PXE 

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

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

既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置; 

通过什么协议下载Linux内核和根文件系统 

对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。 

至于第二个问题,在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服务器的根目录下。 

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


步骤


有了前面的背景知识,接下来就可以正式操作了,下面按照顺序给出了操作步骤: 

配置DHCP Server 

选用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的内容如下: 

option space PXE;
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) =&n

来源:https://www.tulaoshi.com/n/20160129/1508608.html

延伸阅读
  一、原理  客户端在启动前,既无操作系统,又无启动的软盘或者硬盘,它只有计算机的基本部件: CPU, 内存,主板等。 但必须有网卡和启动的BootRom。因此客户机只能通过网络获得操作系统。Linux的无盘远程启动与Novell、 WinNT下的无盘启动技术不一样,不是采用RPL( Remote Initial Program Loader...
标签: 服务器
linux怎么远程windows?   最近的测试环境都是在ubuntu下完成的、但是我的办公机器却是一台windows 7操作系统;我需要经常性的远程在windows下操作; 其实linux下远程windows并不麻烦;如果你是安装的ubuntu、那么安装完成之后就自带一个Remmina的远程桌面工具;你可以通过Remmina工具远程windows的3389、ssh telnet等等设备; ...
怎样通过碗豆夹安装本地应用到手机上   提前是要将碗豆夹2 官方下载到电脑上和手机上。 下载好后直接运行碗豆夹PC版,点击右上角的设置界面,并勾选关联安装包中的双击apk应用安装包直接安装应用。 这样设置之后就可以双击来将应用安装到手机中了。 在安装的时候,碗豆夹也会有关于应用权限的窗口弹出,根据自己的需要...
标签: 服务器
在Linux系统中安装web端的远程连接工具Wetty   Wetty 是什么? Wetty = Web + tty 作为系统管理员,如果你是在 Linux 桌面下,你可以用它像一个 GNOME 终端(或类似的)一样来连接远程服务器;如果你是在 Windows 下,你可以用它像使用 Putty 这样的 SSH 客户端一样来连接远程,然后同时可以在浏览器中上网并查收邮件等其它事...
标签: ASP
  把asp程序作成dll很多好处,但是有一点,该dll必须注册才能在asp中调用。如果是自己的服务器那还好,但如果是租用的虚拟服务器,就没办法使用了。 怎样在远程主机上注册我们的dll呢?在服务器端使用Shell!!! 让我们先将自己的dll文件通过ftp或http上传到服务器上,然后作一个asp程序,调用WScript.Shell来执行regsvr32命令: Set o...

经验教程

408

收藏

77
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部