This is an old revision of the document!


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.

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 (StartAll ProgramsMicrosoft iSCSI InitiatorMicrosoft 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.

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.

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.

Disconnecting from the iSCSI target

Starting the debugger

Windows boot menu

On the debugging machine, start the Windows debugger (StartAll ProgramsDebugging Tools for WindowsWinDbg). Start a kernel debugging session (FileKernel Debug). You should see the message “Waiting to reconnect…”.

Switch on the iSCSI-booting machine. You should reach the Windows boot menu offering you a choice such as

  Windows Server 2003
  Windows Server 2003 [debugger enabled]

Select the option including [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 for input from the debugger.

Using the debugger


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