Windows 要如何透過 Linux PXEBoot 來安裝作業系統呢!! 答案就是靠 WinPE 來安裝.
下面適用於 WinXP 所產生的 WinPE ,新版的會產生錯誤訊息如下:
“INF file txtsetup.sif is corrupt or missing, status 2. Setup cannot continue. Press any key to exit.
新版的 WinPE 架設,需使用 Windows ADK 詳細步驟請參考 https://benjr.tw/917
下載相關檔案
第一步就是下載 Windows PE , Microsoft 提供的 WinPE 2004 ,是基於 Windows XP SP2 的 WinPE,其中還包含了一些製作光碟的工具.
下載地址:http://oem.microsoft.com/downloads/worldwide/
因為我們要修改 WinPE.ISO 的內容,所以我們還需要一些 tools.通常在 /winpe 目錄下可以找到.但是如果你用的是較舊的版本沒有提供修改光碟片的相關工具,還需要下載下面的工具回來使用.
下載:Windows Automated Installation Kit (WAIK) – 目前找不到 WinXP 版的 WinPE
http://www.microsoft.com/downloads
下載後就可以開始我們的工作了.用 winimage 解開後在跟目錄下執行 STARTCD.EXE 並點選 “Windows AIK 安裝程式(W)”
kernel
需要 Windows 2003 (WinXP 也可以)裡面的幾個檔案,這相當於 windows 的 kernel
- i386/startrom.n1_
- i386/setupldr.ex_
- i386/ntdetect.com
- winnt.sif
因為上面的東西都是壓縮檔所以我們還要去下載一個 Tool “cabextract” http://www.cabextract.org.uk/ 才能解壓縮.
[root@benjr ~]# cabextract /media/cdrom/i386/startrom.n1_ [root@benjr ~]# mv startrom.n12 startrom.0 [root@benjr ~]# cabextract /media/cdrom/i386/setupldr.ex_ [root@benjr ~]# mv setupldr.exe NTLDR [root@benjr ~]# cp /media/cdrom/i386/NTDETECT.COM ntdetect.com
要特別注意大小寫問題.下面這個檔是需要手動編輯的
[root@benjr ~]# vi winnt.sif [SetupData] BootDevice = “ramdisk(0)" BootPath = “\i386\system32\" OsLoadOptions = “/noguiboot /fastdetect /minint /rdexportascd /rdpath=PE86.ISO"
並將開機所需的檔案複製到 “/tftpboot/ 目錄下
[root@benjr ~]# cp startrom.0 /tftpboot/ [root@benjr ~]# cp NTLDR /tftpboot/ [root@benjr ~]# cp ntdetect.com /tftpboot/ [root@benjr ~]# cp winnt.sif /tftpboot/
tftp server 的設定
編輯 “/etc/xinetd.d/tftp” 並將 server 開啟
[root@benjr ~]# vi /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 CPUS = 100 2 flags = IPv4 }
將 disable 設定成為 no 即可.或者你可以用下面的指令將 tftp 功能開啟
[root@benjr ~]# chkconfig tftp on
啟動 tftp servicee
[root@benjr ~]# service xinetd restart
PXE 設定檔
編輯 /tftpboot/linux-install/pxelinux.cfg/default (這個檔案定義了與PXE的Clients可以經由按鍵來選擇安裝的系統)
[root@benjr ~] # vi /tftpboot/linux-install/pxelinux.cfg/default default 0 timeout 2000 F1 msgs/boot.msg prompt 1 display msgs/boot.msg label 0 localboot 1 label winpe kernel startrom.0
DHCP Server
編輯 /etc/dhcpd.conf
[root@benjr ~]# vi /etc/dhcpd.conf #iddns-update-style interim; ddns-update-style none; ignore client-updates; allow booting; allow bootp; class “pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = “PXEClient"; next-server 192.10.0.1; filename “linux-install/pxelinux.0″; } subnet 192.10.0.0 netmask 255.255.255.0 { range 192.10.0.150 192.10.0.180; option broadcast-address 192.10.0.255; option routers 192.10.0.1; option subnet-mask 255.255.255.0; }
Samba
因為我們主要是透過 SMB(DOS 下使用 a:\net use )的方式來接網路磁碟機所以我們還要將這個目錄透過 samba 的方式分享出來。
[root@unsvr root]# vi /etc/samba/smb.conf [global] … netbios name = ntinstall guest account = guest security = user … [install] comment = Unattended writable = no locking = no path = /var/ftp/install guest ok = yes valid users = user1
系統預設使用 \\ntinstall\install 連接網路磁碟,帳號和密碼皆為 guest。因為 net use 一定要指定名稱,所以我們的名稱解析可以透過 DNS 或 netbios name 來處理。所以我們要開始建立 guest 帳號密碼至 samba server,密碼存在 /etc/samba/smbpasswd ,但使用者必先存在於 /etc/passwd
[root@unsvr root]# adduser guest [root@unsvr root]# passwd guest [root@unsvr root]# smbpasswd -a guest New SMB password: Retype new SMB password: Added user guest. [root@unsvr root]# service smb restart Starting SMB services: [ OK ] Starting NMB services: [ OK ]
Automated Installations for Linux via WDS
Linux PXE 可以安裝 Windows ,反過來也是可以嗎?的確有的.這個網站介紹了透過 WDS 來建構 Linux PXE 的環境.
PXE and Kickstart, Automated Installations for Linux via WDS
One thought on “Linux – PXEBoot WinPE (WinXP)”