在前幾章節,我們準備了samba 來跟 MS Windows系統讓Linux與MS Windows檔案系統有了相互的交流,且利用 tftp與pxe server 來讓Linux能透過網路安裝。接著筆者要說明,如何在CentOS Linux Server 環境下,讓MS Windows亦能透過 pxe 來網路安裝,但僅限於使用 Legacy Mode(BIOS)開機。
首先請先使用指令 su - ,轉換成root,並利用yum 來安裝Windows安裝所需要的軟體,如解 .cab檔的cabextract 與 genisoimage 與 wimtool(for Windows Imaging format ),並需要製作windows iso之套件。
(圖1)
前往網站
https://centos.pkgs.org/6/slce-x86_64/ntfs-3g-2011.4.12-5.el6.x86_64.rpm.html
https://centos.pkgs.org/6/nux-misc-x86_64/libwim9-1.5.0-1.x86_64.rpm.html
https://centos.pkgs.org/6/nux-misc-x86_64/wimtools-1.5.0-1.x86_64.rpm.html
(圖2)
並可利用wget 直接下載所需之 wimtool套件,接著產生所需要的安裝檔案與掛載samba分享給pxe安裝時所需要資料夾,如圖3
(圖3)
下載 Windows Automated Installation Kit (https://www.microsoft.com/en-US/download/details.aspx?id=5753),此為Windows 7 PE ,驅動程式較少
或利用wget 下載
https://download.microsoft.com/download/0/6/1/0615B9E2-D9DA-4DB8-93DC-B141E290B168/KB3AIK_TW.iso
https://download.microsoft.com/download/8/E/9/8E9BBC64-E6F8-457C-9B8D-F6C9A16E6D6A/KB3AIK_EN.iso
或
windows7 sp1 AIK
wget https://download.microsoft.com/download/2/7/5/275A07FD-1F33-42BA-828B-7119CE056E71/waik_supplement_zh-tw.iso
wget https://download.microsoft.com/download/0/4/C/04C805CC-4C04-4D76-BE80-7D67B951CF73/waik_supplement_en-us.iso
解開後,全覆蓋到以下路徑內之檔案
C:\Program Files\Windows AIK\Tools\PETools
即可
掛載下載的KB3AIK之iso檔至 /mnt/waik資料夾,如圖
(圖4)
請輸入以下指令
mount -o loop,ro KB3AIK_EN.iso /mnt/waik
並利用mkwinpeimg指令製作 winpe 開機
(圖5)
在MS Windows 環境下安裝 Windows 7 AIK,並製作windows pe,可下載KB3AIK_檔案後,利用7zip解開,並執行startCD.exe,接著利用管理者權限開啟部署工具命令提示字元,輸入以下指令:
copype am64 c:\win7pe_x64
copy c:\Program Files\Windows AIK\Tools\PETools\amd64\winpe.wim c:\win7pe_x64\ISO\Sources\Boot.wim
# 記得要編輯 Boot.wim 內的\system32\startnet.cmd 來自動掛載並啟動setup.exe
copy c:\Program Files\Windows AIK\Tools\amd64\imagex.exe c:\win7pe_x64\ISO\
若無需加入網路卡驅動或USB3驅動的話
接著製作啟動image
oscdimg -n -bc:\win7pe_x64\etfsboot.com c:\win7pe_x64\ISO c:\win7pe_x64.iso
此時 C: 下就會產生 win7pe_x64.iso之檔案
Windows 10 版本可以從 https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install,下載後安裝,選擇部署工具與Windows預先安裝環境。
如圖
(圖6)
安裝完成後,開啟程式集 -> Windows Kits -> Windows ADK -> 部署與映像工具環境(按滑鼠右鍵->管理者權限執行)
利用指令 copype 將winpe相關程式複製到另一個資料夾內
copype amd64 c:\win10pe_x64
接著利用指令 makewinpemedia 產生 winpe 的 iso
makewinpemedia /ISO c:\win10pe_x64 c:\win10pe_x64.iso
接著編輯 /etc/samba/smb.conf 開啟 samba 對 guest 的磁碟分享,加入以下
(https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server)
[global]
map to guest = Bad user
usershare allow guests = yes
(圖7)
修改後重新啟動smb
service smb restart
接著掛載 windows10 iso 檔至 /var/lib/tftpboot/windows10
mount -o loop,ro window10.iso /var/lib/tftpboot/windows10
將/usr/share/syslinux/memdisk 連結至 /var/lib/tftpboot/memdisk
ln -s /usr/share/syslinux/memdisk /var/lib/tftpboot/memdisk
或從 /usr/share/syslinux/memdisk 複製
編輯 /var/lib/tftpboot/pxelinux.cfg/default ,新增如以下
(圖8)
重啟 xinetd
service xinetd restart
----------------------------------
client端
1. BIOS 選擇由 PXE 網路啟動
(圖9)
2. 利用指令掛載網路磁碟機為z槽:
windows 7 PE 可直接用 guest登入
net use z: \\${ip}\windows10
或
net use z: \\${ip}\windows7
windows 10 PE 必須連接 SAMBA 2.0以上協定,並使用帳密登入
net use z: \\${ip}\windows10 /user:${account} ${password}
windows 10 會出現 error code 58 主要因為安全性問題,不能用guest登入,必須使用參數/user 後面接上帳號密碼
3. 執行 z:\setup.exe
以上指令我們可利用修改 winpe 原始檔media\sources\boot.wim 內(7-zip亦可直接開啟)的windows\system32\startnet.cmd 來建立 scripts,再重建立winpe 開機 iso,如下:
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-mount-and-customize#addstartupscript
以上重新整理後選單如下
(圖10)
pxelinux.cfg/default 內容如下圖:
(圖11)
最後順便整合了台灣的Clonezilla 當救援 ,EZGO X4當Live OS等。
隨著kernel檔案initrd的不同,後面給的參數也不同,windows 系列則利用memdisk與修改過的windows pe(如windows 7 必須使用dism加入較新的網路卡驅動程式),修改start.cmd使其自動執行至網路芳鄰之setup.exe
參考至
https://docs.j7k6.org/windows-7-pxe-installation/
首先請先使用指令 su - ,轉換成root,並利用yum 來安裝Windows安裝所需要的軟體,如解 .cab檔的cabextract 與 genisoimage 與 wimtool(for Windows Imaging format ),並需要製作windows iso之套件。
(圖1)
前往網站
https://centos.pkgs.org/6/slce-x86_64/ntfs-3g-2011.4.12-5.el6.x86_64.rpm.html
https://centos.pkgs.org/6/nux-misc-x86_64/libwim9-1.5.0-1.x86_64.rpm.html
https://centos.pkgs.org/6/nux-misc-x86_64/wimtools-1.5.0-1.x86_64.rpm.html
(圖2)
並可利用wget 直接下載所需之 wimtool套件,接著產生所需要的安裝檔案與掛載samba分享給pxe安裝時所需要資料夾,如圖3
(圖3)
下載 Windows Automated Installation Kit (https://www.microsoft.com/en-US/download/details.aspx?id=5753),此為Windows 7 PE ,驅動程式較少
或利用wget 下載
https://download.microsoft.com/download/0/6/1/0615B9E2-D9DA-4DB8-93DC-B141E290B168/KB3AIK_TW.iso
https://download.microsoft.com/download/8/E/9/8E9BBC64-E6F8-457C-9B8D-F6C9A16E6D6A/KB3AIK_EN.iso
或
windows7 sp1 AIK
wget https://download.microsoft.com/download/2/7/5/275A07FD-1F33-42BA-828B-7119CE056E71/waik_supplement_zh-tw.iso
wget https://download.microsoft.com/download/0/4/C/04C805CC-4C04-4D76-BE80-7D67B951CF73/waik_supplement_en-us.iso
解開後,全覆蓋到以下路徑內之檔案
C:\Program Files\Windows AIK\Tools\PETools
即可
掛載下載的KB3AIK之iso檔至 /mnt/waik資料夾,如圖
(圖4)
請輸入以下指令
mount -o loop,ro KB3AIK_EN.iso /mnt/waik
並利用mkwinpeimg指令製作 winpe 開機
(圖5)
在MS Windows 環境下安裝 Windows 7 AIK,並製作windows pe,可下載KB3AIK_檔案後,利用7zip解開,並執行startCD.exe,接著利用管理者權限開啟部署工具命令提示字元,輸入以下指令:
copype am64 c:\win7pe_x64
copy c:\Program Files\Windows AIK\Tools\PETools\amd64\winpe.wim c:\win7pe_x64\ISO\Sources\Boot.wim
# 記得要編輯 Boot.wim 內的\system32\startnet.cmd 來自動掛載並啟動setup.exe
copy c:\Program Files\Windows AIK\Tools\amd64\imagex.exe c:\win7pe_x64\ISO\
若無需加入網路卡驅動或USB3驅動的話
接著製作啟動image
oscdimg -n -bc:\win7pe_x64\etfsboot.com c:\win7pe_x64\ISO c:\win7pe_x64.iso
此時 C: 下就會產生 win7pe_x64.iso之檔案
Windows 10 版本可以從 https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install,下載後安裝,選擇部署工具與Windows預先安裝環境。
如圖
(圖6)
安裝完成後,開啟程式集 -> Windows Kits -> Windows ADK -> 部署與映像工具環境(按滑鼠右鍵->管理者權限執行)
利用指令 copype 將winpe相關程式複製到另一個資料夾內
copype amd64 c:\win10pe_x64
接著利用指令 makewinpemedia 產生 winpe 的 iso
makewinpemedia /ISO c:\win10pe_x64 c:\win10pe_x64.iso
接著編輯 /etc/samba/smb.conf 開啟 samba 對 guest 的磁碟分享,加入以下
(https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server)
[global]
map to guest = Bad user
usershare allow guests = yes
(圖7)
修改後重新啟動smb
service smb restart
接著掛載 windows10 iso 檔至 /var/lib/tftpboot/windows10
mount -o loop,ro window10.iso /var/lib/tftpboot/windows10
將/usr/share/syslinux/memdisk 連結至 /var/lib/tftpboot/memdisk
ln -s /usr/share/syslinux/memdisk /var/lib/tftpboot/memdisk
或從 /usr/share/syslinux/memdisk 複製
編輯 /var/lib/tftpboot/pxelinux.cfg/default ,新增如以下
(圖8)
重啟 xinetd
service xinetd restart
----------------------------------
client端
1. BIOS 選擇由 PXE 網路啟動
(圖9)
2. 利用指令掛載網路磁碟機為z槽:
windows 7 PE 可直接用 guest登入
net use z: \\${ip}\windows10
或
net use z: \\${ip}\windows7
windows 10 PE 必須連接 SAMBA 2.0以上協定,並使用帳密登入
net use z: \\${ip}\windows10 /user:${account} ${password}
windows 10 會出現 error code 58 主要因為安全性問題,不能用guest登入,必須使用參數/user 後面接上帳號密碼
3. 執行 z:\setup.exe
以上指令我們可利用修改 winpe 原始檔media\sources\boot.wim 內(7-zip亦可直接開啟)的windows\system32\startnet.cmd 來建立 scripts,再重建立winpe 開機 iso,如下:
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-mount-and-customize#addstartupscript
以上重新整理後選單如下
pxelinux.cfg/default 內容如下圖:
最後順便整合了台灣的Clonezilla 當救援 ,EZGO X4當Live OS等。
隨著kernel檔案initrd的不同,後面給的參數也不同,windows 系列則利用memdisk與修改過的windows pe(如windows 7 必須使用dism加入較新的網路卡驅動程式),修改start.cmd使其自動執行至網路芳鄰之setup.exe
參考至
https://docs.j7k6.org/windows-7-pxe-installation/
留言
張貼留言
Thank you for your feedback.