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

出現這種情況可能是你的配置文件出現了錯誤,或者你缺少了一些必要的選項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM