Kickstart+NFS+DHCP+PXE+TFTP全自動化安裝linux
首先不敢說是原創,是經過網絡搜索總結出的比較可靠穩定的設置方法及內容。
安裝過程中需要注意的事項,這在其他教程中涉及很少,給初學者造成一定困難。
本教程中的ks.cfg文件嚴格來說是修改系統中存在的anaconda.cfg文件。
本文中所用系統爲RHEL6.4,64位操作系統。
本文中所有操作均在虛擬機中實現,爲了達到更好的效果,虛擬機網絡採用內部網絡。主要是爲了避免系統直接給它windows系統服務給它自動分配地址,我們要用linux主機的dhcp服務分配地址。
請關閉防火牆。未關閉會連接超時的。
請關閉selinux。未關閉,會導致無法獲取pxelinux.0文件。
好直接上內容。
配置好本地源,掛載鏡像iso文件。
掛載iso文件到media目錄:
mount /dev/sr0 /media/
修改/etc/yum.repos.d/rhel-source.repo
[root@vmRHEL ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever -$basearch - Source
baseurl=file:///media/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-source-beta]
name=Red Hat Enterprise Linux $releaseverBeta - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
保存退出。
安裝dhcp和tftp服務
#yum install tftp* dhcp*
編輯tftp
vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server =/usr/sbin/in.tftpd
server_args = -unobody -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
修改:disable = no 修改爲yes
編輯dhcp服務的配置文件
vim /etc/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
ddns-update-style interim;
ignore client-updates;
next-server 192.168.0.20;
filename "pxelinux.0";
authoritative;
allow booting;
allow bootp;
subnet 192.168.0.0 netmask 255.255.255.0{
range dynamic-bootp 192.168.0.100192.168.0.200;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.10;
option domain-name "ssgm.net";
default-lease-time 21600;
max-lease-time 43200;
}
以上內容可以直接複製粘貼到配置文件中。
配置PXE
新建文件夾mkdir /rhelos
拷貝iso鏡像內部文件到rhelos文件內,cp –rf /media/* /rhelos/
編輯NFS配置文件:
vi /etc/exports 內容如下
/rhelos *(rw,sync)
啓動服務,service dhcpd start
Service nfs start
Service rpcbind start
如果這些服務不是自動啓動的,需要chkconfig配置下自動啓動。
mkdir /tftpboot tftp的根目錄
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
注意:如果找不到這個文件,需要yum install syslinux,然後再/usr/share/syslinux/ 中拷貝pxelinux.0文件。
cp /media/p_w_picpaths/pxeboot/{vmlinuz,initrd.img}/tftpboot
mkdir /tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfgpxelinux.cfg/default
vim /tftpboot/pxelinux.cfg/default (修改配置如下:)
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 ks=nfs:192.168.0.20:/rhelos/ks.cfginitrd=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 -
設置timeout 10 /*超時時間爲10S */
生成ks.cfg安裝配置文件(拷貝到提供安裝的目錄 /rhelos目錄)
設置權限 chmod o+wx /rhelos/ks.cfg
可以根據/root/目錄下的anaconda-ks.cfg文件修改需要的系統需求。
(注意、clearpart –all –initlabel #如果ks.cfg腳本中不添加該語句,將不能實現自動化安裝)
nfs –server=NFS服務器ip –dir=光盤的位置 或 系統安裝文件存放的位置
network –device eth0 –bootprotodhcp(使用DHCP來實現自動分配IP地址)
啓動客戶端,加電+插上網線,設置網卡啓動,等待安裝完畢即可。
重啓系統就可以了。
以下爲我的ks.cfg參考配置:
# Kickstart file automatically generated byanaconda.
#version=DEVEL
install
text
nfs --server=192.168.0.20 --dir=/rhelos
key --skip
lang zh_CN.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
rootpw --iscrypted$6$hBCzImAfUr/h6xaf$2nJtxJ/Bh1yAQUt2446ZmgseChRBBXAbBcThnPR9xWC7NbfsEWPb8IF1Vj9KqZ1oKX02ClusTb0BOFz3IJuI//
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda--append="rhgb quiet"
# The following is the partitioninformation you requested
# Note that any partitions you deleted arenot expressed
# here so unless you clear all partitionsfirst, this is
# not guaranteed to work
#clearpart --none
clearpart --all --initlabel
part /boot --fstype ext4 --size=100
part swap --size=2000
part / --fstype ext4 --size=1 --grow
#part /boot --fstype=ext4 --size=200
#part / --fstype=ext4 --grow --size=200
%packages
@base
@chinese-support
@console-internet
@core
@debugging
@development
@dial-up
@mysql-client
@mysql
@system-management-snmp
@server-policy
python-dmidecode
sgpio
device-mapper-persistent-data
ftp
lftp
glibc-utils
systemtap-client
gdb-gdbserver
libstdc++-docs
gcc-gnat
gcc-objc
gcc-objc++
rp-pppoe
perl-DBD-MySQL
%end
以上配置文件爲最小化安裝並自定義安裝包的cfg文件。注意rootpw設置的root密碼,必須修改成你們自己的密碼,用我的,我可不給你們說密碼。
network --device eth0 --bootproto dhcp 這一項必須要設置的,否則,進入系統後,無法獲取ip,就找不到ks.cfg文件了。整個啓動過程中,需要獲得兩次ip纔可以的。這步很關鍵。
最後,重啓服務:
service dhcpd restart ;
service nfs restart ;
service xinetd restart;
service rpcbind restart
請注意標紅的設置內容。