3.Cobbler自动化安装Windows7

摘要:
doctypehtml˃02_2.部署Windows7定制PE工具首先下载微软官方提供的制作工具WindowsAIK。点击|进入下载页面下载完成之后,解压压缩包,点击目录中的StartCD.exe进行安装选择WindowsAIK安装程序进行安装安装完毕之后,以管理员身份运行该工具#使用copype创建E:winpe目录,同时在该目录下生成WinPE预安装所需文件copypeamd64E:winpe#使用imagex命令挂载E:winpewinpe.wim文件到E:winpemount目录下,主要是挂载完成之后,方便我们进行修改。

<!doctype html>02_2.部署Windows7

定制PE工具

首先下载微软官方提供的制作工具 Windows AIK。点击 | 进入下载页面

下载完成之后,解压压缩包,点击目录中的StartCD.exe进行安装

startCD

选择Windows AIK安装程序进行安装

安装程序

安装完毕之后,以管理员身份运行该工具

命令工具

# 使用copype创建E:winpe目录,同时在该目录下生成Win PE预安装所需文件
copype amd64 E:winpe

11

# 使用imagex命令挂载E:winpewinpe.wim文件到E:winpemount目录下,主要是挂载完成之后,方便我们进行修改。
imagex /mountrw E:winpewinpe.wim 1 E:winpemount

12

# 向startnet.cmd文件中写入一些脚本命令
# 测试机器与Cobbler机器之间的网络是否相同,如果无法ping通,则检查网络
echo ping -n 3 -l 69 192.168.0.196 >> E:winpemountWindowsSystem32startnet.cmd
# 访问连接samba共享的目录(samba服务具体看后面)
echo net use z: \192.168.0.196share >> E:winpemountWindowsSystem32startnet.cmd
# 进入到samba服务目录中
echo z: >> E:winpemountWindowsSystem32startnet.cmd
# 进入win目录中(对应后文中的/smb/win的win)
echo cd win >> E:winpemountWindowsSystem32startnet.cmd
# 此步为最关键的一步,具体的自动化安装为该步,Autounttend.xml的制作方式后面详细说明
echo setup.exe /unattend:Autorunwin7.xml >> E:winpemountWindowsSystem32startnet.cmd
# 去除挂载
imagex /unmount E:winpemount /commit
# 拷贝修改后的winpe.wim文件
copy E:winpewinpe.wim E:winpeISOsourcesoot.wim
# 生成Win PE ISO镜像工具
oscdimg -n -bE:winpeetfsboot.com E:winpeISO E:winpewinpe_cobbler_amd64.iso

Cobbler服务端

1.上传ISO镜像到Cobbler Server端

2.导入ISO镜像到Cobbler Server端

# 将winpe_cobbler_amd64.iso镜像拷贝到Cobbler Server端
# 导入镜像
$ Cobbler distro add --name=windows7 --kernel=/var/lib/tftpboot/memdisk --initrd=/root/winpe_cobbler_amd64.iso --kopts="raw iso"

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

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

4.配置samba共享Windows ISO

4.1 安装samba服务
$ yum -y install samba
$ systemctl start smb && systemctl enable smb
4.2 配置共享
x
$ vim /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 = this is samba share directory 
path = /smb/   # 共享目录
directory mask = 0755
create mask = 0755 
guest ok = yes
writable = yes
# 更改配置文件,重启生效
$ systemctl restart smb
$ mkdir -p /smb/win
$ mkdir /mnt/win7
# 将WIN7的镜像挂载到/mnt/win7
$ mount -o loop,ro cn_windows_7_ultimate_x64_dvd_x15-66043.iso /mnt/win7
# 将镜像中的内容拷贝到samba的共享目录中
$ cp /mnt/win7/* /smb/win

此时我们已经完成了整个流程的一部分,接下来进行调试

本地测试

# 连接samba共享
net use z: \192.168.0.196share
# 进入samba目录
z:
# 进入到镜像目录
cd win 
# 此时目录中可以看到一个setup.exe文件。该文件就是安装win7的安装程序文件
setup.exe     # 可以看到如下图

win7

此时我们已经进入到了可以手动安装win7的界面,接下来说明自动化的关键步骤,也就是前面的Autorunwin7.xml

4.3 Autorunwin7.xml

一定要使用纯净版的ISO镜像,不然可能会出现各种各样的问题

参考资料1

参考资料2

打开AIK工具中的Windows 映像管理器

映像管理器

打开工具之后界面如下:

manager

此时我们将我们的win7镜像解压到一个目录中,然后通过 Windows system image manager工具,选择Windows 映像或编录文件,选择的文件为镜像解压的目录中的sources/install.wim文件,此时会弹出四个版本选择(这里的选择要对应我们后文中的选择,此次我们安装的是旗舰版,所以选择最后一个)

版本

选择完成之后,左下角会出现两个目录,一个ComponetsPackages,点开Compontes,里面会出现很多内容。

amd64

不要觉得很复杂看不懂,跟我一起制作完成一个,你就会基本了解,并且简单的阅读制作完成的xml文件,你也可以更加的理解之前的配置。

1.新建应答文件

新建应答文件

2.指定地区和语言选项
  • amd64_Microsoft-Windows-International-Core-WinPE

1

设置语言

2

设置安装windows时的语言

3

3.接受EULA
  • Microsoft-Windows-Setup

4

接受Eula,设置AcceptEula=true

5

4.选择镜像版本

6

设置Key为 /image/indexValue为 4

7

该值对应的是版本号,之前我们添加镜像的时候选择的是第四个旗舰版本,这里的4与之对应,也可以通过AIK的Tools工具进行查看。

imagex /info E:ISOwin7sourcesinstall.wim

8

这个镜像包含四个版本,我们往下翻,可以看到IMAGE INDEX="4" Ultimate ,确定我们的Value为4

9

5.配置磁盘

添加磁盘配置-1

DiskID是硬盘编号,从0开始,表示第一块硬盘

WillWipeDisk表示是否格式化硬盘

配置磁盘-2

Order表示硬盘的分区顺序,与后面添加磁盘符标签等时的Order要一致

Size表示分区大小

Type表示类型,这里设置为主分区

配置磁盘-3

添加磁盘配置-4

Active表示是否激活磁盘

Extend

Format表示磁盘格式为NTFS

Label表示标签,也就是磁盘的名字

Letter表示磁盘的盘符,这里设置为 C

Order与前面的对应

PartitionID分区ID,与后面设置的要一致

添加磁盘配置-5

添加磁盘配置-6

选择系统镜像的安装位置,磁盘ID为0,分区ID为1.与前面的设置对应

添加磁盘配置-7

6.设置用户名和计算机名

Microsoft-Windows-Shell-Setup

用户-1

DisplayName 显示的用户名

Group 用户组

Name 用户名

用户-2

用户-3

ComputerName 设置计算机名。 *表示随机生成

用户-4

7.设置密码

设置用户的密码,空字符串为无密码

密码

8.设置Windows密钥

随便百度一个与你安装版本对应的密钥即可,不一定是要能激活的秘钥

6K2KY-BFH24-PJW6W-9GK29-TMPWP

激活

9.网络

Micrisift-Windows-Shell-Setup

OOBE-1

NetworkLocation=work表示工作网络

ProtecYourPC=3表示以后询问我

OOBE-2

具体界面展示如下:

10.时区

TimeZone : China Standard Time

时区

至此,自动应答文件创建结束,保存即可

保存

4.4 参考
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>zh-CN</UILanguage>
</SetupUILanguage>
<InputLocale>zh-CN</InputLocale>
<SystemLocale>zh-CN</SystemLocale>
<UILanguage>zh-CN</UILanguage>
<UserLocale>zh-CN</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UserData>
<ProductKey>
<Key>87VT2-FY2XW-F7K39-W3T8R-XMFGF</Key>
</ProductKey>
<AcceptEula>true</AcceptEula>
</UserData>
<ImageInstall>
<OSImage>
<InstallFrom>
<MetaData wcm:action="add">
<Key>/image/index</Key>
<Value>4</Value>
</MetaData>
</InstallFrom>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>1</PartitionID>
</InstallTo>
</OSImage>
</ImageInstall>
<DiskConfiguration>
<Disk wcm:action="add">
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Size>30000</Size>
<Type>Primary</Type>
</CreatePartition>
</CreatePartitions>
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Extend>false</Extend>
<Format>NTFS</Format>
<Label>OS</Label>
<Letter>C</Letter>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value>UABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
<Group>Administrator</Group>
<Name>XLL</Name>
<DisplayName>XLL</DisplayName>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<OOBE>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
</OOBE>
<TimeZone>China Standard Time</TimeZone>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>*</ComputerName>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:e:/iso/win7/sources/install.wim#Windows7 64位旗舰版" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

至此,我们查看完XML文件,其实大部分都是可以看懂,你可以进一步深入了解,自定义更多功能

4.5 可能出现的问题
  1. 运行setup.exe显示拒绝访问
#需要在smb共享的目录中,给予setup.exe权限
$ chmod 666 /smb/win/setup.exe
  1. 在执行setup.exe AutorunWin7.xml时报错Error: The file 'autorun.dll' could not be loaded or is corrupt. Setup cannot continue: Error code is [0x7E]
# 很大一部分可能性是因为镜像不是纯净版,哪怕你这个镜像你自己单独安装没有问题,但是这里这里就是不行
Windows 7 Ultimate (x64) - DVD (Chinese-Simplified) 
文件名:cn_windows_7_ultimate_x64_dvd_x15-66043.iso
SHA1:4A98A2F1ED794425674D04A37B70B9763522B0D4
文件大小:3.11GB
下载地址:ed2k://|file|cn_windows_7_ultimate_x64_dvd_x15-66043.iso|3341268992|7DD7FA757CE6D2DB78B6901F81A6907A|/
  1. 一直卡在 setup.exe /unattend.Autoattend.xml或者启动安装程序中

报错-2

出现这种情况可能是你的配置文件出现了错误,或者你缺少了一些必要的选项

免责声明:文章转载自《3.Cobbler自动化安装Windows7》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java中实现十进制数转换为二进制的三种方法利用PHPMailer 来完成PHP的邮件发送下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

koa 搭建模块化路由/层级路由

搭建node项目目录以及基本的文件 初始化package.json文件 执行下面命令生成package.json文件 npm init --yes 创建项目目录 创建路由目录routes,存放静态资源目录public,视图目录views 安装项目所需的依赖 "dependencies": { "art-template": "^4.12.2",...

【安卓开发】为什么不能往Android的Application对象里存储数据

在一个App里面总有一些数据需要在多个地方用到。这些数据可能是一个 session token,一次费时计算的结果等。通常为了避免activity之间传递对象的开销 ,这些数据一般都会保存到持久化存储里面。 有人建议将这些数据保存到 Application 对象里面,这样这些数据对所有应用内的activities可用。这种方法简单,优雅而且……完全扯淡。...

C++静态库与动态库(比较透彻)

这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。 什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存...

dos文件(夹)复制命令:copy和xcopy

1.copy命令 将一份或多份文件复制到另一个位置。 COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+ ...]] [destination [/A | /B]] source 指定要复制的文件。 /A 表示一个 ASCI...

NPM 和 Yarn 使用国内淘宝镜像源提升各依赖安装速度

因受国内的环境影响,导致了很多速度起不来,所以需要安装国内镜像。 配置 NPM 的淘宝镜像源加速 打开poweshell或cmd工具,输入以下命令: npm config set registry https://registry.npm.taobao.org npm config set disturl https://npm.taobao.org/di...

Azkaban简介和使用

概述 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序、hive脚本等 l 各任务单元之间存在时间先后及前后依赖关系 l 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行; 例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天...