无人值守安装
Linux 5
操作系统
一、过程思路
:
1
、客户端网卡在主机启动初始化时通过网卡内置的
PXE
芯片启动
DHCP
进程向
server
获取
ip
地址,网卡获取到
ip
地址后,
server
会提供给
client
一个下载
bootloader
的指令,就是
dhcp
服务器中
dhcpd.conf
配置文件中
filename
这个选项。
2
、网卡
PXE
芯片中已经包含了
tftp client
程序,获取到
ip
地址后,网卡会启动
tftp
服务去向
tftp server
请求传输这个
bootloader
文件
PXElinux.0
。当
Bootloader
加载后我们可以看到主机屏幕上有信息显示,而这个画面就是我们在用光驱装
linux
的时候看到的第一个画面。画面提示选择图形界面安装还是
linux text
字符界面安装等信息。如果在
server
端的
tftpboot
目录下只有这个文件,那么客户机会一直停留在
boot
这个地方,因为没有
default
这个
bootloader
配置文件告诉机器下一步加载哪个系统内核,
default
配置文件的作用是告诉主机从哪里去加载操作系统内核
,这个时候如果我们按照正常光碟装机时会看到提示:输入回车或者
linux text
等信息。
Bootloader
会去调用
default
配置文件中的操作系统内核文件。
3
、
default
文件配置好之后,接着就是指定内核文件,这个在
default
文件最后。就是
vmlinuz
,
initrd.img
,
*.msg
这几个文件。
4
、到这一步加载成功后,系统就按照我们平常光碟装系统看到的过程一模一样了,选择语言,鼠标,键盘等,但因为有了
KS
这个自动安装脚步,这些都不要我们手工去指定,全部会自动完成。
5
、到这里为止,也许有人会问,那我们从哪里去加载安装的镜像。且慢,不是有个
ks
安装脚本吗,就是这个脚本里面我们可以
指定安装镜像在哪里
。
6
、现在就考虑系统镜像的传输,这里我们选用
linux
特有的
NFS
网络文件系统进行镜像的传输。当然也可以用
HTTP
,
FTP
等方式。但为什么我们不直接使用
tftp
呢,因为这个协议在传输大文件的时候效率非常低。
二.具体操作过程
1.配Server IP为:192.168.1.100 ,安装镜像挂载到/mnt下。(/mnt 为我创建的本地yum源,参考http://crazyming.blog.51cto.com/1048571/313098)
2. 安装tftp 服务 、dhcp服务和nfs服务(一般默认已安装).
安装前先查看这些服务是否已安装
# rpm -qa |grep tftp
# rpm -qa |grep dhcp
# rpm -qa |grep nfs
# rpm -q portmap
未安装的进行安装
yum install dhcp-*
yum install tftp-*
yum install nfs-utils portmap
3.配置启动DHCP服务
#cp /usr/share/doc/dhcp-
3.0.5
/dhcpd.conf.sample /etc/dhcpd.conf
#vi /etc/dhcpd.conf 最后一行添加filename "pxelinux.0";
next-server 192.168.1.100;
配置举例:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
filename "pxelinux.0";
next-server 192.168.1.10;
}
#service dhcpd restart //启动服务
4.复制内核相关文件到
/tftpboot下
#cd /tftpboot
#cp /mnt/cdrom/isolinux/* ./
#mkdir pxelinux.cfg
#mv isolinux.cfg pxelinux.cfg/default
#cp /usr/lib/syslinux/pxelinux.0 ./
5.
修改
tftp
参数并启动
tftp服务
# vi /etc/xinetd.d/tftp
……………………………………………………………………………………
service tftp
{
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
}
…………………………………………………………………………………………
|
/
tftpboot
这个参数主要是指定
tftp client
客户端从服务器的哪个目录去加载
bootloader
的
pxelinux.0
文件。
#service xinetd restart //
启动服务
6.
修改/tftpboot/pxelinux.cfg/default文件
#vi /tftpboot/pxelinux.cfg/default
修改第3行,第12行.
1 default linux
2 prompt 1
3 timeout
10
时间
4 display boot.msg
5 F 1 boot.msg
6 F 2 options.msg
7 F 3 general.msg
8 F 4 param.msg
9 F 5 rescue.msg
10 label linux
11 kernel vmlinuz
12 append
ks=nfs:192.168.1.100:/pub/ks.cfg
initrd=initrd.img
13 label text
……
7.
安装kickstart配置ks.cfg
#cd /mnt/cdrom/CentOS
#yum install kickstart
#system-config-kickstart (
在图形界面终端打此命令)
根据需要配置ks.cfg.
在/目录下创建pub目录,将ks.cfg移动到此目录下。
#
chmod 757 /pub/ks.cfg
修改ks.cfg权限
手动修改ks.cfg文件,最终配置示例如下:
#platform=x86, AMD64,
或– Intel EM64
# System authorization information
auth --useshadow --enablemd5
# System bootloader configuration
bootloader --location=mbr
key --skip //
跳过安装序列号,需要手动修改添加
# Partition clearing information
zerombr
clearpart --all --initlabel //
初始化所有分区(裸机安装最好添加此行,不然不会自动跳过)
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use NFS installation media
nfs --server=192.168.1.100 --dir=/media
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Root password
rootpw --iscrypted $1$CbqAiBPx$/TwPJepXJ0sKsiU4/Urd4/
# SELinux configuration
selinux --disabled
# System timezone
timezone Asia/Shanghai
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig --defaultdesktop=GNOME --depth=8 --resolution=640x480
# Disk partitioning information
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100
part swap --bytes-per-inode=4096 --fstype="swap" --size=1024
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
%packages --resolvedeps
@ base-x //
最小化安装 (如果用kickstart不能选择安装包时需要手动添加)
8.
配置nfs并启动服务
#vi /etc/exports //
添加两行记录
/mnt/cdrom *(ro)
/pub *(ro)
#service nfs restart
9.
为保证实验一次成功,将所有服务都重新启动一下
#service dhcpd restart
#service xinetd restart
#service nfs restart
10.
新建一虚拟机开机进行测试.
实验成功标志
:客户端只能有个开机动作