Re: hibernation file location



"Norman Diamond" wrote:
"John Hensley" <resqware@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:4099A8F2-BEF5-4D94-A090-2490C5F598D1@xxxxxxxxxxxxxxxx
which can only access the file via ROMBIOS int 13h.

No. I see you remember NTBOOTDD.SYS but I'm going to explain anyway.

If a disk controller driver was copied to system partition (where NTLDR,
BOOT.INI, and NTDETECT.COM reside), and renamed as NTBOOTDD.SYS, then NTLDR
would be able to read a kernel and drivers from the boot partition on a
drive connected to that controller, even if the controller didn't have a
BIOS. Windows NT4 SP4 and later automatically generated a file NTBOOTDD.SYS
but it could also be done manually for the working version SP3, and for
Windows 2000 and XP.

IIRC the NTBOOTDD.SYS driver is only loaded if the the ARC path in the
boot.ini file uses the SCSI or SIGNATURE format when specifying the system
drive. According "Windows Internals 4th Ed." the boot.ini file is not
processed when resuming from hibernation so this would prevent the
NTBOOTDD.SYS driver being involved with resume from hibernation. This
actually makes sense because the hiberfile contains all of the boot driver
stacks and there would be no need to load the NTBOOTDD.SYS driver when
resuming from hibernation.

It's also important to remember that the NTBOOTDD.SYS driver is used to
provide access to the system volume and not the boot volume. Windows keeps a
separate ARC path name for each volume and these will be different anytime
the system volume is not the same partition as the boot partiton. Even when
the NTBOOTDD.SYS driver is used to access the system drive Windows will still
consider the partition that NTLDR was loaded from as the boot drive.


I don't recall if I tried hibernating XP in that configuration.

Thinking about the generalities of the BOOT.INI file, specifying a number of
controllers and drives and partitions, I'm still trying to figure out how
NTLDR could load drivers for all of those controllers when all of the
drivers had to be given the same filename NTBOOTDD.SYS.

As explained above, boot.ini does get processed when resuming from
hibernation (at least according to "Windows Internals").

Though it is common to load the non-bootstrap components of the OS from a
non-int 13h accessible drive using an ntbootdd.sys mini-port driver, I am
assuming NTLDR doesn't search anything other than the actual boot drive
since the presence of a valid hiberfile prevents boot.ini from being
processed and thus any information about the actual system drive would not
be available.

But how does NTLDR even know which partition to read HIBERFILE.SYS from?
Even though NTLDR refuses to give the user a choice to boot another
partition's system instead of resuming the hibernated one, the hibernation
file still resides on a boot partition with a kernel and system files of a
Windows installation, not on the system partition with the boot loader. The
boot loader still has to read BOOT.INI and scan to see if a hibernation file
somewhere is ready to be loaded.

I think you have it reversed. The kernel and drivers reside on the system
partition. NTLDR, the hiberfile and all other bootstrap files reside on the
boot partition which is accessible via the ROMBIOS int 13h interface. NTLDR
always knows how to get to the boot partition using int 13h because that
information is provided to NTLDR by the code in the partition boot record
that loads NTLDR. The boot.ini file on the boot partitioin tells NTLDR how to
locate the kernel on the system partition.

Chapter 5 in "Windows Internals 4th Ed." does an excellent job of explaining
how the OS is loaded from the drive and initialized.

--
John Hensley
www.resqware.com

.



Relevant Pages

  • Re: Question about cloning
    ... Do you clone to an image file on the drive in the ... Primary partitions and 1 Extended partition. ... booted from the boot files in one of the Primary partitions. ... entry from the resulting boot menu that ntldr displays. ...
    (comp.sys.ibm.pc.hardware.storage)
  • Re: MS Whistler Personal
    ... I changed the BIOS to boot from the CD drive first but that did nothing. ... I have it in there but I had to erase a partition call 'utilities' as it ... to have any audio and in checking the hardware manager there is no driver ... This is true even in the safe mode. ...
    (microsoft.public.windowsxp.help_and_support)
  • Re: XP installation/multiboot problem
    ... boot files don't have to be in the same partition or in the same ... mention (boot.ini, ntldr, ntdetect.com) have to be on the 2nd HD. ... positions just under the root of the D: partition as they had been ... The new OS should load. ...
    (microsoft.public.windowsxp.help_and_support)
  • Re: 2 wondows versions detected on pc startup?
    ... if not put there by the BIOS? ... BIOS examines the very first sector of the disk for a Master Boot Record ... table which describes the layout of the fixed disk and the partition loader ... This is where Windows and NTLDR comes in, ...
    (microsoft.public.windowsxp.setup_deployment)
  • Re: Getting a 2nd hard disk partition to mount in CE 5.0
    ... This sounds like a load order problem, although I've never seen this result (not mounting of 2nd partition). ... Then when the hive is restored and used driver D, C, B, A would load in that order. ... Once you figure out the differences between a clean boot and a hive boot, force that order by defining "Order" values in the relevant driver settings. ... Can you post your "profile" registry settings for the partitions and other relevant registry settings. ...
    (microsoft.public.windowsce.embedded)

Loading