这里使用的是树莓派3,默认的目录跟其它发布版稍有不一样。

安装FTP服务

安装vsftpd服务

# apt-get install -y vsftpd

修改配置,开启匿名用户

# vi /etc/vsftpd.conf
...
anonymous_enable=YES

检查配置

# cat /etc/vsftpd.conf | grep -E -v '^$|#'

启动服务

# systemctl start vsftpd
# systemctl enable vsftpd

注意:树莓派的系统中vsftpd默认存储路径为/srv/ftp

安装tftp和dhcp服务

dnsmasq可同时支持tftp和dhcp服务。

# apt-get install -y dnsmasq

修改配置文件

# vi /etc/dnsmasq.conf
...
dhcp-range=192.168.106.60,192.168.106.100,12h
dhcp-boot=pxelinux.0
dhcp-authoritative
dhcp-option=3,192.168.106.254  # 网关地址
enable-tftp
tftp-root=/srv/tftpd
filterwin2k

建立文件目录

mkdir /srv/tftpd

启动服务

systemctl start dnsmasq
systemctl enable dnsmasq

准备文件

准备操作系统

准被存储目录并上传文件

# mkdir -p /srv/ftp/iso/

将iso挂载到文件目录

# mkdir -p /srv/ftp/centos/7
# mount -o loop /srv/ftp/iso/CentOS-7-x86_64-DVD-1503-01.iso /srv/ftp/centos/7

准备操作系统启动文件

# mkdir -p /srv/tftpd/centos/7
# cp /srv/ftp/centos/7/images/pxeboot/initrd.img /srv/tftpd/centos/7
# cp /srv/ftp/centos/7/images/pxeboot/vmlinuz /srv/tftpd/centos/7

为tftp服务准备文件

最少需要pxelinux.0、vesamenu.c32、chain.c32这三个文件,从syslinux中获取

# wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.07.tar.gz
# tar zxvf syslinux-4.07.tar.gz
# cp syslinux-4.07/core/pxelinux.0 /srv/tftpd/
# cp syslinux-4.07/com32/menu/vesamenu.c32 /srv/tftpd/
# cp syslinux-4.07/com32/chain/chain.c32 /srv/tftpd/

初始化配置文件目录

# mkdir /srv/tftpd/pxelinux.cfg/

编写引导配置文件

# vi /srv/tftpd/pxelinux.cfg/default
...
default vesamenu.c32
timeout 600
display boot.msg
menu title Install

label centos7
  menu label Manual Install CentOS 7
  kernel centos/7/vmlinuz
  append initrd=centos/7/initrd.img inst.repo=ftp://192.168.106.50/centos/7

label centos7-auto
  menu label Auto Install CentOS 7
  kernel centos/7/vmlinuz
  append initrd=centos/7/initrd.img ks=ftp://192.168.106.50/centos/7.ks

menu separator # insert an empty line

label local
  menu label Boot from ^local drive
  menu default
  #localboot 0x80 # 4.x +
  kernel chain.c32
  append hd0 0

准备kickstart文件实现自动安装

# vi /srv/ftp/centos/7.ks

内容如下:

#platform=x86, AMD64,  Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext nopasswd
# Use network installation
url --url="ftp://192.168.106.50/centos/7"
# System language
lang en_US
# Firewall configuration
firewall --enabled --ssh
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
# SELinux configuration
selinux --enforcing
# Do not configure the X Window System
skipx

# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=256 --onbiosdisk=80
part pv.01 --size=1 --grow --onbiosdisk=80
volgroup centos pv.01
logvol swap --fstype swap --name=swap --vgname=centos --recommended
logvol / --fstype xfs --name=root --vgname=centos --size=1 --grow

%packages --nobase --ignoremissing
@core
%end

硬盘分区中,交换分区可以让安装程序自动分配,使用--recommended或者--hibernation(此参数需要操作系统较高版本支持)

远程安装Windows系统

启动Windows安装需要一个支持网络的PE

制作PE

步骤1:Windows 评估和部署工具包 (Windows ADK)

https://developer.microsoft.com/zh-cn/windows/hardware/windows-assessment-deployment-kit

步骤2:安装完成后从开始菜单选择执行“部署和映像工具环境”

copype amd64 D:\win10pe-amd64
MakeWinPEMedia /ISO D:\win10pe-amd64 d:\win10pe-amd64\win10pe-amd64.iso

完成后上传到tftp文件目录

配置启动项

需要用到memdisk:

cp syslinux-4.07/memdisk/memdisk /srv/tftpd/

修改配置文件

# vi /srv/tftpd/pxelinux.cfg/default
...
menu separator # insert an empty line

label wepe2 
  MENU LABEL Windows WePE 2.0 x64
  KERNEL memdisk
  APPEND iso raw
  INITRD iso/win10pe-amd64.iso
...

完成以上操作后就可以从PXE引导PE工具了,引导成功后,映射一个SMB的驱动器(里面是操作系统安装文件,从安装iso解压出来的文件),其余的安装Windows应该就是轻车熟路了。

net use y: \\192.168.106.50\os\win7\instfiles password /user:samba_username
y:\setup.exe

参考资料

http://www.linuxprobe.com/automatic-operatio-pxe.html

http://www.right.com.cn/forum/thread-207741-1-1.html

https://www.tecmint.com/installing-windows-7-over-pxe-network-boot-in-centos/

[ 编辑 | 历史 ]
最近由“jilili”在“2017-12-01 10:30:59”修改