Chinaunix首页 | 论坛 | 博客
  • 博客访问: 200769
  • 博文数量: 489
  • 博客积分: 410
  • 博客等级: 下士
  • 技术积分: 2590
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-01 22:50
文章分类

全部博文(489)

文章存档

2011年(489)

我的朋友

分类: LINUX

2011-09-03 21:31:19

xe 远程安装linux系统
来源: ChinaUnix博客  日期: 2009.12.01 09:55 (共有0条评论)  

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章
[url=/133059/48801]原始出处[/url]
、作者信息和本声明。否则将追究法律责任。
[url=/133059/48801]http://coolerfeng.blog.51cto.com/133059/48801[/url]
基本原理
  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根文件系统。

    具体配置过程如下:
    首先是安装必要的服务,DHCPD,TFTP-SERVER,NFS(一般默认就有了)
    dhcpd和tftp-server都有对应的rpm,直接安装就可以了.
    # vi /etc/xinetd.d/tftp
    =============+==========+===========+============+============
    service tftp
    {
            disable = no (默认是yes,这里改成no,启用它)
            socket_type             = dgram
            protocol                = udp
            wait                    = yes
            user                    = root
            server                  = /usr/sbin/in.tftpd
            server_args             = -u nobody -s /tftpboot //-s 表示用/tftpboot作为tftp目录的根目录.
            per_source              = 11
            cps                     = 100 2
            flags                   = IPv4
    }
    tftp是由xinted来启动的,修改完后要记得service xinetd restart
    # vi /etc/dhcpd.conf
    =============+==========+===========+============+============
    ddns-update-style interim;
    ignore client-updates;
    default-lease-time 21600;
    max-lease-time 43200;
    authourtative;
    next-server 192.168.1.103;
    subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers          192.168.1.1;
        option subnet-mask      255.255.255.0;
        range 192.168.1.1 192.168.1.100;
        default-lease-time 21600;
        max-lease-time 43200;
        filename "/pxelinux.0";
        option domain-name-servers 202.106.0.20;
    }
    这里的 pxelinux.0就是上面提到的bootstrap,上面已经指定了tftp的根目录,所以这里用相对路径.
    next-server 192.168.1.103;这句一开始我并没有加上,当要安装系统的机器启动以后,在查找pxelinux.cfg目录下的配置文件的时候,就死活找不到了.经过很长时间的等待,出现一个boot:的提示符,告诉我:can't load kernel image:linux,一开始以为是/tftpboot/pxelinux.cfg/default的配置文件有误,检查后没问题.
    google了半天,总算查到了一个帖子,说可能是dhcp3.0的一个bug,需要加上这个参数来指定DHCP SERVER的IP.修改配置文件加入此句后,重启dhcp,然后再重新启动客户机,这次速度大大加快,顺利通过.
    3 配置支持PXE  
    # mkdir /tftpboot
    # cp /usr/lib/syslinux/pxelinux.0 /tftpboot
    把LINUX第一张安装光盘上/image/pxeboot/initrd.img和vmlinuz 以及isolinux/*.msg考到/tftpboot目录下(*.msg也可以不拷,重点是initrd.img和vmlinuz,没有内核是无法引导的)
    # cd /tftpboot
    # mkdir pxelinux.cfg
    # vi defaultdefault centos5
    prompt 1
    timeout 30
    label centos5
    kernel vmlinuz
    append ks=nfs:192.168.1.103:/root/inst/ks initrd=initrd.img devfs=nomount ramdisk_size=9216
    #append initrd=initrd.img devfs=nomount ramdisk_size=9216
    这里的ks=nfs:192.168.1.103:/root/inst/ks 文件是指定kickstart配置文件,可以在安装中不用人工干预,自动按预设的参数安装.实现安装过程的全自动.
    4 配置NFS服务
    # vi /etc/exports
    /root/inst      192.168.1.0/24(ro,sync) //这里是/root/inst 而不是/root/inst/
    # mkdir /home/iso
    拷贝安装LINUX的ISO文件到这个目录
    5 需要开启的系统服务
    /dhcpd/network/nfs/portmap/syslog/tftp/xinetd/
    service dhcpd start
    service portmap start
    service nfs start
    最后附上ks文件的内容.
    install
    nfs --server=192.168.1.103 --dir=/root/inst
    lang en_US.UTF-8
    keyboard us
    network --device eth0 --bootproto static --ip 192.168.1.220 --netmask 255.255.255.0 --gateway 192.168.1.1  --nameserver 192.168.1.1
    #network --device eth0 --bootproto DHCP
    rootpw --iscrypted $1$WvFbqnpm$m94fa4AopXI/kfYOYbWMW.
    firewall --enabled --port=22:tcp
    #firewall --disabled
    authconfig --enableshadow --enablemd5
    selinux --disabled
    timezone --utc Asia/Shanghai
    bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
    clearpart --all
    zerombr yes
    clearpart --linux --initlabel
    part /boot --fstype ext2 --size=256
    part / --fstype ext3 --size=8192
    part /opt --fstype ext3 --size=8192
    part /usr --fstype ext3 --size=16384
    part swap --size=4096
    part /home --fstype ext3 --size=1 --grow
    reboot //加入这行后装完系统后可以自动重启,需要注意的是机器的启动顺序不能是网卡优先,否则会循环装系统........
    %packages --resolvedeps
    @ everything
    grub
    kernel
    kernel-devel
    e2fsprogs


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/82820/showart_2107907.html
  • 阅读(143) | 评论(0) | 转发(0) |
    0

    上一篇:pxe安装

    下一篇:kickstart

    给主人留下些什么吧!~~