分类: 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 和tftp,nfs的软件包后,将其设置开机自启动,并重启这些服务。
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.0是pxe方式的boot loader,这里只要和dhcpd.conf中定义的pxelinux.0是一致的亦可以了,只是网络安装罢了。
d) 然后将每个光盘中的/images/pxeboot/vmlinuz和initrd.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下的文件除了vmlinuz和initrd.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. vmlinuz和initrd.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时,总是会因为标点出错,很无语的!而且这次的安装,思路和我第一次想的有差别。
? 自己要有明确的思路。
文档说明:因为仅凭记忆所写,只做参考!