adatsui 发表于 2011-4-3 09:41:44

[7/4更新]gPXE + iSCSi sanboot XP



最初貼的用 Hanewin 做 DHCP , 因不懂設定 option 175 使其 設定 gpxe 時 set keep-san 1, 終於找到了一款會用的了.

DHCP 轉用 iptools 的 DHCP , 下載及進一步資料 http://erwan.l.free.fr/.


實機 sanboot XP  youtube 視頻.
http://www.youtube.com/watch?v=H_dRz2O4MWc









以下的不要看了, 除非是一定要用 Hanewin , 或是要手動輸入 iscsi target, 或是會怎樣於 Hanewin 設定 175.

找到了 , hanewin 設了  Root Path 仍然不自動 sanboot 的原因了. 把 keep-san 1 以 option 175 加入便成  , hex 值是 08 01 01 FF.   http://www.etherboot.org/wiki/sanboot/win2k8_iscsi_install


5-Apr , 下圖輸入也許該是  8 1 1 255, 但也是沒用.
終於想起上次沒有人手干預下能自動 sanboot 了. 是因為生成 gpxe 時加入了 embedded script
#!gpxe
dhcp net0
set keep-san 1
sanboot iscsi:my.ip::::iqn.xyz

即是把 ip 及 target name 寫死了在 .gpxe 內. 這不是我想要的.



下圖內輸入框內容打錯了, 該是 08 01 01 FF 才對




hanewin 設定 batch:

@echo off
title HaneWindhcp 服務器安裝 by chenall@366840202.cn
setlocal
cd /d "%~dp0"
:: for /f "usebackq tokens=2 delims=[]" %%i in (`ping /n 1 %Computername%`) do set myip=%%i
:: for /f "tokens=1-3,4 delims=." %%i in ("%myip%") do set mynet=%%i.%%j.%%k

:: dont need write to file, but too many ipconfig /all , outpout to file and read. !
:: for /f "delims=: tokens=2" %%a in ('ipconfig /all^|find /i "Default Gateway"') do set default_gateway=%%a

ipconfig /all > %temp%\ipcfg_out.txt

for /f "delims=: tokens=2" %%a in ('find /i "IP Address" %temp%\ipcfg_out.txt') do set IP_Address=%%a
set IP_Address=%IP_Address: =%

for /f "tokens=1-3,4 delims=." %%i in ("%IP_Address%") do set My_IP_Range=%%i.%%j.%%k

for /f "delims=: tokens=2" %%a in ('find /i "Default Gateway" %temp%\ipcfg_out.txt') do set default_gateway=%%a
set default_gateway=%default_gateway: =%
for /f "delims=: tokens=2" %%a in ('find /i "DNS Suffix Search List" %temp%\ipcfg_out.txt') do set DNS_Suffix_Search_List=%%a
set DNS_Suffix_Search_List=%DNS_Suffix_Search_List: =%
for /f "delims=: tokens=2" %%a in ('find /i "subnet Mask" %temp%\ipcfg_out.txt') do set Subnet_Mask=%%a
set Subnet_Mask=%Subnet_Mask: =%
for /f "delims=: tokens=2" %%a in ('find /i "DHCP Server" %temp%\ipcfg_out.txt') do set DHCP_Server=%%a
set DHCP_Server=%DHCP_Server: =%
for /f "delims=: tokens=2" %%a in ('find /i "DNS Server" %temp%\ipcfg_out.txt') do set DNS_Server=%%a
set DNS_Server=%DNS_Server: =%
for /f "delims=: tokens=2" %%a in ('find /i "Primary WINS Server" %temp%\ipcfg_out.txt') do set Primary_WINS_Server=%%a
set Primary_WINS_Server=%Primary_WINS_Server: =%


Echo SubnetMask=%Subnet_Mask%
Echo BaseIP=%my_ip_range%.100
Echo NextIP=%ip_address%
Echo GatewayIP=%default_gateway%
Echo DNSName=%DNS_Suffix_Search_List%
Echo DNS1IP=%DNS_Server%
Echo WINS1IP=%Primary_WINS_Server%
Echo InterfaceIP=%ip_address%

[ 本帖最后由 adatsui 于 2011-4-7 06:23 编辑 ]

ones 发表于 2011-4-3 16:52:40

不怎么了解gPXE,客户端怎么启动?

chenall 发表于 2011-4-3 17:52:30

看起来好像没有什么问题呀。我晚上看能不能抽空再测试一下。

chenall 发表于 2011-4-3 21:59:05

根据我的测试结果,只有0.9.8以下的版本可以正常使用.所以请使用0.9.7的GPX再测试一下.

0.9.8 - 1.0.1都不行.不知为什么,而且发现这几个版本文件都比较大(使用all-drivers)版本.

0.9.8的版本比0.9.7的版本大于50KB以上,不知改了什么东西...

adatsui 发表于 2011-4-3 22:39:58

先謝謝. 我試試.

[ 本帖最后由 adatsui 于 2011-4-3 22:41 编辑 ]

adatsui 发表于 2011-4-3 22:44:28

客機
硬盤單分區, 以方便後期的工作, 我分了個 4G 的分區.
如常安裝 windows, 這次用的是 XP sp3. 沒精簡的.
安裝 MS 的 iSCSI initiator , initiator 有2種, 要安裝 boot 的哪個 http://download.microsoft.com/do ... ild3825-x86chk.exe.
執行 etherboot.org 的 sanbootconf.msi , http://www.etherboot.org/wiki/sanboot/winnt_sanbootconf. 主要似是把 ixxx, 網絡服務提前啟動. 不太清楚, 不做這步驟 sanboot 不了.
重啟後便可把這個新裝 xp 的分區做成 image 給 starwind 用.


伺服器
安裝 MS 的 iSCSI initator, 不帶的一種 http://www.microsoft.com/downloa ... f825&displaylang=en, x86 電腦的下 x86版本便成.
安裝 Starwind , http://www.starwindsoftware.com/. 有試用版. 
DHCP 用 hanewin 便成.設定見 #1樓 啟動文件用 gpxe.pxe http://kernel.org/pub/software/utils/boot/gpxe/ , 最新消息是先試用 0.97 版本 http://kernel.org/pub/software/utils/boot/gpxe/ , 先別用較 新版本. 

[ 本帖最后由 adatsui 于 2011-4-3 22:48 编辑 ]

adatsui 发表于 2011-4-3 22:50:19

把客機的 windows 分區, 抄給 Starwind 用.

客機再次啟動入XP後,我們先查看分區大小. 見 diskgenius 的一張圖.


單看 檔案總管, 分區的大小少了 4 個 sector , 不知何解, 但也許是成的, 反正抄少了的是最未的數個 sector.

8401932 個扇區 x 512 = 4301789184 bytes.
我們要的便是這分區. 而這個盤其它的空們沒用. 反正用不著.
此時用 dd http://www.chrysocome.net/dd 把它抄到伺服器的機內, 伺服器分享個文件夾, map 做一個盤便抄吧.

用 dd --list 查看分區及硬盤信息, 因為只得1個盤, 並且只分一個區所以下列語句使成.
dd bs if=\\?\harddisk0\partition0 of m:\sanimage1.img bs=25088 count=171468

bs=25088 , 即是 49 sector
count= 171468, 171468 x 25088 = 4301789184 bytes即是分區大小.

bs=1 也成, 一個個 sector 抄, count 用 8401932 便是.

這個文件成後, 大小剛好與物理硬盤該分區一樣.

[ 本帖最后由 adatsui 于 2011-4-3 23:24 编辑 ]

adatsui 发表于 2011-4-3 23:31:09

伺服器安裝 Starwind 時要先安裝 iSCSI initiator.
安裝 iSCSI initiator 時請先確認 Distributed Transaction Coordinator 服務是處於 "自動" 啟動狀能, 否則手動更改它.

使用 add host 功能, 甚麼也用默認便可. 
接著按 connect 鍵, default 密碼 starwind. 
為這個 host 加個 target ,  點著 targets 右鍵 add targets
Target Alias : vpcxp
把下一行的 target name  check box 選了, 可改全名. 改個易記點的. 只要是 iqn. 開始的便成, 叫做 iqn.vpcxp吧. 把默認給你改的 iqn.2008........ 一填的改短些.

接下的畫面選 harddisk , basic virtual , image file device, mount existing virtual disk, 選我們剛用 dd 做的 image 文件, 如果 用 VPC 等先行試驗, 把哪個 vhd 文件直接改名做 .img 便成. 

下面圖是 vpc 以 sanboot 啟動, 我們看到硬盤只得 1 個 , 是 "Rock Imagefile SCSI Disk Device" . 

[ 本帖最后由 adatsui 于 2011-4-3 23:53 编辑 ]

chenall 发表于 2011-4-4 12:32:43

把 keep-san 1 以 option 175 加入便成, hex 值是 08 01 01 FF.

加入了这个设置之后.0.9.8的版本还是一样不能正常使用.

adatsui 发表于 2011-4-4 21:27:03

回复 #9 chenall 的帖子

正在確認該使用哪個版本號才對, 我在哪裡 generate 了不同的版本, 有些選了Customize. 就像是復式配搭, 我自己也亂了.
現在一個個地試,
1.01 配 opt 175 , 唔得.
0.96 配 opt 175 , 唔得.
可以的哪個 是 1.01 , 但忘了generate image 選了甚麼 Customize 選項.
页: [1] 2
查看完整版本: [7/4更新]gPXE + iSCSi sanboot XP