Linux – PXEBoot WinPE (WinXP)

Loading

Windows 要如何透過 Linux PXEBoot 來安裝作業系統呢!! 答案就是靠 WinPE 來安裝.

下面適用於 WinXP 所產生的 WinPE ,新版的會產生錯誤訊息如下:
pxe003
“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

  1. i386/startrom.n1_
  2. i386/setupldr.ex_
  3. i386/ntdetect.com
  4. 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)

  1. 自動引用通知: WinPE + RIS / WDS | Benjr.tw

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料