Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2110929
  • 博文数量: 333
  • 博客积分: 10161
  • 博客等级: 上将
  • 技术积分: 5238
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-19 08:59
文章分类

全部博文(333)

文章存档

2017年(10)

2014年(2)

2013年(57)

2012年(64)

2011年(76)

2010年(84)

2009年(3)

2008年(37)

分类: LINUX

2011-06-21 12:12:21

多操作系统的网络安装

2010-11-06 08:56:26|  分类: 默认分类 阅读52 评论1  字号: 订阅

                 

 实验目标:在一个主机A上做相应的服务配置,使与其在同一网络中的其他主机,可以通过输入相应的字符,网络安装相应的系统。

实验思路: 做过kickstat 无人值守批量安装linux的实验,但是突然做多操作系统的网络安装还真有点没思路,不过仔细想了一下,这和红帽RHCI系统是类似的,只是红帽RHCI系统是采用同一个源,而这次实验的内容是不同的源。所以我采用的方法是将两者结合在一起!(但是相信有更好的方法,只是我还没找到罢了)。

实验原理: 配置kickstat文件,使用网络安装方法,只是配置的时候更加复杂,然后将不同系统的系统安装文件分别共享。具体的原理如图:

 

多操作系统的网络安装 - 雨泽 - 雨泽

 

 

网络拓扑:

 

多操作系统的网络安装 - 雨泽 - 雨泽

 

 

服务器的地址为192.168.0.1

配置步骤:

    

?         需要的服务:DHCP服务,tftp服务,NFS服务.

?         安装软件包:

安装需要的软件包:

      nfs-utils-lib-*

nfs-utils- *

xinetd-*     tftp的依赖包

tftp-server-*

dhcp-*

dhcp-devel-*

system-config-kickstart-*

这些软件包都光盘上或者镜像上。

 

?         重启服务:安装好dhcp tftpnfs的软件包后,将其设置开机自启动,并重启这些服务。

 service dhcpd start

   chkconfig dhcpd on

#启动dhcpd服务并开机自动启动

    service nfs restart

chkconfig nfs on

#重启nfs服务并开机自动启动

   service xinetd start

   chkconfig xinetd on 

#启动xinetd服务并开机自动启动

 

?         配置DHCP服务

a)    复制/usr/shar/doc/dhcp-3.0.5/dhcp.conf.sample/etc/dhcpd.conf

b)    然后编辑/etc/dhcpd.conf 使其为以下格式

ddns-update-style none;

ignore client-updates;

 

subnet 192.168.0.0 netmask 255.255.255.0 {

    option routers 192.168.0.1;

        option subnet-mask 255.255.255.0;

option domain-name example.com;

option domain-name-servers 192.168.0.1;

    default-lease-time 21600;

    max-lease-time 43200;

    range  192.168.0.100 192.168.0.200; 网络安装的地址池

    filename /kickstat/ks.cfg;

    next-server 192.168.0.1;

}

option space PXE;

class PXE {

    match if substring(option vendor-class-identifier, 0, 9) = PXEClient;

    option vendor-encapsulated-options 01:04:00:00:00:00:ff;

    option boot-size 0x1;

    filename pxelinux.0;

    option tftp-server-name 192.168.0.1;

    option vendor-class-identifier PXEClient;

    vendor-option-space PXE;

}

 

?      配置tftp服务

a)    编辑/etc/xinetd.d/tftp文件,将里面的disable字段值改为no

b)    在安装tftp后系统会自动生成一个/tftpboot的目录,用来存放的东西是最重要的。

c)    使用cp/usr/lib/syslinux/下的pxelinux.0复制到 /tftpboot

(这里有一点不明白之处,因为我服务器上安装的是5.4的系统,所以在/usr/lib/syslinux/存在的肯定是5.4系统pxelinux.0,但是为何不需要将不同操作系统的pxelinux.0全部使用特殊的方法(网上有资料)安装到这个目录下呢,看了部分资料,说是需要,但是通过实验,是不需要的)

我的观点是:因为pxelinux.0pxe方式的boot loader,这里只要和dhcpd.conf中定义的pxelinux.0是一致的亦可以了,只是网络安装罢了。

d)    然后将每个光盘中的/images/pxeboot/vmlinuzinitrd.img复制到/tftpboot目录下,因为系统比较多,我为每个系统建立了一个文件夹,具体的应该是下面这种情况的:

   cp /mnt/cdrom/images/pxeboot/initrd.img  /tftpboot/rh4.6/

   cp /mnt/cdrom/images/pxeboot/initrd.img  /tftpboot/rh5.4/

   cp /mnt/cdrom/images/pxeboot/initrd.img  /tftpboot/rh5.4_64/

   cp /mnt/cdrom/images/pxeboot/initrd.img  /tftpboot/rh6.0/

  同样的方法复制每个系统光盘中的vmlinuz,/tftpboot/下的对应目录下

e)    复制boot.msg文件:我的服务器的系统为RHEL5.4,所以我将5.4光盘下的/isolinux下的文件除了vmlinuzinitrd.img,全部复制到/tftpboot下,目的很简单,只是想要它的引导文件罢了。

f)    tftpboot中新建一个pxelinux.cfg目录

mkdir /tftpboot/pxelinux.cfg

在此目录下建立一个名为default的文件。

然后就是编辑这个default文件了,如果不知道怎么写,可以从/isolinux/isolinux.cfg中复制过去,然后再修改便是。

大致是这个,因为在配置都在台式机子上,现在只是凭记忆写文档,难免会有疏忽,见谅!

Default linux

prompt 1

timeout 600

display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux

  kernel vmlinuz

  append initrd=initrd.img

label text

  kernel vmlinuz

  append initrd=initrd.img text

label ks

  kernel vmlinuz

  append ks initrd=initrd.img

label local

  localboot 1

label memtest86

  kernel memtest

  append -   中间这些可以保留,不影响!可以将此段和启动界面想比较,会得出思路的,呵呵!

label 4.6

  kernel  rh4.6/vmlinuz

 append ksdevice=eth0 load_ramdisk=1 initrd=rh4.6/initrd.img ks=nfs:192.168.0.1:/kickstat/ks4.cfg noipv6

这里做个解释吧,

1.   label 4.6 是进入引导界面是需要输入的字符,随意设定

2.   vmlinuzinitrd.img一定要和实际的目录一致

3.   ksdevice=eth0 指定使用的网卡

4.   ks=nfs:192.168.0.1:/kickstat/ks4.cfg 一定要注意和实际的kickstat文件一致,不能有半点差错,就连标点也不可以。

       同理写出其他系统的

Label 5.4

  kernel  rh5.4/vmlinuz

 append ksdevice=eth0 load_ramdisk=1 initrd=rh5.4/initrd.img ks=nfs:192.168.0.1:/kickstat/ks.cfg noipv6

label 5.4_64

  kernel  rh5.4_64/vmlinuz

 append ksdevice=eth0 load_ramdisk=1 initrd=rh5.4_64/initrd.img ks=nfs:192.168.0.1:/kickstat/ks64.cfg noipv6

label 6.0

  kernel  rh6.0/vmlinuz

 append ksdevice=eth0 load_ramdisk=1 initrd=rh6.0/initrd.img ks=nfs:192.168.0.1:/kickstat/ks6.cfg noipv6

注意:一定要准确核查这个文件的内容,不能有错。

其实启动顺序为:

 

多操作系统的网络安装 - 雨泽 - 雨泽

 

?      配置nfs服务

编辑/etc/exports 添加需要共享的文件

/kickstat       192.168.0.0/24(ro,sync)

/tftpboot       192.168.0.0/24(ro,sync)

/var/ftp/rh4.6    192.168.0.0/24(ro,sync)

/var/ftp/rh5.4    192.168.0.0/24(ro,sync)

/var/ftp/rh5.4_64  192.168.0.0/24(ro,sync)

/var/ftp/rh6.0    192.168.0.0/24(ro,sync)

重启nfs服务,并用exportfs查看输出

?      复制系统文件

将给每个系统的系统文件,复制到/var/ftp下的不同目录中。

如果没有安装ftp包的话,别忘记建立/var/ftp目录哦!

?      配置kickstat文件,首先安装kickstat的包

a)    从光盘中的Server中安装system-config-kickstat.rpm,会有依赖关系,根据提示直接在安装pykickstat就好了,最后使用图形界面自动生成一个ks.cfg的文件。

运行system-config-kickstat,出现如图所示,

     

多操作系统的网络安装 - 雨泽 - 雨泽

 

一步一步配置就可以。

注意:在配置kickstat的时候,nfs服务一定要是192.168.0.1

 Nfs服务目录,一定要是和存在系统文件的目录一致,我的目录为/var/ftp/rh5.4(参考nfs共享的目录)

b)       将每个系统中生成的ks.cfg(可以改名字的)复制到/kickstat。但是别忘记了,要先建立/kickstat目录啊

Ls  /kickstat的目录如下

   Ks.cfg  ks4.cfg  ks64.cfg  ks6.cfg 要和default的文件中一致。

?         重启各服务

?         测试:

使用其他机器网路安装测试下。

多操作系统的网络安装 - 雨泽 - 雨泽

 

出现这个界面时,请等待,反应可能有点慢。然后就是进入boot.msg界面,有个有趣的东西,就是可以编辑boot.msg界面,出现你想要的引导界面哦!

     注意:在进入引导界面后,输入你想安装的系统的label 即可,例如输入4.6则安装的是RHEL4.6的系统!

实验总结:

?         这次安装,出现不少问题,有很多就是细节问题,比如:编辑default时,总是会因为标点出错,很无语的!而且这次的安装,思路和我第一次想的有差别。

?         自己要有明确的思路。

文档说明因为仅凭记忆所写,只做参考!

 

阅读(1775) | 评论(0) | 转发(1) |
0

上一篇:Debugging System Crash

下一篇:Ubuntu下VNC配置

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