这里使用的是树莓派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/