实验的目的通过网络安装系统。
NFS 服务器:mysqlndb02.lianhua.com (192.168.0.31)
安装目录: /isolinux
本机IP地址:192.168.0.31
一般情况下,我们都是利用软驱或光驱引导Linux后,再通过本地的光驱安装Linux,如果是碰到无光驱时呢?
什么是PXE
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为 client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜 单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为 client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜 单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
PXE协议的成功运行需要解决以下两个问题:
(1)、既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;
(1)、既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;
(2)、 通过什么协议下载Linux内核和根文件系统
对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地 址,不过由于这里是给PXE Client分配IP地址,所以在配置 DHCP Server时,需 要增加相应的PXE特有配置。
至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。
对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地 址,不过由于这里是给PXE Client分配IP地址,所以在配置 DHCP Server时,需 要增加相应的PXE特有配置。
至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。
一、安装过程:
配置PXE安装,需要如下步骤:
1. 配置DHCP服务器,用于给客户端提供IP地址和其他信息
2. 配置TFTP服务器,用于提供客户端PXE引导所必须的文件
3. 配置NFS服务器 ,用于存放安装源
4. 配置kickstart,用于无人职守的安装(可选)
5. 使用PXE功能引导客户端
第一步,配置DHCP服务器
贴出配置:
#定义所支持的DNS的动态更新类型(必选)
ddns-update-style interim;
#忽略客户端更新DNS记录
ignore client-updates;
ddns-update-style interim;
#忽略客户端更新DNS记录
ignore client-updates;
指定
tftp-server
的
IP
地址是多少
next-server 192.168.0.31;
next-server 192.168.0.31;
指定
pxelinux
启动文件的位置
filename "pxelinux.0";
filename "pxelinux.0";
#定义作用域是192.168.0.0/24
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
#为DHCP客户设置网关
option routers 192.168.0.1;
#为DHCP客户设自豪子网掩码
option subnet-mask 255.255.255.0;
#为DHCP客户设置NIS的域名,没有定义;
# option nis-domain "domain.org";
#为DHCP客户设置DNS服务器的域名
option domain-name "lianhua.com";
#为DHCP客户设置DNS服务器的IP地址
option domain-name-servers 192.168.0.25;
#指定时区的设置为格林威治时间
option time-offset -18000; # Eastern Standard Time
#定义DHCP的地址池
range dynamic-bootp 192.168.0.40 192.168.0.50;
#定义最小租约期是21600秒,6个小时
default-lease-time 21600;
#定义最大的租约期12个小时
max-lease-time 43200;
#设置主机声明
host ns {
#设置用于定义服务器从引导文件中装入的主机名,用于无盘工作站
next-server marvin.redhat.com;
#指定DHCP客户的MAC地址
hardware ethernet 12:34:56:78:AB:CD;
#对指定的MAC地址分配固定的IP地址
fixed-address 207.175.42.254;
}
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
#为DHCP客户设置网关
option routers 192.168.0.1;
#为DHCP客户设自豪子网掩码
option subnet-mask 255.255.255.0;
#为DHCP客户设置NIS的域名,没有定义;
# option nis-domain "domain.org";
#为DHCP客户设置DNS服务器的域名
option domain-name "lianhua.com";
#为DHCP客户设置DNS服务器的IP地址
option domain-name-servers 192.168.0.25;
#指定时区的设置为格林威治时间
option time-offset -18000; # Eastern Standard Time
#定义DHCP的地址池
range dynamic-bootp 192.168.0.40 192.168.0.50;
#定义最小租约期是21600秒,6个小时
default-lease-time 21600;
#定义最大的租约期12个小时
max-lease-time 43200;
#设置主机声明
host ns {
#设置用于定义服务器从引导文件中装入的主机名,用于无盘工作站
next-server marvin.redhat.com;
#指定DHCP客户的MAC地址
hardware ethernet 12:34:56:78:AB:CD;
#对指定的MAC地址分配固定的IP地址
fixed-address 207.175.42.254;
}
}
第二步安装NFS
[root@mysqlndb02 /]# mkdir isolinux
[root@mysqlndb02 /]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@mysqlndb02 /]# cp -r /mnt/cdrom/* /isolinux
把/isolinux这个目录共享出来
[root@mysqlndb02 /]#vi /etc/exports
/isolinux 192.168.0.0/24(ro)
使192.168.0.0 这个网段的所有机器都能读;
[root@mysqlndb02 /]# exportfs -a
重新加载NFS
[root@mysqlndb02 /]# showmount -e 192.168.0.31
Export list for 192.168.0.31:
/isolinux 192.168.0.0/24
/var/ftp/pub 192.168.0.25
第三步 配置tftp服务器
Export list for 192.168.0.31:
/isolinux 192.168.0.0/24
/var/ftp/pub 192.168.0.25
第三步 配置tftp服务器
1、[root@mysqlndb02 /]#yum install tftp-server
TFTP 是由 xinetd 管理的服务,编辑 /etc/xinetd.d/tftp
TFTP 是由 xinetd 管理的服务,编辑 /etc/xinetd.d/tftp
1 # default: off (默认是没有激活的)
2 # description: The tftp server serves files using the trivial file transfer \
3 # protocol. The tftp protocol is often used to boot diskless \
4 # workstations, download configuration files to network-aware printers, \
5 # and to start the installation process for some operating systems.
6 service tftp
7 {
8 socket_type = dgram
9 protocol = udp
10 wait = yes
11 user = root
12 server = /usr/sbin/in.tftpd
13 server_args = -s /tftpboot
14 disable = yes
15 per_source = 11
16 cps = 100 2
17 flags = IPv4
18 }
将
tftp
服务的配置文件中的
disable=yes
设置成
disable=no
重启xinetd
[root@mysqlndb02 /]# service xinetd restart
停止 xinetd: [确定]
启动 xinetd: [确定]
[root@mysqlndb02 /]#chkconfig --level nfs 345 on
停止 xinetd: [确定]
启动 xinetd: [确定]
[root@mysqlndb02 /]#chkconfig --level nfs 345 on
2、配置pxe引导
安装tfpt后在根目录上会自动出现tftpboot目录;1)、把光盘里面的isolinux这个目录下的所有东西复制到/tftpboot这个目录下面去;
[root@mysqlndb02 tftpboot]# cp /mnt/cdrom/isolinux/* .
2)、在/tftpboot/里面创建目录:mkdir pxelinux.cfg
[root@mysqlndb02 tftpboot]#mkdir pxelinux.cfg
因为PXE读取到的是pxelinux.cfg这个文件夹,所有必须创建这个文件夹;
3)、在把pxe的引导文件pexlinux.0给复制过来 ,这个文件在/usr/lib/syslinux/下面
[root@mysqlndb02 tftpboot]#cp /usr/lib/syslinux/pxelinux.0 .
[root@mysqlndb02 tftpboot]# ll pxelinux.0
-rw-r--r-- 1 root root 13148 08-10 16:13 pxelinux.0
4)、重命名 isolinux.cfg 为default文件并把它移到pxelinux.cfg目录下面
[root@mysqlndb02 tftpboot]#mv isolinux.cfg pxelinux.cfg/default
[root@mysqlndb02 tftpboot]# cd pxelinux.cfg/
[root@mysqlndb02 pxelinux.cfg]#
[root@mysqlndb02 pxelinux.cfg]# ls
default
5)、启动tftp服务:
[root@mysqlndb02 pxelinux.cfg]#chkconfig tftp on
[root@mysqlndb02 pxelinux.cfg]service xinetd restart
[root@mysqlndb02 pxelinux.cfg]#chkconfig tftp on
基本到此就可以实现NFS安装了

填入NFS地址和装载目录就可以了

正常安装!
第四步,配置kickstart的安装
通常我们在安装系统的时候需要大量的人机交互界面,而kickstart的安装可以实现无人职守的自动化安装,我们只需要将kickstart的脚本放在服务器上面,就可以避免繁琐的人机交互界面。
在linux下面,可以通过system-config-kickstart这个图形工具来生成这个kickstart的脚本。我们知道在系统安装完成后会自动的创建一个kickstart的文件,这个文件就记录了系统的真实安装配置。该文件在/root/anaconda-ks.cfg。
现在就使用这个文件,将它复制重命名到/isolinux/ksfile/ksinstall,并改变一下权限。
[root@mysqlndb02 ~]#cd /isolinux
[root@mysqlndb02 ~]#mkdir ksfile
[root@mysqlndb02 ~]#cp /root/anaconda-ks.cfg /isolinux/ksfile/ksinstall.cfg
[root@mysqlndb02 ~]#cd ksfile/
[root@mysqlndb02 ksfile]# ls
ksinstall.cfg
复制完成后,需要改变权限为644,让每个用户都有读取的权限。
[root@mysqlndb02 ksfile]# chmod 644 ksinstall.cfg
[root@mysqlndb02 ksfile]# ll
总计 4
-rw-r--r-- 1 root root 1289 08-10 16:33 ksinstall.cfg
现在只需要稍微修改一下ksinstall.cfg这个文件,
在这个文件中定义安装源的路径,
# Kickstart file automatically generated by anaconda.
install
nfs --server=192.168.0.31 --dir=/isolinux
这个参数告诉系统到服务器192.168.0.31的NFS共享目录/isolinux下去寻找安装介质。

接下来还要在/tftpboot/pxelinux.cfg/default这个文件中定义ks的路径就可以了,
label linux
kernel vmlinuz
append ks=nfs:192.168.0.31:/isolinux/ksfile/ksinstall.cfg initrd=initrd.img

OK,现在kickstart安装配置就完成了。
重新打开一台虚拟机,会自动的安装,不过到磁盘划分哪里要手动,还有安装完毕后重新引导也要手动来操作, 省却了我们大量的人机交互操作。
最后感谢chenlong
转载于:https://blog.51cto.com/summervast/371465