BootPrep / FixBoot

L

Lucvdv

Maybe I'm not the first to think of it, but I just ran FIXBOOT from an XP
Pro CD recovery console on a non-booting FAT16 CF. It still didn't boot,
but afterward I compared the boot sector it saved to one written by
BootPrep.

The only differences are in the BPB en EBPB (pure data areas).


I find it a terrible drag to have to boot to DOS just to format a disk and
replace the boot sector (you have to find a working DOS floppy first ;)

Wouldn't it have been a better idea if MS had created bootprep based on the
code of FIXBOOT (using the correct BPB data of course)?

Fixboot already runs under the WinXP kernel, so it can't be that much of a
job to turn it into a BootPrep utility that can be run under XP.
At least if you have the source, which we don't...
 
L

Lucvdv

Lucvdv,

But you had to use dos fdisk and format to make correct BPB in the first
place.

That's my point, exactly.

Can't they make a _windows_ utility that writes the correct bootsector to
disk?
 
S

Slobodan Brcin \(eMVP\)

Lucvdv,
Can't they make a _windows_ utility that writes the correct bootsector to
disk?

Disk Management diskpart, format write correct MBR and boot sectors.
Unfortunately CHS part of that story is corrupted. in BPB and partition
table.
To write these correctly one need to know what BIOS see and then use these
values. Only way that you can do that is:
1. Connect your disk on computer that you want that disk to boot on
2. Boot to Any Windows (WinPE) on that computer while disk is connected and
seen by BIOS.
3. Pray to good that information's about CHS geometry are passed to kernel
mode.

This problem is most likely the same part of problem that haunt CD boot with
7B error that is irresolvable on some MB.
Namely MS says that BIOS-es are bad and do not follow some obscure
specification so that ntldr/ntdetect are unable to pass information about
the disk to the kernel mode.

If you see your disk here in registry when you boot then you can use
diskpart,format and other tools if not you must use DOS:
HKLM\HARDWARE\DESCRIPTION\System\MultiFunctionAdapter\x\DiskControler\y\DiskPeripheral\z

So Lucvdv question that you should probably ask is whether they can make
ntldr/ntdetect that work with all BIOS-es regardless of some strange BIOS
flaws.

For passing information from user mode to kernel mode they use:
1. Test for MBR presence.
2. Calculate checksum for MBR sector.
3. Use DiskID from MBR sector.
4. And they add CHS and other information's about the disk in registry as
well under DiskPeripherals

All these is and can be done successfully on all BIOS-es. What else do they
need in order to store these to registry I have no idea.

I only know that currently I have three different boards on my desktop and
that windows in only able to fill registry for one of them.

Regards,
Slobodan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top