On my Windows 7 computer, I have two "drives", a RAID 10 system drive
and a RAID 1 data drive.  The data drive shows as "Disk 0" in Disk
Management, even though it booted from "Disk 1".  So, it would appear
that there is no correlation to BIOS' and Windows' numbering of disks
available to the system, as Shao supposed.  I also confirmed (with
LoadOrder.exe) that the driver for the RAID 1 controller loads before
the driver for the RAID 10 controller.  This supports Shao's guess that
Windows' disk numbering is determined by driver load order.  There is no
guarantee that this holds true for all versions of Windows, YMMV.

 

Rob

 

 

From: gpxe-boun...@etherboot.org [mailto:gpxe-boun...@etherboot.org] On
Behalf Of Shao Miller
Sent: Tuesday, January 18, 2011 10:00 AM
To: Binh Thai
Cc: gpxe@etherboot.org
Subject: Re: [gPXE] Change drive number of the iscsi boot drive?

 

On 1/18/2011 11:42, Binh Thai wrote: 

Hi Shao,
 
Thanks for your reply.
 
I forgot to mention that I meant "drive 0" in the context of Windows
disk drive numbering.


Oh, ok.




My goal is to boot a system from an iscsi target without disrupting the
disk drive numbers of the internal hard drives. For example, if I have
one internal hard drive, I want to see it detected as Disk 0 whether I
boot from it or from the iscsi target. If I boot from the iSCSI target,
I want to see the iscsi target as drive 1, not 0. Currently, the iSCSI
drive would become Disk 0 and push the internal drive to Disk 1.
 
I think the PnP enumeration process in Windows has some relationship
with the BIOS drive numbering. Could you please point me to some
in-depth documentation regarding the BIOS drive numbering and how int13
is used?


I do not believe that BIOS drive numbers and Windows drive numbers have
any correlation.  Use Microsoft's SysInternals' LoadOrd.exe to check
your driver load order.  If you ensure that the drivers responsible for
the internal storage adapters are loaded before the iSCSI driver, then I
think your odds are better for the iSCSI HDD getting a higher number
than the internal HDD(s).

However, it might be the case that the startup protocol hands an MBR
signature from boot-up to the drive number assignment routine; in this
case, whatever drive is used for booting (your iSCSI HDD) will be drive
0 no matter what.  You can use Microsoft's SysInternals' WinObj.exe to
check the mapping of the ARC names (\ArcName\) to the drive numbers
(\Device\HarddiskX).

I can only think of a convoluted way to push the boot drive up and away
from Windows drive number 0:
- Boot the iSCSI drive
- Have GRUB4DOS on the drive
- Have GRUB4DOS remap the drive number from 0x80 to 0x81
- Chain-load the Windows boot-loader
- Have BOOT.INI/BCD attempt to boot multi(0)disk(0)rdisk(1)partition(1)
instead of rdisk(0) (0x81 instead of 0x80)
- If the iSCSI drive is \Device\Harddisk1 then hopefully Windows would
also further connect it as multi(0)disk(0)rdisk(1).  ARC _and_ HDD
numbers would then be 1 instead of 0.  (Untested.)

So having said that, I'd like to ask: _why_ do you want the drive
numbers numbered in this way?

- Shao Miller

_______________________________________________
gPXE mailing list
gPXE@etherboot.org
http://etherboot.org/mailman/listinfo/gpxe

Reply via email to