Win系统安装部署流程与工具
[TOC]
0x00 WDS|Win部署服务
描述:Windows Deployment Service即windows部署服务,我们可以通过windows server自带的部署服务通过网络将操作系统部署到每台计算机上,并且可以通过WDS来管理多版本映像以及无人参与安装脚本,和网刻非常相似不过这个更简单操作更方便
Q:什么是PXE?: 答:PXE(preboot execute environment-预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
环境配置: 虚拟机:Virtualbox
#Windows servers 2016:
2张网卡(外网/内网) :
- NAT 模式:可以上外网 (DHCP)
- INTERNAL 模式:连接虚拟机之间通信 (IP:192.168.1.1/网关:192.168.1.254)
添加一块SATA控制器的磁盘格式为NTFS
#角色基础功能安装WDS/DHCP作用域
配置DHCP地址池:
192.168.1.1~192.168.1.100
占用不使用:
192.168.1.1~192.168.1.10
路由器网关:
192.168.1.254
#其他的默认下一步即可
配置流程:
- 配置基础环境比如网卡以及INTERNAL模式网卡IP
- 联机磁盘并进行格式化分区(注意分区格式:NTFS)
- 在服务器管理器中添加角色选择[DHCP服务]和[Windows部署服务]
- 配置DHCP服务建立作用域,重启服务;
- 配置WINDOWS部署服务进行配置服务器参数,导入映像文件与启动文件
- 配置WINDOWS部署服务的启动项、DHCP、多播等参数,最后启动部署服务;
- 新建立一台虚拟机从网络启动并且会向DHCP服务器发起请求获取租用IP,然后向WDS服务器发起请求进行拉取启动镜像,最后完成安装;
1. 磁盘分区格式化
我们在运行中执行磁盘管理工具diskmgmt.msc,之后将我们添加的磁盘进行联机然后初始化,新建简单卷进行向导即可(注意分区格式:NTFS)
WeiyiGeek.
修改完成后格式化分区:
WeiyiGeek.
2. 搭建WDS环境与配置
Step1. 安装Windows部署工具:
WeiyiGeek.服务器管理器-仪表盘
安装类型:基于角色或者功能的安装
服务器选择:从服务器此中选择服务器(即:WindowsServers本身)
服务器角色:选中Windows部署服务/DHCP服务器
功能/WDS/角色服务:默认即可,确认安装
WeiyiGeek.安装
Step 2. 安装成功后打开windows部署工具: 注意:此处有坑需要在WDS中选择windows部署工具:
WeiyiGeek.打开部署工具
1) 右键选择服务-配置服务器-选择【独立服务】以及【响应所有客户端计算机】完成Windows部署服务的配置。
WeiyiGeek.选择独立服务
2) 按照提示设置远程安装文件的位置(需要注意是单独的磁盘不能是在系统分区内),需要您进行建立文件夹 mkdir E:RemoteInstall; 3) 配置代理DHCP的DHCP选项:选择最后一项即可 4) PXE服务器初始设置:选择响应所有的客户端机器(已知未知)下一步进行部署安装
WeiyiGeek.windows部署安装
Step 3. 载入镜像进行配置 1) 为了加快速度建议把镜像文件上传到服务器里,并且将要安装的系统加载到光驱; 2) 在 [Windows部署服务] 进行添加安装映像,光盘中的source目录中install.wim就是安装映像了
WeiyiGeek.添加映像文件
3) 现在需要安装的版本名称比如专业版/家庭版/企业版(使用过dism朋友应该知道),然后下一步、等待加载映像即可;
WeiyiGeek.选择安装版本
4) 加载完成后就能看见我们的镜像文件,然后我们需要配置启动映像soutce目录下的boot是启动映像(win10的启动映像有网卡驱动)
WeiyiGeek.启动映像
5) 当然如果是我们自己封装的ISO镜像,还可能要进行配置驱动程序包
Step 4. DHCP/WDS参数配置 这里主要进行配置服务器的启动项、DHCP、多播等参数 0) DHCP 设置作用域:
WeiyiGeek.DHCP作用域
1) 右击【Windows部署服务器】在弹出的对话框中单击【属性】按钮-选择启动项
WeiyiGeek.设置启动项
2) DHCP配置:如果是dhcp在一台服务器上就需要勾选(配置DHCP选项-其实我们上面都已经配置过了),否则不勾选;然后再配置多播IP地址从DHCP服务获取IP地址;
WeiyiGeek.多播IP地址
3) 最后启用WIndows部署服务
WeiyiGeek.启用部署服务
Step 5.安装测试 1) 新建立一台虚拟机或者一台物理机,通过交换机连接保证在同一局域网内,使用virtualBox和VM的需要注意选择网络类型(自行百度-只要能相互通信即可); 2) 建议启用安装前将Windows防火墙进行关闭; 3) 然后设置从网络/pxe机器启动即可,从下面可以看见连接到DHCPPROXY中分配的IP地址;
WeiyiGeek.DHCP
WeiyiGeek.DHCP
4) 获取到DHCP响应后进行拉取boot.wim映像文件
WeiyiGeek.启动从WDS服务器拉取镜像
5) 需要使用WDS账号密码进行登录拉取install.wim映像文件
WeiyiGeek.登录WDS
6) 输入完成后进行系统安装,到此完成批量系统安装(启动一台安装一台)
WeiyiGeek.安装系统
3. 安装ghost镜像系统
描述:同样可以利用此方法来安装Ghost系统镜像,此种方法前提最好是磁盘已经分区; 环境准备:
windows 2016 server #上面的环境(还需开启共享服务即smb服务)
windows10PE - 参考[COBBLER批量安装Windows系统] 中的映像制作
windows10的ghost系统镜像 windows10.gho
x64位的Symantec Ghost.exe
项目流程步骤:
- 配置好基础环境(smb/wds/dhcp),将windows10PE中的boot.wim导入到WDS中启动镜像中(只需要这个)
- 将需要安装系统的电脑连接到同一局域网(即同一交换机上),在bios上配置PXE启动;
- 进入OOBE界面后出现cmd.EXE命令执行窗口,并且会利用winpe.bat来启动startnet.cmd脚本
- 连接到我们smb服务上执行ghost.exe选择ghost映像安装即可;
- 如果磁盘未分区采用ghost即可分区
Local -> Disk > From Image
, 然后选择ghost镜像文件
WeiyiGeek.diskfromimage
- 之后回询问您是选择GPT分区还是MBR分区。Y = GPT / N = MBR
WeiyiGeek.选择分区
- 调整磁盘分区大小,类似于 DiskGenius.exe 工具
WeiyiGeek.调整磁盘分区大小
总结:
- 建议机器/交换机是千兆的网卡(全双工),如果是百兆的建议您还是手动比较好;
4. PE启动配置
描述:我们可以采用WDS加载PE镜像中的wim文件,方便我们以网络的方式启动PE极大的节约我们的时刻;
操作流程:
- 1.提取PE镜像ISO文件中的WIM文件:# 例如 /WEPE/WEPE64.WIM /BOOT/10PEx64.wim
- 2.将提取出的文件上传到WDS中启动映像中(具体流程详见上面)
5. 深坑
建议1:DHCP服务器与网络模式 答:配置DHCP服务器的时候需要注意虚拟机网卡模式,最好设置为只有虚拟机之间才能相互通信的网卡模式并且关闭该模式的DHCP分配服务,因为同一个段不允许有两台DHCP服务器,会发生错误
建议2:服务搭建过程排查错误
可以参考服务管理器中事件提示:
WeiyiGeek.
- 使用JDBC向Kudu表插入中文字符-双引号的秘密
- Yarn的JobHistory目录权限问题导致MapReduce作业异常
- 输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止
- Linux基础(day76)
- zabbix设置QQ邮箱告警
- 关于JSON CSRF的一些思考
- linux学习第七十篇:expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令
- linux学习第六十九篇:分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数
- linux学习第六十八篇:告警系统邮件引擎,运行告警系统
- linux学习第六十七篇:告警系统主脚本,告警系统配置文件,告警系统监控项目
- linux学习第六十六篇:shell中的函数,shell中的数组,告警系统需求分析
- linux学习第六十五篇:for循环,while循环, break跳出循环,continue结束本次循环
- linux学习第六十四篇:Shell脚本中的逻辑判断,文件目录属性判断, if特殊用法,case判断
- linux学习第六十三篇:Shell脚本介绍,Shell脚本结构和执行,date命令用法,Shell脚本中的变量
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter基础widgets教程-OverflowBox篇
- iOS音视频接入- TRTC语音聊天室
- vscode使用COS作为图床编写markdown文档
- 一文爱上可视化神器Plotly_express
- 神策大数据用户行为分析
- 3分钟短文:为了你少跳坑,Laravel写好了用户授权
- 巧用ingest pipeline实现Elasticsearch索引的重定向
- leetcode之错误的集合
- vue-element怎么给select下拉框赋值?
- vue 怎么将Checkbox 多选框选中的值提交
- Chrome的小恐龙游戏自动躲避障碍物
- Three.js教程(5):光源
- Three.js教程(6):几何体
- Three.js教程(7):材质
- Keep APP技术研究