http://www.cnblogs.com/linux-wangkun/p/5914103.html
1. 软件需求
dhcpd: 动态分配IP
xinetd: 对服务访问进行控制,这里主要时控制tftp
tftp: 从服务器端下载pxelinux.0、default文件
syslinux: 用于网络引导
httpd: 在网络上提供安装源,也就是镜像文件中的内容
yum install dhcp xinetd syslinux tftp-server httpd
2. 配置
2.1 配置IP
将服务器的IP配置为192.168.100.1,以便与DHCP能够正常启动,后边的TFTP,HTTP都是运行在这个IP上。
[root@Amei tftpboot]# ip addr add 192.168.100.1/24 brd + dev p4p1
[root@Amei tftpboot]# ip addr show dev p4p1
2.2 配置DHCP
请参考其它文章,了解以下DHCP的工作原理以及简单的配置,在其基础之上增加了:
next-server 192.168.100.1; # tftp server的ip
filename "pxelinux.0";
dhcp的配置文件/etc/dhcp/dhcpd.conf的内容:
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
# 1. 整体的环境设定
ddns-update-style none;
ignore client-updates;
default-lease-time 259200;
max-lease-time 518400;
option domain-name-servers 192.168.100.1;
# 上面是 DNS 的 IP 设定,这个设定值会修改客户端的 /etc/resolv.conf
# 2. 关于动态分配的 IP
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.101 192.168.100.200;
option routers 192.168.100.1;
option subnet-mask 255.255.255.0;
next-server 192.168.100.1;
# the configuration file for pxe boot
filename "pxelinux.0";
}
启动dhcpd,查看是否有问题,如果没有成功启动需要仔细查看配置是否正确
systemctl start dhcpd.service
2.3 配置TFTP
tftp是由xinetd管理的,所以在需要配置 /etc/xinetd.d/tftp文件,这个文件中只需要改一个参数即可
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
#将此值改为no,表明开启此服务
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
开启xinetd和tftp服务:
tftp的端口为69,同时xinetd接管了此端口
[root@Amei tftpboot]# systemctl start xinetd
[root@Amei tftpboot]# systemctl start tftp
2.4 文件准备
首先将已经下载好的CentOS的镜像文件挂载到一个目录中,然后复制可引导的、压缩的内核文件vmlinuz,以及包含一些模块和安装文件系统的initrd。因为安装过程中以http的方式提供镜像源,所以这里直接将镜像文件挂在到httpd访问目录中(/var/www/html)。
[root@Amei ~]#mkdir /var/www/html/centos7
[root@Amei ~]# mount -o loop CentOS7.2.iso /var/www/html/centos7/
复制vmlinuz,和 initrd.img 到TFTP访问目录的centos7子目录中,因为以后会引导其它的系统,所以这里通过子目录将不同的系统区分开。
[root@Amei ~]# mkdir /var/lib/tftpboot/centos7
[root@Amei ~]# cp /var/www/html/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/
[root@Amei ~]# cp /var/www/html/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/
2.5 设置syslinux加载器
vesamenu.c32和menu.c32是syslinux所拥有众多模块中的两个,它们的功能是制定启动器使用什么模式的背景。Vesamenu.c32图形模式,menu.c32文本模式。我选择的时menu.c32。
同时还需要pxelinux.0文件,它对整个引导器的作用就如同内核对系统的作用一般,它可以解释default文件(配置引导菜单的文件)中的每个配置项,并根据配置项做出不同的反应。如等待的时间、启动器背景、启动菜单、内核引导等等。
所以我们需要将这两个文件复制到tftp的访问目录中:
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
接着就是pxelinux.cfg目录,pxelinux被执行后,它会扫描该目录下是否存在指定的配置文件,如果存在,则引用被制定的配置文件。
default文件存放于pxelinux.cfg目录中,pxelinux程序最后扫描的配置文件名就是default。所以,我们经常把启动器配置项都写入该文件中。
所以我们就要建立pxelinux.cfg,并在此目录下建立default文件,编辑引导菜单。
[root@Amei ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@Amei ~]# emacs /var/lib/tftpboot/pxelinux.cfg/default
default文件内容为:
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install CentOS 7 x64 with HTTP
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://192.168.100.1/centos7 devfs=nomount
2.5 检查文件以及服务
此时/var/lib/tftp文件夹的结构应该是这样的:
确保开启dhcpd,xinetd,tftp,http这些服务,在开启的时候没有发生错误,说明配置没问题。
[root@Amei tftpboot]# systemctl start dhcpd.service
[root@Amei tftpboot]# systemctl start xinetd.service
[root@Amei tftpboot]# systemctl start tftp.service
[root@Amei tftpboot]# systemctl start httpd.service
验证httpd是否运行正常:
同时为了防止意外的发生我们需要关闭防火墙和selinux。
[root@Amei tftpboot]# systemctl stop firewalld.service
[root@Amei tftpboot]# setenforce 0
3. 测试
pxe服务器配置完成后,就可以在此子网中用网络引导安装了,此时和普通的安装系统差别不大,但是要选择从网络引导。
#########################################################################################################
http://blog.csdn.net/q1059081877q/article/details/48251893
mount -t 类型 -o 挂接方式 源路径 目标路径
-t 详细选项:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs(需内核支持)推荐cifs
UNIX(LINUX) 文件网络共享:nfs
-o 详细选项:
loop :用来把一个文件当成硬盘分区挂接上系统
ro :采用只读方式挂接设备
rw :采用读写方式挂接设备
iocharset :指定访问文件系统所用字符集,例如iocharset=utf8
remount :重新挂载
使用实例:
挂载windows文件共享:
sudo mount -t cifs -o username=user,password=passwd //192.168.6.6/share /mnt/share
mount -t cifs -o username=xxx,password=xxx //IP/sharename /mnt/dirname
挂载Linux文件nfs共享:
mount -t nfs -o rw 192.168.1.2:/usr/www /usr/www
挂载ISO镜像:
mount -o loop -t iso9660 /usr/mydisk.iso /home/ping.bao/cd
挂载USB移动硬盘:
mount -t ntfs /dev/sdc1 /root/usb
挂载CDROM:
mount /dev/cdrom /home/ping.bao/cd
取消挂载:
umount /dev/cdrom /home/ping.bao/cd
单用户模式重新挂载根分区:
mount -o remount,rw /