Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Mar 95 13:42 CST
From:      uhclem@nemesis.lonestar.org (Frank Durda IV)
To:        bde@zeta.org.au, current@FreeBSD.org
Cc:        uhclem@nemesis.lonestar.org
Subject:   Re: Invalid DOSpartition table may be a bad idea
Message-ID:  <m0rsyCK-0004vsC@nemesis.lonestar.org>

next in thread | raw e-mail | index | archive | help
[2]Bruce writes:
[2]If there is no DOSpartition table then there is one slice (the whole
[2]disk).  Unfortunately you have to have a DOSpartition table to boot with
[2]biosboot, and disklabel -B writes a dummy DOSpartition table whether you
[2]want it or not.  Fortunately it writes an _invalid_ DOSpartition table.

[3]Frank writes:
[3]If I understand what you are saying here, this may be a bad thing.
[3]Windows 95 (which I have to run on some systems at work) takes a disk with
[3]a missing or invalid partition table as an open invitation to automatically
[3]initialize the entire disk for Windows 95 by putting a "use entire disk"
[3]DOS partition table in there.

[4]Bruce writes:
[4]The FreeBSD invalid DOSpartition table is historical baggage.  I haven't
[4]been able to eradicate it.  Perhaps Windows 95 will do a better job :-).

[4]What does Windows 95 consider to be an invalid table?  We want a table
[4]with one partition that covers the whole disk _including_ the MBR to
[4]be valid, but that may be an invalid table for DOS.


I will see if I can find exactly what makes Win95 punt.  The feeble
documentation says Win95 verifies a checksum, but I don't exactly believe
that since I don't think there is one.

I know someone on the Win 95 program team and he may be able to get an
answer quickly.

Apparently the reason this was done in Win 95 was to speed factory installs,
but no factory I know does a real install on each system.  They simply
download an image of a system that was installed earlier over the network
and onto the drives.  I guess for service reinstalls after a drive gets
blown-away it will save a step or two.


[4]The slice driver does the following validity checks:

[4]1) Last 2 bytes in MBR must be 0x55, 0xAA, else table is ignored.
[4]2) For each partition, the C/H/S start and end must equal the logical
[4]   start and end, else a warning is printed.  The logical start and end
[4]   are always considered valid.  If the logical start or end corresponds
[4]   to a C >= 1024, then no warning is printed in the following cases:
[4]   a) C = 1023, H = max, S = max.
[4]   b) C = correct mod 1024, H = correct, S = correct.
[4]
[4]It doesn't do any overlap or ordering checks.

Thanks for the checklist.

Frank Durda IV <uhclem@nemesis.lonestar.org>|"Made Free, as free as the
or  uhclem%nemesis@trsvax.ast.com (Internet)| courts know, as long as the
...letni!rwsys!nemesis!uhclem               | code flows, it's free, B-S-D."
...decvax!trsvax.fw.ast.com!nemesis!uhclem  | :-)  - FDIV (1995)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m0rsyCK-0004vsC>