说明:时不时会有读者就遇到的一些问题留言或者私信询问解决方法,但本人对 Desktop运维、PE镜像等并不熟悉了解,这篇文章是我曾经一时出于工作需要而进行的研究,因此很多问题我也不了解,故而无法解答,对此表示抱歉。

不过可以借鉴的一点是,当初我探索这些自动化部署时遇到很多问题,这些问题都反映在我的文章中,本人完全是在全新的环境中部署了一次,确保可以成功后记录了这篇文章,因此当您遇到问题时,请仔细阅读blog以找出潜在的问题(尤其是配置文件的设置和镜像文件版本,如是否修改版、是否64位)。

另外,有问题或者已解决问题的方法都可以在评论区留言,方便后来人参考。

Tutorial: Installing Windows with cobbler (cobbler安装Windows)

Windows系统的自动安装需要用到Win PE工具。流程如下:

定制Win PE工具

Win PE ISO导入至Cobbler Server端

通过samba共享Windows ISO

客户机器PXE启动安装

大致是上面四个过程,接下来具体说明相应配置。

定制Win PE工具:

定制Win PE工具的目的是为了在通过PXE方式启动的客户端上运行一个Windows预安装环境(相当于linux的initrd.img和vmlinuz,毕竟安装系统类似于安装软件,总得开机才能安装,“开机”则需要运行系统,这个系统就是Win PE。),并且使得Windows预安装环境能够自动执行某些我们需要的动作。

Win PE的制作微软官方提供有相应的工具,该工具叫做:Windows AIK。我们需要使用该工具来定制Win PE工具,可以从这里下载:

下载之后,解压安装,如下图:

安装完毕后,启动该工具来定制Win PE镜像,如下图:

定制Win PE ISO所用命令及相关配置:

copype amd64 C:winpe

imagex /mountrw c:winpewinpe.wim 1 c:winpemount

echo ping -n 7 -l 69 192.168.1.199 >> C:winpemountWindowsSystem32startnet.cmd

echo net use z: \192.168.1.199share >> C:winpemountWindowsSystem32startnet.cmd

echo Z: >> C:winpemountWindowsSystem32startnet.cmd

#win是包含windows 7 ISO解压文件的父目录

echo cd win >> C:winpemountWindowsSystem32startnet.cmd

echo setup.exe /unattend:Autounattend.xml >> C:winpemountWindowsSystem32startnet.cmd

imagex /unmount c:winpemount /commit

copy c:winpewinpe.wim c:winpeISOsourcesoot.wim

# "-bC"中间没有空格

oscdimg -n -bC:winpeetfsboot.com c:winpeISO c:winpewinpe_cobbler_amd64.iso

解释一下上面的几行命令:

1:使用copype命令创建C:winpe目录,并在该目录下生成Win PE预安装所需的文件。

3:使用imagex命令挂载c:winpewinpe.wim文件到c:winpemount目录下,以便后续进行修改,因为Windows系统的很多核心文件都被打包压缩在这个文件里面,所以我们需要挂载才能读写修改。除了imagex这个工具可以完成修改之外,另一个工具DIMS也能做到,如果你熟悉该工具,则可以使用DIMS来做。

5-11:修改挂载后的wim文件,向C:winpemountWindowsSystem32startnet.cmd文件中写入一些脚本命令。其中第5行用于测试脚本有无执行,可以删去。剩下的几行是对samba共享文件的加载并执行,具体会在后续第三步samba文件共享那里详细解释。需要注意的是,这里用到的IP地址是我Cobbler Server服务器的地址,具体请根据你自己的服务器地址进行更改。至于为什么是写入到startnet.cmd文件中,是因为Win PE第一次运行时固定使用 Wpeinit 和 Startnet.cmd 运行启动脚本。但是对于Wpeinit我多次测试却没有成功过,因此选择将命令脚本写入到startnet.cmd文件中(startnet.cmd是Win PE ISO镜像自带的脚本文件)。

一个问题:写入到脚本中的命令用到了Cobber Server端的IP地址,这个IP地址被硬编码到了Win PE ISO镜像中,一个可行的办法是在这里不直接写入具体命令,而是调用另外一个脚本,这个被掉的脚本可以放在其他地方,以方便后续修改。

13:完成修改后,提交保存修改并去除挂载。

15:拷贝修改后的winpe.wim到指定目录并重命名。

18:生成Win PE ISO镜像工具,路径及名称为C:winpewinpe_cobbler_amd64.iso。

Win PE ISO导入至Cobbler Server端:

上一步中已经定制好了Win PE ISO镜像,接下来我们需要像前面安装CentOS/Ubuntu系统那样,把它导入到Cobbler Server端中。也是下面的三个流程

上传ISO镜像到 Cobbler Server 端

导入ISO镜像到 Cobbler Server 端

配置ISO镜像相关自动值守安装文件

下面是具体配置:

上传ISO镜像

将 winpe_cobbler_amd64.iso 镜像拷贝至 Cobbler Server 服务器/root/目录下,但无需挂载。

导入ISO镜像

cobbler distro add --name=windows7 --kernel=/var/lib/tftpboot/memdisk --initrd=/root/winpe_cobbler_amd64.iso --kopts="raw iso"

配置ISO镜像自动值守安装文件

这里需要说明的是:事实上,该自动值守安装文件并没有作用,它不像CentOS的ks以及Ubuntu的Preseed文件那样,内含有操作系统的那些设置,它的作用在于每个系统distro必须有一个profile,因此尽管它并不是实际用来设定系统设置的,但也要指定。如下:

touch /var/lib/cobbler/kickstarts/win7pe.xml

cobbler profile add --name=windows7 --distro=windows7 --kickstart=/var/lib/cobbler/kickstarts/win7pe.xml

这里的win7pe.xml文件可以为空白,但必须要存在。否则,在通过PXE方式启动客户机器时,客户机器看不到可以通过网络安装的Win PE系统。而实际设定Windows系统安装的配置文件则会在第四步客户机器PXE启动安装那里解释。

通过samba共享Windows ISO:

前面已经完成Win PE ISO镜像定制,该ISO镜像通过PXE启动后,能够根据定制中的脚本命令自动获取Windows 7镜像并安装,获取Windows 7镜像的方式是通过网络共享下载。既然是通过网络共享,那么Windows 7镜像就要通过网络共享提供出来,这里使用的方法是使用samba文件共享,通过Cobbler Server端安装部署samba文件共享,提供Windows 7镜像。这里使用的Windows 7 ISO镜像并不是ghost之类的修改版,而是微软官方发布的原生纯净ISO,如果你需要获得相关镜像,可以自行去微软MSDN或者某些网站下载。具体如下:

安装并启动samba:

yum install samba -y

service smb start

systemctl enable smb

配置samba共享:

vi /etc/samba/smb.conf

# /etc/samba/smb.conf

[global]

log file = /var/log/samba/log.%m

max log size = 5000

security = user

guest account = nobody

map to guest = Bad User

load printers = yes

cups options = raw

[share]

comment = share directory目录

path = /smb/

directory mask = 0755

create mask = 0755

guest ok=yes

writable=yes

配置完上面的smb之后,记得重启服务

service smb restart

配置共享文件夹及Windows 7镜像

mkdir -p /smb/win

mkdir /mnt/win7

mount -o loop,ro /root/cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso /mnt/win7

cp -r /mnt/win7/* /smb/win

上面的命令主要功能是创建samba共享文件夹、挂载Windows 7 ISO镜像、拷贝Windows 7 ISO镜像内容到samba共享文件夹中。实际上,这里的文件不仅仅是Windows 7 ISO镜像解压后的内容,还有一个名为“Autounattend.xml”的文件,这个文件并没有通过上面的操作放入到samba共享文件夹中,它的作用和如何生成会在最后一步解释。

做完这几步后,我们可以通过Windows的 net use 命令加以访问,如下:

这里解释了上面第一步中定制Win PE ISO时用的那几个命令的作用:通过net use访问samba共享服务器上的Windows 7 ISO镜像内容,并启动Windows 7 ISO镜像中的setup.exe程序进行安装。

客户机器PXE启动安装:

在第二步中配置ISO镜像自动值守安装文件时,说明到那里指定的profile文件可以为空,并不是实际的生效配置文件,第三步中也说到samba共享文件中不仅仅是Windows 7 ISO镜像解压后的内容,还有一个名为“Autounattend.xml”的文件。事实上,到这里已经很清楚,第二步中的空白profile文件无意义,有意义的文件跑到了第三步samba共享文件中。这个文件指定Windows 7系统安装时的参数,比如账号,硬盘分区,防火墙等。

这个名为“Autounattend.xml”的文件正是Windows 7 无人值守自动应答文件,它的制作生成稍微有一点繁琐,我也是花了几天才成功。具体可以参考我的另一篇博文:Windows 7 SP1无人值守自动应答文件制作

这里提供一份我制作好的应答文件:

md5:44ee48bd4bf78548b8b7760277e2ea0f

Autounattend.xml:点此下载

安装过程图示:

批量部署windows和linux系统,使用Cobbler批量部署Linux和Windows:Windows系统批量安装(三)...相关推荐

  1. 68.第十五章 运维自动化之系统部署 -- 利用Cobbler实现自动化安装(三)

    5.利用 cobbler 实现自动化安装 5.1 Cobbler 简介 Cobbler是一款Linux生态的自动化运维工具,基于Python2开发,用于自动化批量部署安装操作系统:其提供基于CLI的管 ...

  2. 轻松实现各种文档格式转换,doc转pdf、doc转png图片、pdf转png图片,可以实现Windows、Linux、MacOS平台上部署(附源码和说明)

    轻松实现各种文档格式转换,doc转pdf.doc转png图片.pdf转png图片,可以实现Windows.Linux.MacOS平台上部署,可以通过命令行.shell脚本.python等方式调用. 实 ...

  3. Linux Cobbler自动部署装机

    Cobbler自动部署装机 一.实验准备 二.Cobbler自动装机服务搭建步骤 1.导入epel源 2.安装Cobbler以及其相关服务软件包 3.修改cobbler主配置文件 4.使用cobble ...

  4. Cobbler自动部署CentOS系统

    Cobbler自动部署CentOS系统: 说明:Cobbler相当于kickstart的2次封装,主要解决kickstart不能多系统部署的问题 建议在Ubuntu 14.04系统上搭建,Ubuntu ...

  5. 批量安装系统工具cobbler配置

    Cobbler部署指南之配置管理 四.配置管理Cobbler 4.1 Cobbler命令说明 命令名称 命令用途 cobbler check 检查cobbler配置 cobbler list 列出所y ...

  6. Cobbler 自动化部署系统

    第1章 Cobbler 自动化部署系统 1.1 环境准备 1.1.1 查看系统版本 [root@Cobbler ~]# cat /etc/redhat-release CentOS Linux rel ...

  7. 干货分享:一键网络重装系统 - 魔改版(适用于Linux / Windows)

    简介 一键网络重装系统 - 魔改版,它可以通过Internet重新安装Linux和Windows以及常见的操作系统.例如:Linux(CentOS,Debian,Ubuntu.etc..),Windo ...

  8. 第二节 红帽认证培训 部署虚拟环境安装LInux系统+新手必须掌握的Linux命令(讲到2.3)

    第二节 红帽认证培训 部署虚拟环境安装LInux系统+新手必须掌握的Linux命令(讲到2.3) 2021年4月3日 晚19点课程笔记 笔记目录 一.部署虚拟环境安装Linux系统 二.新手必须掌握的 ...

  9. 一键网络重装系统 - 魔改版(适用于Linux / Windows)

    一键网络重装系统 - 魔改版,它可以通过Internet重新安装Linux和Windows以及常见的操作系统.例如:Linux(CentOS,Debian,Ubuntu.etc-),Windows(2 ...

  10. linux怎么远程windows桌面,Windows系统怎么远程登陆桌面Linux?

    1.我们先在windows主机上下载TigerVNC软件包.TigerVNC是一款开源免费的VNC连接软件,我们可以通过它对带桌面的linux主机进行远程.这里,我们从SourceForge网站下载T ...

最新文章

  1. Ubuntu下makefile及gcc生成静态库动态库的简单使用举例
  2. PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理
  3. 将视频分成一帧一帧python_python ffmpeg任意提取视频帧的方法
  4. Linux位置无关代码实现,浅谈位置无关代码
  5. Cosmos OpenSSD--greedy_ftl1.2.0(二)
  6. [转]20个优秀网站助你征服CSS
  7. Kubernetes 小白学习笔记(5)--Kubernetes集群的部署service、部署deployment、自动负载均衡、自动伸缩、版本升级、版本回退
  8. 我的 2016 总结:认识自己
  9. 算法导论第四版更新了什么?
  10. Java使用DFA算法处理敏感词汇
  11. 做正确的事(效果)比正确的做事(效率)更重要
  12. Could not load codec 'Lucene54'. Did you forget to add lucene-backward-codecs.jar?
  13. IDEA 社区版下载与安装
  14. 关于采购中的PTA——概念如何理解及其计算公式
  15. Davinci Resolve Studio 17d5达芬奇调色软件专业版
  16. Winform从入门到精通(8)——RichTextBox(史上最全)
  17. CSS 特异性 specificity
  18. python在姓名的左右_怎样用Python给宝宝取个好名字?
  19. 非线性方程求解 不动点迭代法
  20. asp毕业设计——基于vb+VB.NET+SQL Server的公文管理系统设计与实现(毕业论文+程序源码)——公文管理系统

热门文章

  1. Java后端开发技术选型
  2. 【MATLAB调用Refprop】
  3. pycharm 修改darcual(暗黑)主题滚动条颜色
  4. OpenCV 头像训练与识别
  5. 联想y7000p安全锁孔怎么用_Y7000P-个人使用感受_拯救者笔记本-联想社区
  6. 高级商务办公软件应用【10】
  7. win10音量图标没有了
  8. 人工智能机器学习————MINST数据集的简单处理
  9. 无痕驱动读写注入EAC BE
  10. 前端开发_HTML5_布局-div+css布局