zoukankan      html  css  js  c++  java
  • 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: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/index Value为 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

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

  • 相关阅读:
    D3D资源管理
    地形有必要做LOD吗?
    J2SE IO编程
    J2SE 枚举类型 [enum]
    Struts2 DefaultAction (默认Action)
    J2SE 内部类 [Inner]
    J2SE 断言 [Assert]
    JavaScript
    SCM_CVS_SVN 版本控制器
    Struts2 IncludeModules(包含 <include file="login.xml" />)
  • 原文地址:https://www.cnblogs.com/xll970105/p/12409194.html
Copyright © 2011-2022 走看看