Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5174057
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类: LINUX

2008-08-22 15:01:59

标题PXE + NFS +kickstart实现无人守安装RedHat Enterprise Linux
目的:PXE + NFS +kickstart
实现无人守安装RedHat Enterprise Linux
作者信息:Alin Fang
MSN:
G Talk:
原理:首先我
搞清楚linux的安装大概是什么西在干什么事情:
安装linux的系
动过程:
BIOS=>
=>用于安装境的linux内核(vmlinuz)驱动(initrd.img)=>安装程序(anaonda)=>找安装介=>由安装程序从安装介质获取所需安装文件=>完成安装配置(普通配置,IPTABLES, SELinux)[=>重启(如果你disabledSELinux,默是开启的)]=>入系

由于上面只是要描述了下安装的表原理,在我来下几个段的实现

Red Hat Enterprise Linux5
至少支持
几种引
CDROM
HardDisk
(具体做法
参考方云麟的《用硬安装RedHat Enterprise Linux》)
U
(具体做法参考方云麟的《用U安装RedHat Enterprise Linux》)
NIC(
俗称网卡-__-||)

里重点是以网卡作安装linux的方法。
网卡要能作
安引,必有一个叫做PrebootExecution Environment动执境)
的模
PXE(参考:http://en.wikipedia.org/wiki/Preboot_Execution_Environment)
PXE
的功能有:
IP, TCP, UDP,TFTP协议连接到程服器上。
PXE固件上好的API


在我的关是,如何PXE块连接到我的安装服器上?
接网,首先必有一个IP。但是网卡的PXE并没有自定IP的功能,它只能DHCP协议获IP。于是要求我的安装境里面有一台能提供DHCP的服器。

PXE
安装到服器上后,我需要把安装用的程序(vmlinuz,initrd.img, 等等)传输到待安装机器上来,我选择TFTP协议

以上条件后,我可以在待安装机器启安装程序了。


我把到此
止定成安装的第一段。
第一
段和下面开始安装(我姑且把下面段定成安装的第二段),是相独立的。
住,是相独立的!

然后开始安装程序 anaonda安装linux的几个步

安装程序首先必确定你通什么安装介来安装linux

如果是CDROM搜索CDROM上的安装包以及其他安装所需的文件。

如果是HardDisk询问你你的安装像或者安装在哪个硬分区的哪个文件目下。

如果是通安装(NFS,FTP, HTTP),会在候初始化网,并定位安装源位置。

里有个很重要的事情要搞清楚。有人会之前网卡PXE经获取了一次IP地址,什么置一次?

里我再明以下,

1)PXE取的是安装用的内核以及安装程序等,安装程序要取的是安装系所需的二制包以及配置文件!

2)PXE和安装程序是相独立的,PXE的网配置并不能传递给安装程序!

个就是什么要再次配置一下网的原因。

回到原先
话题

们说了,文章重点是述如何PXE+ kickstart + NFS安装linux
至此,当
安装程序指定了安装源的位置之后,安装程序就可以像常CDROM安装linux样进行安装了。

(PXE
的存在其
是一次意外,参考:http://en.wikipedia.org/wiki/Preboot_Execution_Environment)

什么是kickstart
Kickstart
是一个主要用在RedHat系列以及基于RedHat
行版本的自安装工具集())
们这次要用kickstart行无人守全自安装,主要要用到的kickstart工具有
1)/root/anaconda-ks.cfg
个文件是安装完linux,安装程序留下来的基于本机配置的kickstart安装脚本
2)system-config-kickstart
个是kickstart的配置工具(如果没有,自行安装-__-|||
如何使用kickstart配置文件?
在我
们这里,kickstart配置文件将安装用内核vmlinuz用。

什么是NFS
NFS
全称NetworkFileSystem()),NFS
协议很方便的实现UNIX/LINUXOS的文件共享。

什么是DHCP
DHCP
的全程是DynamicHost Configuration Protocol,即
动态主机信息分配协议。能分配网卡很多信息,比如,IP,等等……

OK
,知道了
些之后,我就开始实际操作了。
流程

 

 

拓扑

实验环境:网段:192.168.0.0/24
IP:192.168.0.1
IP:192.168.0.2 –192.168.0.254
操作系
Red HatEnterprise Linux 5.2 Server i386


配置NFS
[root@server1 tftpboot]#mkdir -p /var/sysinstall
[root@server1 tftpboot]#vim /etc/exports

/var/sysinstall192.168.0.0/24(ro,async)

[root@server1 tftpboot]#service  nfs restart
Shutting down NFS mountd:                                 [FAILED]
Shutting down NFS daemon:                                 [FAILED]
Shutting down NFSservices:                                [  OK  ]
Starting NFS services:                                    [  OK  ]
Starting NFS quotas:                                      [  OK  ]
Starting NFS daemon:                                      [  OK  ]
Starting NFS mountd:                                      [  OK  ]
[root@server1 tftpboot]#cp -rf /misc/cd/* /var/sysinstall/
里我尝试使用ln,但是之后在客机安装的候找不到安装
[root@server1 tftpboot]#cd /var/sysinstall/
[root@server1 sysinstall]#


安装TFTP:略
[root@server1Server]# rpm -q tftp-server
tftp-server-0.42-3.1
[root@server1Server]#


[root@server1Server]# vim /etc/xinetd.d/tftp

servicetftp
{
        socket_type            = dgram
        protocol               = udp
        wait                   = yes
        user                   = root
        server                 = /usr/sbin/in.tftpd
        server_args            = -s /tftpboot
        disable                = no
        per_source             = 11
        cps                    = 100 2
        flags                  = IPv4
}


[root@server1Server]# service xinetd restart
Stoppingxinetd:                                           [  OK  ]
Startingxinetd:                                           [  OK  ]
[root@server1Server]# netstat -nupal |grep 69
udp       0      0 0.0.0.0:69                  0.0.0.0:*                              5433/xinetd         
udp       0      0 :::32769                    :::*                                   5159/avahi-daemon:  
[root@server1Server]#

OK
TFTP
开启。

配置pxe
[root@server1Server]# updatedb
[root@server1Server]# locate pxelinux.0
/tftpboot/linux-install/pxelinux.0
/usr/lib/syslinux/pxelinux.0
[root@server1Server]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
[root@server1Server]#

[root@server1cd]# pwd
/misc/cd
[root@server1cd]# /bin/cp isolinux/* /tftpboot/ -rf
[root@server1cd]# cd /tftpboot/
[root@server1tftpboot]# ls
boot.cat    initrd.img    linux-install  param.msg   splash.lss
boot.msg    isolinux.bin  memtest        pxelinux.0  TRANS.TBL
general.msg isolinux.cfg  options.msg    rescue.msg  vmlinuz
[root@server1tftpboot]# mkdir pxelinux.cfg
[root@server1tftpboot]# cp isolinux.cfg pxelinux.cfg/default
[root@server1tftpboot]# vim pxelinux.cfg/default

defaultlinux
prompt1
timeout10
displayboot.msg
F1boot.msg
F2options.msg
F3general.msg
F4param.msg
F5rescue.msg
labellinux
  kernelvmlinuz
  appendinitrd=initrd.img ks=nfs:192.168.0.1:/var/sysinstall/ks.cfg
labeltext
  kernelvmlinuz
  appendinitrd=initrd.img text
labelks
  kernelvmlinuz
  appendks initrd=initrd.img
labellocal
  localboot1
labelmemtest86
  kernelmemtest
  append-

 

 

安装kickstart配置工具:[root@server1 ~]# cd/misc/cd
[root@server1 cd]# cdServer/
[root@server1 Server]# rpm-ivh system-config-kickstart-2.6.19.6-1.el5.noarch.rpm
warning:system-config-kickstart-2.6.19.6-1.el5.noarch.rpm: Header V3 DSAsignature: NOKEY, key ID 37017186
error: Faileddependencies:
        pykickstart is needed bysystem-config-kickstart-2.6.19.6-1.el5.noarch
[root@server1 Server]# rpm-ivh pykickstart-0.43.1-1.el5.noarch.rpm
warning:pykickstart-0.43.1-1.el5.noarch.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
Preparing...               ########################################### [100%]
   1:pykickstart           ########################################### [100%]
[root@server1 Server]# rpm-ivh system-config-kickstart-2.6.19.6-1.el5.noarch.rpm
warning:system-config-kickstart-2.6.19.6-1.el5.noarch.rpm: Header V3 DSAsignature: NOKEY, key ID 37017186
Preparing...               ########################################### [100%]
  1:system-config-kickstart###########################################[100%]
[root@server1 Server]#system-config-kickstart
个命令是在X下运行的。
system-config-kickstart打开/root/anaconda-ks.cfg,根据需求修改配置。并且另存
/var/sysinstall/ks.cfg
#platform=x86, AMD64, orIntel EM64T
# System authorizationinformation
auth  --useshadow --enablemd5
# System bootloaderconfiguration
bootloader --append="rhgbquiet" --location=mbr --driveorder=sda
# Clear the Master BootRecord
zerombr
# Partition clearinginformation
clearpart--all --initlabel
行一定不能注,否你确是否格式化硬
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent onfirst boot
firstboot --disable
key xxxx-xxxx-xxxx-xxxx
# System keyboard
keyboard us
# System language
lang en_US
# Installation logginglevel
logging --level=info
# Use NFS installationmedia
nfs --server=192.168.0.1--dir=/var/ftp/public
# Network information
network --bootproto=dhcp--device=eth0 --onboot=on
# Reboot afterinstallation
reboot
#Root password
rootpw --iscrypted$1$K3L4H4zb$5DPvt/Va6WHXTYHnUKrzh.

# SELinux configuration
selinux --disabled
# System timezone
timezone --isUtcAsia/Shanghai
# Install OS instead ofupgrade
install
# X Window Systemconfiguration information
xconfig --defaultdesktop=GNOME --depth=24 --resolution=1024x768--startxonboot
# Disk partitioninginformation
part /boot--bytes-per-inode=4096 --fstype="ext3" --size=256
part swap--bytes-per-inode=4096 --fstype="swap" --size=512
part /--bytes-per-inode=4096 --fstype="ext3" --grow s--size=1

%packages
@office
@editors
@text-internet
@gnome-desktop
@dialup
@core
@base
@games
@java
@legacy-software-support
@base-x
@graphics
@printing
@sound-and-video
@admin-tools
@graphical-internet
emacs
kexec-tools
device-mapper-multipath
xorg-x11-utils
xorg-x11-server-Xnest
libsane-hpaio
-sysreport
个是我的ks.cfg

安装并配置DHCP
[root@server1Server]# rpm -ivh dhcp-3.0.5-13.el5.i386.rpm
warning:dhcp-3.0.5-13.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID37017186
Preparing...               ########################################### [100%]
   1:dhcp                  ########################################### [100%]
[root@server1Server]# cat /etc/dhcpd.conf
#
#DHCP Server Configuration file.
#  see /usr/share/doc/dhcp*/dhcpd.conf.sample  
#[root@server1Server]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample/etc/dhcp.conf
cpverwrite `/etc/dhcpd.conf'? Y
[root@server1Server]# vim /etc/dhcpd.conf

ddns-update-styleinterim;
ignoreclient-updates;

subnet192.168.0.0 netmask 255.255.255.0 {

#--- default gateway
        optionrouters                  192.168.0.1;
        optionsubnet-mask              255.255.255.0;
        filename"/pxelinux.0";
        next-server192.168.0.1;

        optiontime-offset              -18000; # Eastern Standard Time

        rangedynamic-bootp 192.168.0.128 192.168.0.254;
        default-lease-time21600;
        max-lease-time43200;

}



[root@server1 Server]#service dhcpd start
Starting dhcpd:                                           [  OK  ]
[root@server1 Server]#netstat -nupal | grep dhcpd
udp        0      00.0.0.0:67                  0.0.0.0:*                              5525/dhcpd         
[root@server1 Server]#
果:这样一个基于PXE+ NFS + kickstart的无人守安装RedHat Enterprise Linux就配置完成了。

 

阅读(1032) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~