说明:时不时会有读者就遇到的一些问题留言或者私信询问解决方法,但本人对 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工具,可以从这里下载:适用于 Windows® 7 的 Windows® 自动安装工具包 (AIK)

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

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

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

copype amd64 C:\winpe

imagex /mountrw c:\winpe\winpe.wim 1 c:\winpe\mount

echo ping -n 7 -l 69 192.168.1.199 >> C:\winpe\mount\Windows\System32\startnet.cmd
echo net use z: \\192.168.1.199\share >> C:\winpe\mount\Windows\System32\startnet.cmd
echo Z: >> C:\winpe\mount\Windows\System32\startnet.cmd #win是包含windows 7 ISO解压文件的父目录
echo cd win >> C:\winpe\mount\Windows\System32\startnet.cmd
echo setup.exe /unattend:Autounattend.xml >> C:\winpe\mount\Windows\System32\startnet.cmd imagex /unmount c:\winpe\mount /commit copy c:\winpe\winpe.wim c:\winpe\ISO\sources\boot.wim # "-bC"中间没有空格
oscdimg -n -bC:\winpe\etfsboot.com c:\winpe\ISO c:\winpe\winpe_cobbler_amd64.iso

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

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

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

5-11:修改挂载后的wim文件,向C:\winpe\mount\Windows\System32\startnet.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:\winpe\winpe_cobbler_amd64.iso。

Win PE ISO导入至Cobbler Server端:

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

  1. 上传ISO镜像到 Cobbler Server 端
  2. 导入ISO镜像到 Cobbler Server 端
  3. 配置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:点此下载

安装过程图示:

使用Cobbler批量部署Linux和Windows:Windows系统批量安装(三)的更多相关文章

  1. 使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

    本文记录了我使用Cobbler批量安装部署Linux和Windows系统的过程,文章主要分为三部分:Cobbler服务端的安装配置.Linux发行版CentOS和Ubuntu的自动安装部署.Windo ...

  2. (转)使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

    原文:http://www.cnblogs.com/pluse/p/8316914.html http://blog.51cto.com/dreamway/1166589---------Cobble ...

  3. 在Vista或Windows 7系统上安装Sharepoint 2007

    在Vista或Windows 7系统上安装Sharepoint 2007 2010-03-05 18:53:19|  分类: 技术文章|字号 订阅     SharePoint 2007 不能直接安装 ...

  4. win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程( Win7 SQL Server2005 安装教程)

    win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程 由于工作需要,今天要在电脑上安装SQL Server 2005.以往的项目都是使用Oracle,MS的 ...

  5. 使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安装(二)

    通过前面服务端的部署,已经配置好了 Cobbler Server 端,接下来开始进行 CentOS/Ubuntu 的批量安装,在进行 CentOS/Ubuntu 批量安装时,也需要通过Cobbler来 ...

  6. PXE批量部署linux操作系统

    前言 在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我 ...

  7. Linux 的基本操作(系统的安装)

    操作系统的安装: 操作系统的安装 这次安装系统也是基于CentOS的安装.把光盘插入光驱,设置bios光驱启动.进入光盘的欢迎界面. 其中有两个选项,可以直接按回车,也可以在当前界面下输入 linux ...

  8. Linux:CentOS 7系统的安装

    相信有看过我写的博文就知道我写的第一篇博文就是CentOS 7系统的安装,不过是在虚拟机中安装的,而且还是直接加载镜像文件进去的,不过这次我就通过PE来安装,来证实下PE是否可以用来安装Linux系统 ...

  9. Linux RedHat7.0_64位系统中安装Oracle_11g_R2

    步骤一: 当然是安装rhel7操作系统啦(废话),建议在安装过程中系统软件类型选择最后一项[Server with GUI].其他的默认一般即可. 步骤二:在初装完成的系统中无法像Windows那样直 ...

随机推荐

  1. JSOI2019 Round2 极限生还

    江苏省省队一共13个名额,去掉女生名额, 按1/3校内限制,我们南外只有4个名额, 在noip爆炸(占比35%),省选一轮爆炸(占比40%),(此时蒟蒻在校内排不进前10...) 总算在省选二轮(占比 ...

  2. 拜托!面试请不要再问我Spring Cloud底层原理

    概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓 ...

  3. Golang 入门 : 字符串

    在 Golang 中,字符串是一种基本类型,这一点和 C 语言不同.C 语言没有原生的字符串类型,而是使用字符数组来表示字符串,并以字符指针来传递字符串.Golang 中的字符串是一个不可改变的 UT ...

  4. 菜鸟学习计划浅谈之Linux系统

    人这一生都是在不断地学习,不断地进步中度过的,刚开始学习任何一门知识的时候,我们都习惯性的称自己为菜鸟,觉得自己对这方面的知识欠缺,水平很low,我也是如此.但我擅长总结,对于自己学习的新知识,总结学 ...

  5. U盘文件被隐藏

    转自https://blog.csdn.net/zichen_ziqi/article/details/80171891 文章原地址:http://www.uqidong.com/help/1625. ...

  6. MyBatis基础:MyBatis缓存(5)

    1. MyBatis缓存简介 MyBatis提供支持一级缓存及二级缓存. 一级缓存: 2.MyBatis一级缓存

  7. VMware Workstation 12 Pro安装CentOs图文教程(超级详细)

    本文记录了VMware Workstation 12 Pro安装CentOs的整个过程,具体如下: VMware Workstation 12: CENTOS 6.4 : 创建虚拟机 1.首先安装好V ...

  8. css 常见属性

    字体属性:(font) 大小 font-size: x-large;(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 样式 font-style: obliqu ...

  9. 如何在源码里修改openwrt root密码

    root密码在etc/shadow文件里,但里边的密码是加密过后的.具体的加密方式我不清楚,应该是Linux里的一套加密算法.但要达到修改源码密码的目的,我还是想到了一个间接的办法.首先在源码里改成t ...

  10. Python 常用模块大全(整理)

    https://www.cnblogs.com/jpfss/p/9686050.html