(I'm tired of whiny subject lines, even though that's kind of the way I
feel right now.)
If memory serves me right, Ken Key wrote:
> The broken T20's BIOS should have read v1.08a (IYET45WW) - sorry for
> the typo. The BIOS on the other working T20 is v1.03 (IYET37WW).
Hi Ken--
I've got a T20, type 2647-86W, with BIOS 1.03 (IYET37WW). Given your
comment above, you'd think that I should have no problems...
unfortunately I bricked it yesterday after installing 4.2-RELEASE.
Details for posterity: The machine came pre-installed with a Win2K
image plus some other stuff from ${VBRC}'s IT department. [1] Partition
table looks like:
ad0s1 Hidden big FAT16 (Win2K Recovery)
ad0s2 NTFS
ad0s3 Extended partition, containing:
NTFS
Hidden FAT16 (?)
ad0s4 FreeBSD
After installing, I rebooted into a hang on the startup screen. I
powered down, removed the hard disk, powered up, and then hot-plugged
the hard disk so that I could reboot back to the FreeBSD CD-ROM. [2]
After "fixing" this problem by zeroing out the partition and diddling
around with Partition Magic again, I had a working machine again, the
main difference from my start state being that I have FreeBSD's boot0 in
the boot blocks. boot0 appears perfectly capable of loading Win2K on
this machine.
I repeated this experiment again with the same results.
Then I installed 4.2-RELEASE and used fdisk(1) to change the type of my
FreeBSD slice (I picked OpenBSD, which is 0xA6). Win2K works fine now,
but FreeBSD's boot1 will only do its part of the bootstrap from FreeBSD
(type 0xA5) slices.
So I'm real curious to see why two different machines with the same
firmware behave differently. Is there any chance of finding out what
the partition table for your T20 with BIOS 1.03 is?
In another thread, Peter Wemm suggested that maybe we could have our
boot1 handle other partition types in addition to our 0xA5. In my
Copious Spare Time, I'm going to see if I can make up boot blocks that
do this (doesn't seem too hard to do, although I haven't figured out how
to get the boot blocks over to the ThinkPad yet). Problem is...I'm need
to be doing Real Work (TM) for $VBRC today. :-p
Cheers,
Bruce.
[1] Very Big Router Company.
[2] Yeah, I know. Don't try this at home, kids.
--==_Exmh_-198100181P
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (FreeBSD)
Comment: Exmh version 2.2 06/23/2000
iD8DBQE6K98z2MoxcVugUsMRAkw0AJwLEuzXc0ktjF/4MceK+HPGfccuogCfaXLN
vXavQCWZuOhI1XIDC+XdSF8=
=V4Zl
-----END PGP SIGNATURE-----
--==_Exmh_-198100181P--
To Unsubscribe: send mail to majo...@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message
Interesting. The two that worked, including the one with
the same BIOS rev., were Win98SE preinstalls. The one I tried that
failed (v1.08a) was a Win2K preinstall like yours. I also used
Partition Magic, like you. I used BootMagic, though, rather than
boot0. I never saw a "big hidden FAT16" parition, only a single FAT32
that I shrunk via PM. The next question to be asked is what would
happen if I used FreeBSD only with no Win2K on the machine. I didn't
try this on the T20, but on the T21 it still bricked. I don't think
I'll get around to trying it on the T20 as my day job is calling me
as well.
> boot0 appears perfectly capable of loading Win2K on
> this machine.
Yup, once I got rid of the 0xA5 partition, I could use PM or boot0 to
boot the Win2K.
> So I'm real curious to see why two different machines with the same
> firmware behave differently. Is there any chance of finding out what
> the partition table for your T20 with BIOS 1.03 is?
I've got a request for the fdisk output, but I believe it is simply:
ad0s1 FAT32/Win98
ad0s2 FreeBSD
> In another thread, Peter Wemm suggested that maybe we could have our
> boot1 handle other partition types in addition to our 0xA5. In my
> Copious Spare Time, I'm going to see if I can make up boot blocks that
> do this (doesn't seem too hard to do, although I haven't figured out how
> to get the boot blocks over to the ThinkPad yet). Problem is...I'm need
> to be doing Real Work (TM) for $VBRC today. :-p
I started down that path but gave up. I decided that even if I did
get it to work on a different partition number, trying to support this
hack on all the FreeBSD laptops (20+) in my organization would kill my
sysadmin staff during upgrades and installs by newbies who weren't
aware of the issues. I cancelled my order and ordered other laptops
instead.
If you do try to do this, note that 0xA5 is hardcoded in boot/i386/boot0/
boot0.s, and boot2/boot1.s. You'll also need to change DOSPTYP_386BSD
in both /usr/include/sys/disklabel.h and (I think this is where I
made my mistake) in i386/include/pc/msdos.h. I never got it to work,
but that was because I gave up after deciding the above.
Regards,
K^2
--
Ken Key (k...@cips.nokia.com, k...@Network-Alchemy.com)
Nokia, Clustered IP Solutions, Santa Cruz, CA
Hi Ken--
Let me start off by saying that I succeeded in getting FreeBSD to work
off of a slice with an 0xA6 (OpenBSD) partition type, after mangling the
boot1 and boot2 parts of the boot loader. So my T20 (BIOS 1.03) is now
successfully dual-booted between Win2K and FreeBSD 4.2-RELEASE.
If memory serves me right, Ken Key wrote:
> Yup, once I got rid of the 0xA5 partition, I could use PM or boot0 to
> boot the Win2K.
>
> > So I'm real curious to see why two different machines with the same
> > firmware behave differently. Is there any chance of finding out what
> > the partition table for your T20 with BIOS 1.03 is?
>
> I've got a request for the fdisk output, but I believe it is simply:
>
> ad0s1 FAT32/Win98
> ad0s2 FreeBSD
Hmmm...OK, thanks. Hmmm.
> > In another thread, Peter Wemm suggested that maybe we could have our
> > boot1 handle other partition types in addition to our 0xA5. In my
> > Copious Spare Time, I'm going to see if I can make up boot blocks that
> > do this (doesn't seem too hard to do, although I haven't figured out how
> > to get the boot blocks over to the ThinkPad yet). Problem is...I'm need
> > to be doing Real Work (TM) for $VBRC today. :-p
>
> I started down that path but gave up. I decided that even if I did
> get it to work on a different partition number, trying to support this
> hack on all the FreeBSD laptops (20+) in my organization would kill my
> sysadmin staff during upgrades and installs by newbies who weren't
> aware of the issues. I cancelled my order and ordered other laptops
> instead.
Yeah, nothing like having to support Real Users (TM). :-)
In my case, my userbase is one (me). Another T20 user at my company, by
contrast, reported that his T20 (Win2K install, shrunk to fit FreeBSD)
is working perfectly. However I don't know his BIOS revision. Go figure.
> If you do try to do this, note that 0xA5 is hardcoded in boot/i386/boot0/
> boot0.s, and boot2/boot1.s. You'll also need to change DOSPTYP_386BSD
> in both /usr/include/sys/disklabel.h and (I think this is where I
> made my mistake) in i386/include/pc/msdos.h. I never got it to work,
> but that was because I gave up after deciding the above.
You said you gave up, but I'm posting some notes here anyways...they
might be useful to someone else. I think this falls into the category
of "gross hack" but at least I got my machine up and running (finally).
OK. My goal was get a boot loader that can boot FreeBSD from a
partition to a different slice type (ideally, more than one of them).
For this, I didn't touch boot0. It's unnecessary, as far as I can tell,
as long as you remember that the names it gives to slices are
solely determined by the partition type codes, and don't necessarily
reflect the actual contents of the slice. There's already precedence
for this; Win2K on my system lives in an "Windows NT" partition.
boot1 is written entirely in i386 assembler (well on this platform
anyways). I can understand enough of it to make it boot from another
partition type, but not enough to make it handle multiple partition
types. (I could write it in 6502 assembler but that's not real useful.)
So I've got a boot1 hacked to boot off a slice with the OpenBSD
partition type.
For boot2, I added a definition of OpenBSD's disk type to <sys/
disklabel.h> and hacked boot2.c to handle multiple boot types (grep-ed
for DOSPTYP_386BSD). There's two references to DOSPTYP_386BSD...one
deals with finding the compatability slice; we don't want to touch that
one. The other one checks the slice type; I added a line to permit
booting from a slice with either an OpenBSD or FreeBSD partition type.
And that's all that needs to be changed, as far as I can tell.
Thanks,
Bruce.
PS. I picked OpenBSD over NetBSD as the partition type to use on my
disk solely because I could remember OpenBSD's partition type code; no
favoritism implied here.
--==_Exmh_-1386759582P
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (FreeBSD)
Comment: Exmh version 2.2 06/23/2000
iD8DBQE6LCya2MoxcVugUsMRArQ9AKCN2Tw8un/zFD/fyHA+vcVB+DpH0wCg+w/M
fjJ9fSeudeZ/HqS28Byrl6c=
=N9fd
-----END PGP SIGNATURE-----
--==_Exmh_-1386759582P--
:> > So I'm real curious to see why two different machines with the same
:> > firmware behave differently. Is there any chance of finding out what
:> > the partition table for your T20 with BIOS 1.03 is?
:>
:> I've got a request for the fdisk output, but I believe it is simply:
:>
:> ad0s1 FAT32/Win98
:> ad0s2 FreeBSD
:
:Hmmm...OK, thanks. Hmmm.
I have a T20 which had BIOS 1.03 and now has BIOS 1.08, which doesn't work
with FreeBSD. Behavior does not change between the two BIOS revs. My T20
is a 2647-84U.
I tried with FreeBSD 4.1.1-RELEASE and 4.2-RELEASE.
What I found is that no matter what boot block is on the system, if there
is a FreeBSD part (165) anywhere on the disk, the machine locks up at the
end of POST.
What I tried were:
FreeBSD on slice 1 with FreeBSD boot block
FreeBSD on slice 1 with Win98 MBR (ie, no way to boot FreeBSD)
Win98/FAT32 on slice 1 and FreeBSD on slice 2, FreeBSD's MBR
Win98/FAT32 on slice 1 and FreeBSD on slice 2, Win98 MBR
Essentially I just tried each option and then booted a floppy and did an
"FDISK /MBR" to clobber the FreeBSD boot manager. All of those fail.
I used a Thinkpad 600E to alter the disk each time, since the T20 can't be
booted from CD or floppy if there is a FreeBSD part on the disk.
I concluded that this has nothing to do with FreeBSD's boot block and is
more likely related to the partition type. Altering the FreeBSD booter to
support alternate partition types appears to be the simplest workaround,
though perhaps morally repugnant.
Cheers,
--Paul
If memory serves me right, Paul Southworth wrote:
> I used a Thinkpad 600E to alter the disk each time, since the T20 can't be
> booted from CD or floppy if there is a FreeBSD part on the disk.
I did a (non-recommended) workaround, which consisted of removing the
disk from the machine with the power off, bring it up to get to a menu
of boot devices, and then hot-inserting the disk. So far I've been
lucky in that I haven't fried the disk. It's physically possible to do
this, but I don't recommend it and I take no responsibility for any
damage to anything if you (or anyone else) does it.
> I concluded that this has nothing to do with FreeBSD's boot block and is
> more likely related to the partition type. Altering the FreeBSD booter to
> support alternate partition types appears to be the simplest workaround,
> though perhaps morally repugnant.
Yeah, like I said, that's what I ended up doing. I can put my boot1 and
boot2 files (for booting off an OpenBSD partition type) someplace
accessible if there's interest. It's a real hack, and the way I did it,
you can *only* put FreeBSD in an OpenBSD-type partition, and you
probably can't dual-boot between FreeBSD and OpenBSD either. But at
least it boots. :-p
Bruce.
--==_Exmh_1097108040P
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (FreeBSD)
Comment: Exmh version 2.2 06/23/2000
iD8DBQE6Mmfr2MoxcVugUsMRAh7NAJ9HaOJB+oOqABGs8Nyt0g6qqTJePgCgkcAm
Q+pSYTxoUDIMjNdvCUtIXco=
=IEib
-----END PGP SIGNATURE-----
--==_Exmh_1097108040P--