网络安装Linux
一、通过网络进行安装Linux可快速大量部署Linux的环境,搭建Linux 网络安装服务器需注意以下几点:
1、主机网卡需支持PXE Client , 也就是俗话说的支持 LAN Boot
2、需架设DHCP服务器以分配给PXE Client IP address
3、需架设TFTP服务器提高PXE Client开机所需的kernel p_w_picpath 及相关的配置文件
4、支持Kickstart 安装,为了让服务器支持Kickstart 安装,则得架设Kickstart installation Server 及编写Kickstart 文件
二、通过网络进行安装Linux的基本原理:
1、 网卡得先和DHCP Server 沟通,然后DHCP Server告诉PXE Client 到哪里(TFTP Server 的
位置)去下载 pxelinux.0 , pxelinux.0是Linux的boot loader , 就是开机程式
2、 接着利用 TFTP 取得pxelinux.0 文件及Kickstart 自动安裝配置文件所在位置,把
pxelinux.0 載入内存,此時巳如同將Linux kernel 内存中。
3、 接着kernel 根据DHCP Sserver 所告知的Kickstart 位置,取得Kicstart 的配置文件, 然
后根据Kickstart 文件的内容来自动安装Linux
三、详细安装步骤:
1、 安装DHCP Server
#
cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf
#cat /etc/dhcpd.conf
subnet 172.16.32.0 netmask 255.255.255.0
{
option routers 172.16.32.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 8.8.8.8;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 172.16.32.10 172.16.32.100;
default-lease-time 21600;
max-lease-time 43200;
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
只需在文件最後結尾的“
}”前加入兩行設定
next-server 172.16.32.1; #TFTP server
的
IP
地址
filename "pxelinux.0"; #
下载
linux boot loader pxelinux.0
}
#service dhcpd restart
2、TFTP Server 就略嫌麻烦些了,除了pxelinux.0 这个重要的boot loader 外,一般会
希望PXE开机后,应该出现选单,让使用者有所选择,例如从原有的硬盘开机,
或是利用Kickstart 配置文件重新安裝/部署这台服务器。
pxelinux.0 是由syslinux 套件所提供,首先检查是否巳安裝syslinux 套件及
pxelinux.0 的存放位置。
[root@station10 ~]# rpm -ql syslinux-3.11-4 |grep pxe
/usr/lib/syslinux/pxelinux.0
/usr/share/doc/syslinux-3.11/pxelinux.doc
接着安装 tftp-server 及tftp 套件及启用tftp server 注:实践证明只需安装tftp-server
[root@kickstart Server]# rpm -q tftp-server
package tftp is not installed
package tftp-server is not installed
[root@kickstart Server]# rpm -ivh tftp-server-0.49-2.i386.rpm
[root@kickstart Server]#service xinetd start
[root@kickstart Server]#chkconfig tftp on
复制pxelinux.0到/tftpboot
[ root@kickstart media]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
将Linux 安装光盘中的几个文件复制到/tftpboot
[root@kickstart media]# mount /dev/cdrom /media/
[root@kickstart media]# cp p_w_picpaths/pxeboot/initrd.img /tftpboot/
[root@kickstart media]# cp p_w_picpaths/pxeboot/vmlinuz /tftpboot/
[root@station10 ~]# ls /tftpboot/
initrd.img pxelinux.0 vmlinuz 这3个文件一定要存在
[root@kickstart media]# mkdir /tftpboot/pxelinux.cfg
建立 PXE 设定文件,PXE 设定预设是读取「/tftpboot/pxelinux.cfg/default」来觉得定PXE Menu 的選項,例如输入「0」是从硬盘启动;输入「1」则是重新安裝最
小的作业系統;输入「1」则是重新安裝workstation 用途。其實為什麼可以安裝
不同需求的作業系統,原理很簡單,在「/tftpboot/pxelinux.cfg/default」指定不
同的選項(Label)對應到不同的Kickstart 檔案。
下面便是一個實用的「/tftpboot/pxelinux.cfg/default」範例:
# cat /tftpboot/pxelinux.cfg/default
default 0 #预设选项是
0
prompt 1 #出现提示信息
timeout 3000 #单位是1/10 秒,若超过30sec 未有任何动作,则采取预设选项。
display
boot.msg #指定开机信息档为
/tftpboot/boot.msg
# cat
/tftpboot/pxelinux.cfg/default
label 0
localboot 0
label 1
kernel vmlinuz
append initrd=initrd.img noipv6 ks=ftp://172.16.32.1/pub/kscfg/rhel5baseraid.cfg
#172.16.32.1 我的Kickstart Server
label 2
kernel vmlinuz
append initrd=initrd.img noipv6 ks=ftp://172.16.32.1/pub/kscfg/workstation.cfg
PXE 訊息檔為/tftpboot/boot.msg,讀者可以在boot.msg 中建立PXE Menu 的說明,
讓使用者清楚知道每個選項所代表的意義。
# more /tftpboot/boot.msg
INSTALLATION MENU
Choose installation type:
0 Local Boot (default)
1 RHEL5.1 Base System
2 RHEL5.1 Workstation
此時,若是重開 PXE Client,則會看到下列畫面
若是此時選擇「1」,會發現畫面跟用光碟開機雷同但无法安装下去
原因是找不到Kickstart 檔案,最後只要再架設好Kickstart installation server 及編
寫好對應的Kickstart 檔案便可大功告成。
4 Kickstart installation Server 部份
首先將 RedHat 安裝光碟的內容複製至Server 上,並利用NFS、FTP 或HTTP
將其分享出來。
安装vsftp ,并启动vsftpd
#service vsftpd start(立即啟動FTP Server)
#chkconfig vsftpd on(開機後自動啟用FTP Server)
最後再根據需求,在/var/ftp/pub/kscfg目錄下編寫rhel5base.cfg 及
workstation.cfg,讓PXE Client 根據Kickstart 進行自動安裝。
附上简单分区方案的kickstart 配置文件:
###################### 开始 ##########################################
install
text
url --url ftp://192.168.0.12/pub/iso ##将 系统光盘挂载到 /var/ftp/pub/iso/
key --skip
lang en_US.UTF-8
keyboard us
rootpw 445566
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone --utc Asia/Shanghai
text
url --url ftp://192.168.0.12/pub/iso ##将 系统光盘挂载到 /var/ftp/pub/iso/
key --skip
lang en_US.UTF-8
keyboard us
rootpw 445566
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone --utc Asia/Shanghai
bootloader --location=partition --driveorder=sda --append="rhgb quiet"
clearpart --initlabel --all
part swap --size=1024
part /boot --fstype=ext3 --size=100
part / --fstype=ext3 --size=28000
clearpart --initlabel --all
part swap --size=1024
part /boot --fstype=ext3 --size=100
part / --fstype=ext3 --size=28000
%packages
@text-internet
@core
@base
@text-internet
@core
@base
###################### 完 以下是一个raid-1分区的配置文件################################
[root@kickstart Server] cat /var/ftp/pub/kscfg/rhel5baseraid.cfg
# Kickstart file automatically generated by anaconda.
install
text
ftp://172.16.32.1/pub/iso
##将 系统光盘挂载到
/var/ftp/pub/iso/
key --skip
lang en_US.UTF-8
keyboard us
rootpw 445566
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone --utc Asia/Shanghai
###################################################################
bootloader --location=partition --driveorder=sda,sdb --append="rhgb quiet"
clearpart --initlabel --all
part swap --size=2048 --ondisk=sdb
part swap --size=2048 --ondisk=sda
part raid.01 --size=101 --ondisk=sda
part raid.02 --size=101 --ondisk=sdb
part raid.04 --size=10000 --ondisk=sdb
part raid.03 --size=10000 --ondisk=sda
part raid.05 --size=1 --grow --ondisk=sdb
part raid.06 --size=1 --grow --ondisk=sda
raid / --fstype ext3 --device=md0 --level=RAID1 raid.03 raid.04
raid /boot --fstype ext3 --device=md1 --level=RAID1 raid.01 raid.02
raid /data --fstype ext3 --device=md2 --level=RAID0 raid.05 raid.06
##################################################################
%packages
@text-internet
@core
@base
----------完………………….
2010-10-19