免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 783 | 回复: 0
打印 上一主题 下一主题

linux的网络安装 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-12 16:43 |只看该作者 |倒序浏览
我们知道RH中的Kickstart可以实现RedHat光盘启动后的自动安装,如果把ks.cfg及RPM安装文件考到一台HTTP或NFS服务器上,就可以实现网络自动安装,但还是需要RedHat的启动盘来启动机器,但加上DHCP、TFTP和PXElinux及支持PXE的网卡,噢,那就可以实现远程启动了。也就是说,有了上面的条件,你只要给一台支持PXE的客户机上电,然后再打入一个设置好的命令就可以安装好一RedHat台机器了。
实现上面安装的过程是这样的:PXE网卡启动------DHCP服务器------获得IP------从TFTP上下载pxelinux.0、vmlinuz、initrd------启动系统------通过PEXlinux去HTTP下载ks.cfg文件-----跟据ks.cfg去HTTP下载RPM包及安装系统------完成安装。
具体实现的过程是这样的:
1、 配制一个HTTP服务器(当然也可以是NFS、FTP)及kickstart文件:
   1) 如何配HTTP我就不说了,配好后,在HTTP的DocumentRoot目录下(一般为/var/www/html)建一个rh9目录,用于放RedHat9的安装文件。把FC5第一张安装盘的RedHat目录及下面的内容全部考到这个目录下,把第二、第三张盘的RPMS目录下的rpm包考到rh9/RedHat/RPMS目录下,完成安装文件的考贝。service  httpd  restart开启HTTP服务。可以在浏览器内打入:
http://192.168.100.1/fc5
看一下,是不是能看到RedHat目录。
   2) 用system-config-kickstart命令做一个ks.cfg文件[在图象界面下来制作],注意在“安装方法”选项中 选HTTP,在“HTTP服务器:”中打入HTTP服务器的IP地址,在“HTTP目录:”中打入fc5,做好后把这个ks.cfg文件考到HTTP服务器的DocumentRoot/fc5目录下。
  3) 在一台机器上做一下测试(注意:因为是自动安装,这台机器的上的数据可能全部被格掉喔)。用光盘启动机器,在boot:提示符下打入:linux  ks=http://192.168.100.1/fc5/ks.cfg,看一下是不是能实现自动安装,如果能,OK我们一半的工作已经做好了。
2、 配制DHCP、TFTP、和PXElinux。(当然这些服务可以和HTTP放在一台服器上)
    1) 做一台TFTP服务器太容易了,用rpm –qa | grep tftp看一下tftp有没安装,没有的话安装一下。用chkconfig  tftp  on  打开xinetd代理的tftp服务。
   2) 做一台DHCP服务器,这是关键。下面是我的dhcp.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.100.1;
}

ddns-update-style interim;
ignore client-updates;
allow booting;    #定义可以PXE启动
allow bootp;      #定义支持boottp

subnet 192.168.100.0 netmask 255.255.255.0 {
option routers                  192.168.100.254;  #定义默认网关
option subnet-mask              255.255.255.0;      
option time-offset              -18000; # Eastern Standard Time
range dynamic-bootp 192.168.100.10 192.168.100.100;
default-lease-time 21600;
max-lease-time 43200;

}
红色的部分为在DHCP中支持TFTP及PXElinux的所要添加的部分。service dhcpd  restart 开启DHCP服务。
3) 配制PXElinux。要远程启动机器,就必须要有PXElinux这个由syslinux、isolinux派生出来的,支持PXE的bootloader,它可以实现远程通过PXE启动一台机器。把/usr/lib/syslinux/pxelinux.0考到/tftpboot目录下,把第一张安装光盘上/image/pxeboot/initr.img和vmlinux也考到/tftpboot目录下。在/tftpboot建一个pxelinux.cfg目录,在rh9第一张安装光盘isolinux/下有一个isolinux.cfg文件,把它考成/tftpboot/pxelinux.cfg/default,把isolinux/*.msg考到/tftpboot下(RedHat的安装光盘的Loader就是个isolinux,呵呵)。对default(也就是isolinux.cfg)作一下修改,下面是我的default文件:
default autoinstall
prompt 1
timeout 30
display boot.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img devfs=nomount ramdisk_size=9216
label autoinstall
  kernel vmlinuz
  append ks=http://192.168.100.1/fc5/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=9216 nofb

cat一下/tftpboot/boot.msg文件:
splash.lss
-  To Local boot Red Hat Linux , type:  
    0f;07.

-  To install or upgrade Red Hat Linux in graphical mode,  
    press the 0f linux;07 key.
-  To install or upgrade Red Hat Linux in text mode, type:  
    0flinux text ;07.
-  To Auto Install Red Hat Linux , type:  
    0flinux autoinstall ;07.

-  Use the function keys listed below for more information.
02[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]07
红色行是我加入的,用于显示Local boot 和autoinstall选项。
3、 OK,到现在服务器端的配制已经基本完成了,让我们来试一下。用一台支持PXE的机器加电启动,按F12,一般机器启动时会有提示(请进入BIOS看一下,确认网卡或主板的PXE功能已经打开),选择LAN启动,看到了什么? “DHCP…………………FFFFFFFFFFFFF”接着一个和光盘启动的差不多的画面,是吧?按一下F2试一下,F2的选项是不是也出来了。打入linux  rescue 试试,是不是进入了rescue模式?HOHO~~,以后客户机启不来还要用光盘来重启进rescue模式吗?当然不用了,把安装光盘扔了吧,哈哈。
再重启机器,按F12,选择LAN,在PXE启动安装界面的boot:提示符下打入linux  autoinstall试试?HOHO~~,一个多小时后,一台新的rh9就这么安装好了。是不是很方便呢?

参考资料:
http://www-128.ibm.com/developer ... pt/l-pex/index.html

1) 什么是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协议的工作过程。
    2) 工作过程



    在上图中,PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。
    PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/31568/showart_1121309.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP