This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Debugging Windows iSCSI boot ====== To debug Windows iSCSI boot problems, you will need a second Windows machine running //windbg//, and a null-modem cable to connect the two machines together via their serial ports. The debugging machine does not need to be running the same version of Windows as the iSCSI-booting machine. This tutorial is designed to help you capture the information that will be needed to diagnose your iSCSI boot problems. ===== Preparing the machines ===== Connect the null-modem cable between the serial port of the debugging machine and the serial port of the iSCSI-booting machine. (If one or both of the machines do not have serial ports then you can use a FireWire cable instead, but these instructions assume that you are using a null-modem cable.) ===== Preparing the tools ===== Download the latest version of //windbg// as part of the Debugging Tools for Windows package from [[http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx]] and install it onto the debugging machine. Locate the Microsoft iSCSI initiator (which you have already downloaded and installed on the iSCSI-booting machine), and install it onto the debugging machine. ===== Preparing the iSCSI-booting machine ===== On the debugging machine, start the Microsoft iSCSI Initiator utility (//Start// -> //All Programs// -> //Microsoft iSCSI Initiator// -> //Microsoft iSCSI Initiator//). Go to the //Discovery// tab and click on //Add// to add a new target portal. Enter the IP address or DNS name of your iSCSI target. {{ :screenshots:windbg_iscsi_add_target.png?400x300 |Adding an iSCSI target}} Go to the //Targets// tab. You should see a list of available iSCSI target IQNs. Select the one containing your iSCSI-bootable Windows disk, and click on //Log On// to connect to the target. {{ :screenshots:windbg_iscsi_connect_target.png?400x300 |Connecting to the iSCSI target}} The iSCSI-bootable Windows disk should now show up as an extra drive in //My Computer// on the debugging machine. Start up //Notepad// and open the file //X:\boot.ini// (where //X:// is the drive letter for the iSCSI-bootable Windows disk). You should see something like [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003" /fastdetect Duplicate the ''multi(0)disk(0)rdisk(0)partition(1)...'' line, and append the options /debug /debugport=com1 /baudrate=115200 /break (where //com1// is the serial port on the iSCSI-booting machine). The resulting file should look something like [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003" /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003" /fastdetect /debug /debugport=com1 /baudrate=115200 /break Save this modified //boot.ini// file and close //Notepad//. Go back to the Microsoft iSCSI Initiator utility. On the //Targets// tab, select the one containing your iSCSI-bootable Windows disk, and click on //Details//. Tick the box next to the session identifier (which will be a long hex string such as //ffffffff810ca00c-4000013700000001//), and click on //Log off// to disconnect from the target. {{ :screenshots:windbg_iscsi_disconnect_target.png?400x300 |Disconnecting from the iSCSI target}} ===== Starting the iSCSI-booting machine ===== {{ :screenshots:windbg_select_debug.png?360x200|Windows boot menu}} Switch on the iSCSI-booting machine. You should reach the Windows boot menu offering you a choice such as Please select the operating system to start: Windows Server 2003 Windows Server 2003 [debugger enabled] Select the option which includes "[debugger enabled]", and press Enter to continue. You should see the screen go black, and the machine will appear to have frozen. This is because it is waiting to be controlled by the debugging machine. ===== Using the debugger ===== On the debugging machine, start the Windows debugger (//Start// -> //All Programs// -> //Debugging Tools for Windows// -> //WinDbg//). Start a kernel debugging session (//File// -> //Kernel Debug//). After a brief pause, you should see several messages appear, ending with Break instruction exception - code 80000003 (first chance) nt!DbgBreakPoint: 8081d971 cc int 3 {{ :screenshots:windbg_start.png?400x300 |Windows debugger attaching}} Allow the iSCSI-booting machine to continue using //Debug// -> //Go//. After several seconds, you should see iSCSI boot messages start to appear. For a successful boot, these will look something like IscsiBP-IscsiBPInitialize: enter IscsiBP iBF table found at FC564950 (FC545000) IscsiBP iBF table copied to E12B9A08 IscsiBP Found device \??\PCI#VEN_10EC&DEV_8139&SUBSYS_00000000&REV_20#3&13c0b0c5&0&18#{cac88484-7515-4c03-82e6-71a87abac361} IscsiBP Handle 800000B4 has IpAddress 10.254.254.15 Subnetmask Prefix - 24 is 00 ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 IscsiBP Handle 800000B4 has SubnetMask 255.255.255.0 IscsiBP Handle 800000B4 has DefaultGateway 10.254.254.2 IscsiBP nic 0 config -> 0 IscsiBP-IscsiBPInitialize: exit Found iSCSI Boot Parameters at 810CABA0, attempting iSCSI boot Allocating the Boot Connection Pool of size 30 Allocating Connection Pool 810C5F10 Allocating the Boot Connection Pool entry 0 SUCCESS Allocating the Boot Connection Pool entry 1 SUCCESS ... Waiting 60 seconds for boot disk iSpSystemWorkerThread: Entering iSpSystemWorkerThread: Coming out of wait iSpSystemWorkerThread: Start Logon Completion Thread 810C7008 Delay 10 seconds for Disk to arrive....... iSpSystemWorkerThread: After Logon Completion Thread Delay for Disk Complete, continue with boot NIC device \??\PCI#VEN_10EC&DEV_8139&SUBSYS_00000000&REV_20#3&13c0b0c5&0&18#{cac88484-7515-4c03-82e6-71a87abac361} has PCI bus type ISCSI Boot Status 0, (0, 0, 0, 0) For an unsuccessful boot, the messages will end with a "Bugcheck Analysis"; this is the debugging equivalent of the Blue Screen of Death that occurs when the debugger is not attached. Save the debugging transcript to a file using //Edit// -> //Write Window Text to File//. ===== Diagnosing the problem =====


Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code sanboot:winnt_iscsi_debug (generated for current page)