• 原理

支持网络启动的主板,通过装有tftp服务的DHCP服务器获得基础安装文件,进而继续安装系统,也可通过KickStart进行全自动安装

  • 环境

linux系统,以ubuntu 12.04为例,实体机虚拟机皆可,系统安装不再赘述
一台路由器或者交换机,建议暂时关闭DHCP服务
虚拟机,以安装ubuntu为例

  • 开始

Pre.配置pxe安装所需要的服务
dhcp服务,tftp服务,iso镜像(可选),web服务(可选),KickStart(可选)

1.dhcp服务
安装DHCP服务
# apt-get install isc-dhcp-server

DHCP配置文件
# vim /etc/dhcp/dhcpd.conf

ddns-update-style none;

option domain-name "example.org";
option domain-name-servers ns.example.org;
default-lease-time 600;
max-lease-time 7200;

log-facility local7;
allow booting;
allow bootp;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.160 192.168.1.170;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
filename "pxelinux.0";
next-server 192.168.1.119;

tips:标红部分可根据实际环境进行修改

启动DHCP
# service isc-dhcp-server
检查DHCP 67端口是否开启:
# netstat -anlp | grep 67

2.tftp服务
安装tftp服务
# apt-get install tftpd-hpa

tftp配置文件
# vim /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

修改tftpboot权限
# chmod 777 /var/lib/tftpboot
启动tftp
#service tftpd-hpa restart

A.网络质量优秀,则可选择互联网安装(推荐,获取最新安装包)
下载netboot文件
wget http://cn.archive.ubuntu.com/ubuntu/dists/precise/main/installer-i386/current/images/netboot/netboot.tar.gz -O /var/lib/tftpboot/netboot.tar.gz
解压netboot.tar.gz到tftpboot目录(标红部分为不同版本和不同系统目录)
tar -xzvf /var/lib/tftpboot/netboot.tar.gz -C /var/lib/tftpboot/

配置完毕,client开机,选择从网络启动,开始安装吧

B.网络质量恶劣,且有iso文件
配置netboot需server版或alternate版iso,也可下载(下载参见A)

1.安装web服务,这里以apache为例
安装apache
# apt-get install apache2
启动httpd
# service apache2 start

2.在apache服务根目录下创建ubuntu文件夹,并将ubuntu镜像文件挂载到该目录
# mkdir -p /var/www/ubuntu
#mkdir -p /mnt/ubuntu/
# mount -o loop xxx.iso /mnt/ubuntu
#cp –r /mnt/Ubuntu/* /var/www/ubuntu
在浏览器中访问http://服务器ip/ubuntu
可以列出ubuntu目录,配置正常

将ubuntu/install目录下的netboot中的所有内容拷贝到tftpboot(下载的netboot,可跳过拷贝步骤)
# cp -r /var/www/html/ubuntu/install/netboot/* /var/lib/tftpboot/

配置完毕,client开机,从网络启动,在选择镜像网站时选择手动输入即可

C.KickStart自动化安装(适合批量安装)

#apt-get install system-config-kickstart
运行该工具
#system-config-kickstart
配置是在图形化界面下配置,最后生成ks.cfg

基本的配置:

第一步

安装模式:这里选择http

第二步

引导启动选项:默认即可

第三步

分区情况:您可以根据实际情况进行分区

第四步

网络配置:增加一网卡设置为dhcp获取ip

第五步
认证模式可以按默认即可
用户设置:

第六步
防火墙和显示器的配置都可以根据需要设置,或按默认即可
软件包的选择:这里应该是ubuntu中kickstart的bug吧,没有显示可选的软件包,一会生成ks.cfg文件我们根据需要添加

第七步
安装前后预处理脚本,可以根据需要定制,这里简单举个例子:系统安装完之后把主机名改为 pxeclient

第八步
保存ks.cfg文件:

第九步
修改ks.cfg文件
在skipx后加入
%packages  #这是server version的没有桌面
#@ubuntu-desktop  #这是ubuntu桌面版的,如果要安装的话把#去掉

注意:alternate 既有桌面版也支持server版,所以叫做二选一
最后把ks.cfg文件移到/var/www/ubuntu目录下
#mv ks.cfg /var/www/ubuntu

最终配置如下:
#Generated by Kickstart Configurator
#platform=x86
#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone America/New_York
#Root password
rootpw --disabled
#Initial user
user alps --fullname "AABBCC" --password 1234567890
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use Web installation
url --url http://192.168.1.100/ubuntu
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext4 --size 400
part swap --recommended
part / --fstype ext4 --size 1 --grow
#System authorization infomation
auth  --useshadow  --enablemd5
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
Skipx
%packages
openssh-server
screen
curl
vim
%post
# add normal apt source list
(
cat <<'EOP'
deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted universe
deb http://us.archive.ubuntu.com/ubuntu/ precise-security main restricted universe
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe
EOP
) > /etc/apt/sources.list
#hostname
echo “venopxe” > /etc/hostname
hostname venopxe

tips:
#Initial user
user alps --fullname "AABBCC" --password 1234567890
密码低于10位存数字(或字母)将被视为弱口令密码安装时将自动弹出,不能做到自动化,所以可修改password为复杂密码即可
#Use Web installation
url --url http://192.168.1.100/ubuntu
这个是url是系统安装时自动选取的源,地址可根据配置情况进行修改
%packages
openssh-server
screen
curl
vim
package下是系统默认安装的程序,都可进行修改
%post
# add normal apt source list
(
cat <<'EOP'
deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted universe
deb http://us.archive.ubuntu.com/ubuntu/ precise-security main restricted universe
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe
EOP
) > /etc/apt/sources.list
#hostname
echo “venopxe” > /etc/hostname
hostname venopxe
post字段下则为系统自动执行的脚本,在安装完系统重启后生效,上面两条就是

  1. 修改apt-get 源 信息
  2. 修改系统名为venopxe(开机后还需要在/etc/hosts/下修改)才能做到完美修改系统名,不然sudo的时候会提示找不到 venopxe用户

生成的文件放入/var/www/ubuntu目录下
同时需要配置启动自动读取ks.cfg文件,进行自动安装
修改txt.cfg文件:
#vim /var/lib/tftboot/Ubuntu-installer/i386/boot-screens/txt.cfg
在label install 下append字段下修改:
append ks=http://192.168.1.100/ubuntu/ks.cfg preseed/url=http://192.168.1.100/ubuntu/preseed/ubuntu-server.seed vag=normal (标红色部分可以不要,其余字段不变)
同时还要修改/var/lib/tftboot/pxelinux.cfg/default
#vim default
添加
Kernel /var/www/ubuntu/install/vmlinuz
修改
timeout 1   #此选项是一秒后自动选择install选项安装,默认是0需要手动选择
安装过程中在DHCP获取网卡地址时获取不到,需要手动干预,选择不设置地址即可,其余均可实现自动安装。
我在网上查阅过,好像是从Ubuntu 12.X版本后,就会有此问题,不过不影响使用。

  • 总结:

进行PXE网络安装,dhcp服务,tftp服务,是必要的,iso镜像,web服务,kickstart是可选的
client开机,从网络启动,PXE从DHCP获得ip,从server下载基础文件,开始安装

组合方式
1.dhcp+tftp(互联网手动安装)A
2.dhcp+tftp+kickstart(互联网自动安装)A+C
3.dhcp+tftp+web+iso(局域网手动安装)A+B
4.dhcp+tftp+web+iso+kickstart(局域网自动安装)A+B+C

  • 可能出现的问题:

1. Packages文件损坏,到该目录下看看

问题

解决方法:

#cd /var/www/ubuntu/dists/precise/restricted/binary-amd64

# ls
Packages.gz  Release
#gunzip Packages.gz
# ls
Packages  Release
#cp /mnt/ubuntu/dists/precise/restricted/binary-amd64/Packages.gz ./

# ls
Packages.gz  Packages  Release

这篇文章格式是参照PXE网络安装Ubuntu
本文同时参考了以下文章:
PXEInstallServerUbuntu12.04lts的pxe安装及拾遗

分类: linux 标签: ubuntu

评论

暂无评论数据

暂无评论数据

目录