3.Cobbler自动化安装Windows7

<!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:\winpe\winpe.wim文件到E:\winpe\mount目录下,主要是挂载完成之后,方便我们进行修改。
imagex /mountrw E:\winpe\winpe.wim 1 E:\winpe\mount
 

12

 

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

7

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

 
 
 
 
 
 
 
 
imagex /info E:\ISO\win7\sources\install.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

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

posted @ 2020-03-04 14:09  情浅凉心  阅读(1611)  评论(0编辑  收藏  举报