通过网络安装 Linux 系统
项目内容:配置 PXE+DHCP+vsftp,实现客户端网络安装 linux 操作系统
阶段目的:目的是体验如何通过网络引导,安装 redhat 系统,解决了很多时候没有光驱,却需要装系统的需求。
项目环境:服务器 IP 为 172.17.10.100/16 RHEL6 系统
实验之前建议禁用 selinux,关闭防火墙,以免影响实验效果
1.服务器端配置
配置基于 FTP 的 yum 源
[root@zdjserver ~]# mount /dev/cdrom /mnt
[root@zdjserver ~]# yum install vsftpd
[root@zdjserver ~]# mkdir /var/ftp/rhel6
[root@zdjserver ~]# mount /dev/cdrom /var/ftp/rhel6
//实际环境可以将 rhel6 光盘的内容复制到/var/ftp/rhel6 中
[root@zdjserver ~]# service vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
[root@zdjserver ~]# lftp 172.17.10.100
lftp 172.17.10.100:~> ls rhel6
-r--r--r-- 3 0 0 8794 Sep 02 2010 EULA
-r--r--r-- 3 0 0 18092 Jun 30 2010 GPL
dr-xr-xr-x 3 0 0 2048 Sep 22 2010 HighAvailability
dr-xr-xr-x 3 0 0 2048 Sep 22 2010 LoadBalancer
dr-xr-xr-x 2 0 0 477184 Sep 22 2010 Packages
……………………………………...
lftp 172.17.10.100:/> quit
编辑 yum 源配置文件
[root@zdjserver ~]# vim /etc/yum.repos.d/redhat.repo
[root@zdjserver ~]# cat /etc/yum.repos.d/redhat.repo
[local]
name=zdj
baseurl=ftp://172.17.10.100/rhel6
enabled=1
gpgcheck=0
[root@zdjserver ~]# yum clean all ----刷新yum源
安装必要软件
[root@zdjserver ~]# yum install xinetd tftp-server dhcp -y
//xinetd 超级守护进程软件,由于 tftp-server 是非独立服务,所以必须要安装 xinetd
//tftp-server 给客户端分发启动文件
//dchp 给客户机分配 IP
配置 pxe 引导所需的文件和 tftp 服务
[root@zdjserver ~]# yum install syslinux -y
[root@zdjserver ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
--------复制 pxelinux.0 文件到 tftp 服务的根目录中
[root@zdjserver ~]# cd /var/ftp/rhel6/isolinux/
[root@zdjserver isolinux]# pwd
/var/ftp/rhel6/isolinux
[root@zdjserver isolinux]# ls
boot.cat grub.conf isolinux.bin splash.jpg vesamenu.c32
boot.msg initrd.img isolinux.cfg TRANS.TBL vmlinuz
[root@zdjserver isolinux]# cp vesamenu.c32 splash.jpg vmlinuz initrd.img /var/lib/tftpboot/
-----------复制引导所需的 4 个文件到 tftp 服务根目录
root@zdjserver isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
-----------创建保存 pxe 引导的配置文件的目录,注意名称一定要是 pxelinux.cfg
[root@zdjserver isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
-----------复制 pxe 引导的配置文件的模版
[root@zdjserver isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default
----------编辑引导配置文件
[root@zdjserver isolinux]# cat /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 -----》默认加载菜单模块
#prompt 1
timeout 600 -----》超时时间
display boot.msg -----》引导菜单前的启动消息,可以自定义文字或图案,如果没有这个文件可以删除这一行
menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.0!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
-------------上面是启动菜单背景图片,标题和颜色的定义
label linux
menu label ^Install rhel6 -----》显示的菜单名称,^表示颜色反色显示
menu default -----》默认启动此菜单
kernel vmlinuz -----》加载内核文件
append initrd=initrd.img
-------------加载内核虚拟磁盘映像文件,这两个文件刚刚已经复制到 tftp 根目录里面
label local -----》本地磁盘启动菜单,可以留着
menu label Boot from ^local drive
localboot 0xffff
配置 tftp 服务
[root@zdjserver isolinux]# chkconfig tftp on
[root@zdjserver isolinux]# service xinetd restart
Stopping xinetd: [FAILED]
Starting xinetd: [ OK ]
[root@zdjserver isolinux]# lsof -i:69 ----》检查 tftp 服务的 udp69 端口是否打开
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 5965 root 5u IPv4 28918 0t0 UDP *:tftp
[root@zdjserver isolinux]# vim /etc/xinetd.d/tftp
[root@zdjserver isolinux]# cat /etc/xinetd.d/tftp ----》查看 tftp 服务的配置文件
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
//tftp 服务给客户机分发的启动配置文件的根目录就是在/var/lib/tftpboot 下
per_source = 11
cps = 100 2
flags = IPv4
}
配置 dhcp
[root@zdjserver isolinux]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
[root@zdjserver isolinux]# vim /etc/dhcp/dhcpd.conf
[root@zdjserver isolinux]# cat /etc/dhcp/dhcpd.conf
subnet 172.17.0.0 netmask 255.255.0.0 {
range 172.17.10.1 172.17.10.123;
option domain-name-servers 172.17.10.11;
option domain-name "zdj.com";
option routers 172.17.10.11;
option broadcast-address 172.17.10.100;
default-lease-time 600;
max-lease-time 7200;
filename"pxelinux.0"; -----》指定 pxe 引导的引导文件名
next-server 172.17.10.100; -----》tftp 服务器的 IP 地址
}
[root@zdjserver isolinux]# service dhcpd restart
Shutting down dhcpd: [ OK ]
Starting dhcpd: [ OK ]
[root@zdjserver isolinux]# lsof -i:67
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhcpd 6376 root 7u IPv4 32560 0t0 UDP *:bootps
[root@zdjserver isolinux]# netstat -anplut|grep 67 -
udp 0 0 0.0.0.0:67 0.0.0.0:* 6376/dhcpd
至此服务器配置完毕, 接下来启动客户端设置为网络启动后进行测试
2.客户端设置:
把自己虚拟机的服务器和客户机网卡都设置为hostonly
URL 服务器路径 ftp : //172.17.10.100/rhel6