Feb 15

使用PXE方式安装红旗Desktop 5.0 夜晚

linuxing , 18:02 , 网络服务 » 常见服务 , 评论(2) , 引用(0) , 阅读(18216) , Via 本站原创 | |
 首先要说明的是,红旗产品手册《RedFlag Desktop 5.0 安装手册》上已经提供有PXE安装方式的说明。而我下面只是作为补充的方式进行,详细的请参考上述手册。
 我以一台需要安装红旗桌面5.0的空机器为例,后台服务器使用DC Server 4.1,使用ISO方式安装。ISO放在后台服务器上。
(测试中发现,后台服务器如果采用红旗DC Server 5.0,并使用它/usr/lib/syslinux/pxelinux.0文件,版本PXE 2.11。那么,不能用Vmware GSX Server 3.2进行测试。会出现启动到boot:界面,但输入不了字符的错误。但可以用实际机器进行安装,只是虚拟机才会出现问题。而且,如果用DC Server 4.1带的PXE 2.06也正常。)
一、原理
 严格来说,PXE并不是一种安装方式,而是一种引导的方式。要进行PXE安装的必要条件是:要安装的计算机包含有一个支持PXE启动的网卡,也就是说网卡中要有PXE Client。通常板载网卡、品牌机和笔记本电脑都可以满足该要求。
 PXE(Pre-boot Execution Environment)协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
 工作流程如下:
点击在新窗口中浏览此图片
 PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

二、准备
 根据上述的原来,我们需要最少1台基于linux的服务器作为PXE server、DHCP server、TFTP server使用。而且,考虑到PXE只是引导,最后安装的时候还是要用网络的方式,如:NFS、FTP等,所以也可以把该服务一起配置上去。
 另外,由于PXElinux具有为不同的PXE Client提供不同的Linux内核以及根文件系统的功能,所以我们需要知道即将安装的机器使用的网卡MAC地址。
 最后,我选择了红旗DC Server 4.1作为这个后台服务器。网卡地址是:00:0C:29:B7:A8:A3

三、实施
 以下步骤,从特殊说明外,都在红旗DC Server 4.1上执行:
1、配置DHCP服务端
 配置文件在/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.
   # 指定PXE启动后下载的文件名
   filename "pxelinux.0";

   # This is the name of the server they should get it from.
   # 这里指定TFTP服务器IP地址
   next-server 192.168.228.16;
}
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
#下面开始定义DHCP的IP范围
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.228.255;
#网关、域名等可以根据实际情况,不要也可以
option routers 192.168.228.1;
option domain-name-servers 192.168.228.1;
option domain-name "mydomain.org";
subnet 192.168.228.0 netmask 255.255.255.0 {
range 192.168.228.220 192.168.228.225;
}
#根据需要安装机器的网卡地址定义IP,并记录下来
host test {
hardware ethernet 00:0C:29:B7:A8:A3;
  fixed-address 192.168.228.221;
}

2、配置TFTP Server
 默认TFTP服务是关闭的,修改/etc/xinetd.d/tftp文件,把disable从yes改为no,内容如下:
引用
service tftp
{
  disable  = no
  socket_type    = dgram
  protocol    = udp
  wait      = yes
  user      = root
  server      = /usr/sbin/in.tftpd
  server_args    = -s /tftpboot
  per_source    = 11
  cps      = 100 2
  flags      = IPv4
}

3、配置相关的文件
 首先是bootstrap文件,在dhcpd.conf中已经指定了是pxelinux.0,把它从/usr/lib/syslinux/目录中拷贝到/tftpboot/目录下:
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

 然后是为不同的PXEClient指定linux核心、根文件的配置文件。先在/tftpboot下建立一个pxelinux.cfg目录,然后再该目录下根据你DHCP里面指定分配给PXEClient的IP地址建立配置文件,如:
cd /tftpboot/
mkdir pxelinux.cfg

 我给PXEClient提供的IP是:
引用
192.168.228.221
C0  A8  E4  DD   <--对应的十六进制

 所以,我们要建立的文件应该是C0A8E4DD。如果启动的时候找不到该文件,TFTP会以C0A8E4DD->C0A8E4D->C0A8E4->C0A8E->C0A8->C0A->C0->C->default的方式寻找。(所以如果在同时安装多台同系统的机器的时候,可以用C0或default等文件来批量配置)
 结果如下:

cd pxelinux.cfg
cat > C0A8E4DD << EOF
DEFAULT install
PROMPT 1
LABEL install
KERNEL vmlinuz
APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384
chmod 644 C0A8E4DD

※这里要注意,ramdisk不能太小,否则可能加载不完linux的核心。另外,C0A8E4DD这个文件的权限最少是644,因为tftp使用nobody用户去读取的。
4、拷贝对应的核心文件和根文件
 这里必须拷贝你要安装的linux版本的对应文件。例如,我要安装的是红旗桌面5.0,则把第一张光盘/images/pxeboot目录下的两个文件vmlinuz(Linux内核)和initrd.img(Linux根文件系统)拷贝到主服务器DC Server 4.1上的/tftpboot目录下。
scp /images/pxeboot/vmlinuz 192.168.228.16:/tftpboot/
scp /images/pxeboot/initrd.img 192.168.228.16:/tftpboot/

5、启动后台服务
service dhcpd start
service xinetd start

(TFTP是由xinetd托管的)
6、配置FTP服务器
 该FTP服务器主要是为安装程序提供资源,可以用proftpd、vsftpd等。要注意的地方是:
A、红旗桌面5.0的ISO文件先mount到某个目录中,并以该目录为ftp登陆后的根目录
B、可以使用匿名或用户验证方式
7、启动要安装的机器
 首先在Bios里面选择从网络启动,会出现这样的界面:
点击在新窗口中浏览此图片
 看到boot:后,即可输入参数,回车后按正常的方式安装,如:linux test。
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
 出现安装界面:
点击在新窗口中浏览此图片

※注意,由于红旗的安装光盘最少有2个ISO文件,而在启动的时候只是把第一张光盘挂载到ftp上。如果安装途中出现如:
点击在新窗口中浏览此图片
 则表示需要更换光盘了。此时,可以先把ftp停止,然后umount ISO文件,再mount上新的ISO文件,启动ftp即可。
 使用FTP、NFS方式安装都必须先把服务停止,以防止缓存导致问题。

※附件:
例程中配置好的文件,点击下载。
Tags: ,
hover
2008/04/05 20:24
大哥,我的tftpd有问题,好晕啊,用tftp客户端,拿服务器的文件,居然得到的文件大小是0.客户机启动后也找不到内核镜像。。。。希望指点指点
linuxing 回复于 2008/04/08 15:26
你下载我附件中的配置,直接修改试试吧。
hover
2008/03/30 22:24
大哥:我按照这篇文章做了,但我是在虚拟机里面安装EMOS1.3的系统,做服务器。但客户机网络启动后,提示:tftp open time out。。。。请指点迷惑,谢谢
linuxing 回复于 2008/03/30 23:02
使用tcpdump看看服务器时候能收到客户端发过来的PXE请求吧。否则,先检查一下虚拟机的配置是否正确呢?
(vmware上使用该PXE方式如果配置正确,是支持的,我常用)
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]