转载地址:http://wowking.blog.51cto.com/1638252/960338
相关不错的文章:http://wgkgood.blog.51cto.com/1192594/530304
http://blog.chinaunix.net/uid-20330385-id-1965396.html
原理和概念:
1.1 什么是PXE
严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
1.2 什么是KickStart
KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
1.3 PXE + KickStart安装的条件
执行 PXE + KickStart安装需要的设备为:
• DHCP 服务器;
• TFTP 服务器;
• KickStart所生成的ks.cfg配置文件
• 一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器。
• 带有一个 PXE 支持网卡的将安装的主机;
安装步骤
环境:
OS:CentOS 5.5 x86_64
ip adress:192.168.20.20
两台VM:一台做Server,一台来装系统
(如果你的系统是CentOS 5.5 32位或者其它版本的Linux,请自行适合的修改)
1.mount CentOS DVD
mount /dev/cdrom /mnt [挂载光驱]
2.install tftp-server
yum -y install tftp-server.x86_64
vim /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 #[将'yes'改为'no']
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
service xinetd start [启动tftp服务]
3.configuration PXE
mkdir /tftpboot [如果没有这个文件夹就创建]
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
cp /mnt/images/pxeboot/initrd.img /tftpboot/
cp /mnt/images/pxeboot/vmlinuz /tftpboot/
cp /mnt/isolinux/*.msg /tftpboot/ [复制linux开机引导文件]
mkdir /tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
4.install DHCP
yum -y install dhcp.x86_64
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
vim /etc/dhcpd.conf
- ignore client-updates;
- next-server 192.168.20.20; #[添加,next-server 是tftp server]
- filename "/pxelinux.0"; #[添加]
- subnet 192.168.20.0 netmask 255.255.255.0 { #[网段申明]
- # --- default gateway
- option routers 192.168.20.254; #[网关]
- 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; #[DNS]
- option time-offset -18000; # Eastern Standard Time
- # option ntp-servers 192.168.1.1;
- # option netbios-name-servers 192.168.1.1;
- # --- Selects point-to-point node (default is hybrid). Don't change this unless
- # -- you understand Netbios very well
- # option netbios-node-type 2;
- range dynamic-bootp 192.168.20.20 192.168.20.254; #[ip pools]
- default-lease-time 21600;
- max-lease-time 43200;
- # we want the nameserver to appear at a fixed address
- # host ns {
- # next-server marvin.redhat.com;
- # hardware ethernet 12:34:56:78:AB:CD;
- # fixed-address 207.175.42.254;
- # } #[由于本次实验中DHCP Server只用于安装无人值守安装,这些都用不着,注释最后几行。实际环境中,视情况而定]
- }
service dhcpd start
5.install NFS
yum -y install nfs-* [CentOS默认是安装的]
mkdir /tftpboot/ks [先在tftpboot目录下创建ks文件,一会存放ks.cfg时用]
vim /etc/exports
- /mnt *(ro) #[添加这两个共享文件夹,'*'任何人可以访问,'(ro)'即read only]
- /tftpboot/ks/ *(ro)
service portmap start [首先启动这个服务,这是nfs的依赖服务]
service nfs start
6.install KickStart
yum -y install system-config-kickstart.noarch [install kickstart]
yum -y groupinstall "X Window System" [如果GNOME环境,请执行本行及下行命令。如果你不希望安装GNOME环境,KickStart也可以不安装,直接复制我这的ks.cfg代码合适的修改便可。当然其它版本的linux的ks.cfg代码不一样]
yum -y groupinstall "GNOME Desktop Environment"
startx [进入desktop,kickstart必须在desktop环境下配置]
system-config-kickstart [start kickstart]
定制KickStart [下图只是例子,实际根据各自需求而定]
因为CentOS安装盘挂载在/mnt,所以这里的目录是/mnt
记得最少安装一个包,不然在安装系统的时候,会弹出一个对话框,让你手动选择需要安装的包
下面是利用KickStart生成的ks.cfg,也可以直接在这里适当修改参数
- lang en_US
- # Installation logging level
- logging --level=info
- # Use NFS installation media
- nfs --server=192.168.20.20 --dir=/mnt
- # Network information
- network --bootproto=dhcp --device=eth0 --onboot=on
- # Reboot after installation
- reboot
- #Root password
- rootpw --iscrypted $1$SjnCI7rG$4JhDvTrZ4Xo4fdpjOriBU/
- # SELinux configuration
- selinux --enforcing
- # Do not configure the X Window System
- skipx
- # System timezone
- timezone Asia/Shanghai
- # Install OS instead of upgrade
- install
- # Disk partitioning information
- part swap --bytes-per-inode=4096 --fstype="swap" --size=2048
- part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100
- part / --bytes-per-inode=4096 --fstype="ext3" --size=10240
- part /data --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
- %packages
- @editors
cp /root/ks.cfg /tftpboot/ks/
chmod 777 /tftpboot/pxelinux.cfg/default
vim /tftpboot/pxelinux.cfg/default
- default ks #[修改为'ks']
- prompt 1
- timeout 3
- display boot.msg
- F1 boot.msg
- F2 options.msg
- F3 general.msg
- F4 param.msg
- F5 rescue.msg
- label linux
- kernel vmlinuz
- append initrd=initrd.img
- label text
- kernel vmlinuz
- append initrd=initrd.img text
- label ks
- kernel vmlinuz
- append ks=nfs:192.168.20.20:/tftpboot/ks/ks.cfg initrd=initrd.img #[这里是ks的路径]
- label local
- localboot 1
- label memtest86
- kernel memtest
- append -
7.closed Firewall and SElinux
setup
8.验证奇迹的时刻来啦
开启需要安装的电脑,倒杯COFFEE,看它自动安装喽。。。。
默认情况下不需要任何设置,如果电脑自动不能找到PXE启动或叫Network boot from XX开机启动模式,就手动选择吧。
一般临时选择是按Esc或F12或F11再或者其它,因电脑品牌而异。。
如果在boot里将设置PXE设置成第一启动选项,记得安装完系统后,改回硬盘启动,否则电脑会一直装系统,,,
9.总结
VM安装需注意几点:
关闭网卡自带的DHCP;
网卡模式用桥接;
最后贴几张PC安装时的图吧