设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> Linux专题 >> Linux入门 >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
Linux平台下如何把幻灯片…
IBM BladeCenter JS20 -…
详述如何构建双引导Linu…
删除Linux后如何找回Win…
如何在FC6下配置宽屏的L…
如何构建双引导 Linux 系…
Linux如何编译安装源码包…
MDV下如何利用网络安装软…
如何在大硬盘上安装Linu…
Linux 命令行下如何配置…
  如何通过PXE的方式远程安装Linux系统         
如何通过PXE的方式远程安装Linux系统
 

一般情况下,我们都是利用软驱或光驱引导Linux后,再通过本地的光驱安装Linux。但是,这种安装方法在以下的几种情况下就不能适用: 

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

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

3、另外,在一些场合,如机房中,有大量的计算机需要同时安装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) = "PXEClient"; 

    option vendor-class-identifier "PXEClient"; 

    vendor-option-space PXE; 

    # At least one of the vendor-specific PXE options must be set in 

    # order for the client boot ROMs to realize that we are a PXE-compliant 

    # server. We set the MCAST IP address to 0.0.0.0 to tell the boot ROM 

    # that we can't provide multicast TFTP (address 0.0.0.0 means no 

    # address). 

    option PXE.mtftp-ip 0.0.0.0; 

    # This is the name of the file the boot ROMs should download. 

    filename "pxelinux.0"; 

    # This is the name of the server they should get it from. 

    next-server 192.168.0.1; 

  } 

  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.0.255; 

  option routers 192.168.0.254; 

  option domain-name-servers 192.168.0.1,192.168.0.2; 

  option domain-name "mydomain.org"; 

  subnet 192.168.0.0 netmask 255.255.255.0 { 

  range 192.168.0.10 192.168.0.100; 

  } 

  host q10 { 

  hardware ethernet 00:00:F0:6B:38:5B; 

  fixed-address 192.168.0.22; 

  } 

   

dhcpd.conf配置文件中几个关键部分说明如下:host q10{…}定义了笔记本Q10网卡的MAC地址与IP地址的对应关系,表明DHCP Server为Q10分配一个固定的IP:192.168.0.22;filename ""指定bootstrap的文件名;netx-server指定TFTP Server的地址。其它的配置请读者参考DHCP Server的手册。 

配置TFTP server 

选用tftp-hpa,TFTP Server的配置文件是/etc/xinetd.d/tftp,配置文件的内容如下: 

service tftp 

  { 

      socket_type       = dgram 

      protocol        = udp 

      wait          = yes 

      user          = root 

      server         = /usr/sbin/in.tftpd 

      server_args       = -u nobody -s /tftpboot 

      disable         = no 

      per_source       = 11 

      cps           = 100 2 

  }

这里制定了/tftpboot为TFTP Server的根目录位置。 

配置bootstrap 

bootstrap文件在dhcpd.conf中被指定为pxelinux.0文件,放置在/tftpboot。Linux内核以及Linux根文件系统也放置在/tftpboot。pxelinux.0在执行过程中,要读配置文件,所有的配置文件都放在/tftpboot/pxelinux.cfg/目录下。由于PXElinux具有为不同的PXE Client提供不同的Linux内核以及根文件系统的功能,所以要通过不同的配置文件名来区分出不同的PXE Client的需求。比如一个PXE Client由DHCP Server分配的IP地址为192.168.0.22,那么相对应的配置文件名为/tftpboot/pxelinux.cfg/C0A80016(注:C0A80016为IP地址192.168.0.22的十六进制表示)。如果找不到,就按照顺序C0A80016-> C0A8001-> C0A800-> C0A80-> C0A8-> C0A-> C0-> C->default查找配置文件。 

/tftpboot/pxelinux.cft/C0A80001配置文件的具体内容如下: 

 

DEFAULT install 

  PROMPT 1 

  LABEL install 

  KERNEL vmlinuz 

  APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384 

   

此配置文件指定了Linux内核以及根文件系统的名称,并给内核传递了一些参数,其中ramdisk_size参数要非常注意,它指定Linux内核启动后建立ramdisk的大小,如果设置太小,Linux的安装过程就可能无法进行。 

制作Linux内核/根文件系统 

因为需要通过网络安装,所有选择Redhat Linux 8.0安装盘(disk #1)中E:\images\bootnet.img(光驱的盘符为E:)。bootnet.img包括Linux内核、Linux根文件系统(有安装程序在内)。用bootnet.img制作一张引导软盘,方法在DOS命令行运行E:\dosutils\rawrite E:\images\bootnet.img,根据提示制作。制作完毕后,将引导软盘中的vmlinuz(Linux内核)和initrd.img(Linux根文件系统)拷贝到Linux Server的/tftpboot下。 

启动DHCP Server/TFTP Server 在Linux Server上,运行service dhcpd start和service xinetd restart。 

启动Q10 

Q10加电后,在出现Samsung公司徽标时,在左下角会提示用户按F12进入网络引导。按F12后,Q10进入网络引导过程。首先通过DHCP Server获得了IP地址,然后下载并执行bootstrap文件pxelinux.0;在执行中,读入配置文件/tftpboot/pxelinux.cfg/C0A80016。此时屏幕上出现boot:,敲入install,就进入了Redhat Linux 8.0的网络安装界面,一切OK! 

结束语

虽然以上的讨论是针对Samsung Q10笔记本,但是工作原理和安装方法对于其它类型的计算机也是适用的,不过要记住,计算机的网卡中必须要有BootROM--PXE Client。同时,PXE协议也可作为无盘Linux技术,用于引导放置在远程的Linux。实际上,只要根据需要,在Pxelinux的配置文件的APPEND选项中,为Linux内核传进需要mount的文件系统的位置参数即可。

Linux联盟收集整理

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-1-2 16:08:29
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持