Tutorial: Installing Windows with cobbler (cobbler安裝Windows)html
Windows系統的自動安裝須要用到Win PE工具。流程以下:linux
大體是上面四個過程,接下來具體說明相應配置。windows
定製Win PE工具:bash
定製Win PE工具的目的是爲了在經過PXE方式啓動的客戶端上運行一個Windows預安裝環境(至關於linux的initrd.img和vmlinuz,畢竟安裝系統相似於安裝軟件,總得開機才能安裝,「開機」則須要運行系統,這個系統就是Win PE。),而且使得Windows預安裝環境可以自動執行某些咱們須要的動做。服務器
Win PE的製做微軟官方提供有相應的工具,該工具叫作:Windows AIK。咱們須要使用該工具來定製Win PE工具,能夠從這裏下載:適用於 Windows® 7 的 Windows® 自動安裝工具包 (AIK)。網絡
下載以後,解壓安裝,以下圖:工具
安裝完畢後,啓動該工具來定製Win PE鏡像,以下圖:oop
定製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端中。也是下面的三個流程
下面是具體配置:
將 winpe_cobbler_amd64.iso 鏡像拷貝至 Cobbler Server 服務器/root/目錄下,但無需掛載。
cobbler distro add --name=windows7 --kernel=/var/lib/tftpboot/memdisk --initrd=/root/winpe_cobbler_amd64.iso --kopts="raw 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:點此下載
安裝過程圖示: