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