Pxelinuxでubuntuサーバーをセットアップしようとしているので、PXEを使用してWindowsPEを起動できます。クライアントマシンでは、pxelinux自体が機能していることがわかりますが、次の画面は次のとおりです。
これが私がしたことです:
ステップ1:サーバーにtftpd-hpa
とdhcp3
をインストールしました。サーバーは新しいubuntuサーバーx86仮想マシンです。静的IPは192.168.26.0
です。 Sambaサーバーがインストールされています。
dhcpd.conf
には
subnet 192.168.26.0 netmask 255.255.255.0 {
range 192.168.26.10 192.168.26.40;
filename "pxelinux.0";
next-server 192.168.26.0;
}
TFTPとDHCPが機能することを確認しました。
ステップ2:pxelinux.0
を buntuリポジトリ からダウンロードしました。それをtftpbootディレクトリに置き、次の内容でpxelinux.cfg/default
を作成しました。
DEFAULT winpe
Prompt 0
TIMEOUT 300
MENU TITLE PXE
LABEL winpe
MENU LABEL Windows PE
KERNEL Boot/pxeboot.0
Pxeboot.0(-> pxeboot.com)の代わりにWdsnbp.0(-> Wdsnbp.com)を使用してみましたが、違いはありませんでした。
後でubuntuオプションを使って本物のメニューを作りたいです。
ステップ3: Windows 7用のWindows自動インストールキット をダウンロードしてインストールし、新しいWindows 7 x64vmにインストールしました。
ダウンロードに付属のWAIK.chm
ファイルにあるこれらの手順に従いました。短縮版:
ファイルなどのコピー:
copype.cmd x86 c:\winpe_x86
X86winpeイメージを提供したいと思います。
imagex /mountrw C:\winre_x86\winpe.wim 1 C:\winpe_x86\mount
Net Use y: \\192.168.26.0\TFTPRoot
y:
md Boot
cd \temp\Windows\Boot\PXE
copy c:\winpe_x86\mount\Windows\Boot\PXE\*.* y:\Boot
copy c:\Program Files\WAIK\Tools\PETools\x86\boot\boot.sdi y:\Boot
Imagex /unmount C:\winpe_x86\mount
copy c:\winpe_x86\winpe.wim y:\Boot\boot.wim
BCDEditの使用法:
Bcdedit -createstore c:\BCD
Bcdedit -store c:\BCD -create {ramdiskoptions} /d “Ramdisk options”
Bcdedit -store c:\BCD -set {ramdiskoptions} ramdisksdidevice boot
Bcdedit -store c:\BCD -set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
Bcdedit -store c:\BCD -create /d “MyWinPE Boot Image” /application osloader
guid1は、前のコマンドから返されたguidです。
Bcdedit -store c:\BCD -set {guid1} systemroot \Windows
Bcdedit -store c:\BCD -set {guid1} detecthal Yes
Bcdedit -store c:\BCD -set {guid1} winpe Yes
Bcdedit -store c:\BCD -set {guid1} osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
Bcdedit -store c:\BCD -set {guid1} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
Bcdedit -store c:\BCD -create {bootmgr} /d “Windows BootManager” /inherit {dbgsettings}
Bcdedit -store c:\BCD -set {bootmgr} timeout 30
Bcdedit -store c:\BCD -displayorder {guid1}
copy c:\BCD \\server\TFTPRoot\Boot
BCDEditは、各操作が成功したと報告しました。 BCD
ファイルは大文字です。
ステップ4:いくつかのシンボリックリンクを作成しました( このドイツ語のソース からのアドバイス):
ln -s Boot boot
ln -s Boot/bootmgr.exe bootmgr.exe
ln -s Boot/pxeboot.n12 Boot/pxeboot.0
残念ながら、そのソースはWindowsVistaとWindowsPE 2.0を扱っていますが、私はWindows7とWindowsPE 3.0を使用していますが、これらのリンクは害を及ぼすことはないと思います。 pxeboot.com
の代わりにpxeboot.n12
を使用しても、問題は解決しません。唯一の違いは、起動するにはF12を押す必要があることです。システムが少なくとも基本レベルで機能していることを示します(つまり、少なくともpxeboot.n12
とbootmgr.exe
をロードできます)。
また、パスセパレータの問題を回避するために、このremap-ruleを/etc/tftp_remap.conf
に追加しました。
rg \\ /
私は考えが足りません。 BCDを数回再作成しました。また、WAIKフォルダーにあるBCDを使用してみましたが、成功しませんでした。残念ながら、このエラーをグーグルで検索しても、関係のない情報しか得られませんでした(つまり、既存のWindowsインストールでこの問題を修復する方法)。
それはかなり恥ずかしい間違いであることが判明しました。
/etc/default/tftp.conf
内で、間違った構文を使用して/etc/tft_remap.conf
ファイルをポイントしました。 正しいファイルの内容は次のとおりです。
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -l -v -m /etc/tftp-remap.conf"