Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Apr 2006 18:55:08 -0500
From:      Doug Poland <doug@polands.org>
To:        questions@freebsd.org
Subject:   Hosed my MBR?
Message-ID:  <20060410235508.GA742@polands.org>

next in thread | raw e-mail | index | archive | help
Hello,

I'm in a bit of a mess here.  I've got an Asus P4C800-E Deluxe
motherboard with two on-board SATA RAID controllers, an Intel MatrixRAID
(ICH5R) and Promise Fasttrak (PDC20378).  My BIOS allows me to boot
from either the Promise or the Intel controller.

The PDC20378 runs two drives in a RAID0 configuration booting FreeBSD
6.0-STABLE.  The entire drive (ar0) is dedicated to FreeBSD and I have
the boot-manager installed.   The ICH5R also runs two drives in a
RAID0 for Windows XP.  I allocated roughly 25% of the drive (ar1) to
Windows NTFS (ar1s1) and left the remaining disk open. 

Now that 6.x supports the ICH5R I decided to use the leftover disk (ar1)
for a FreeBSD slice.  I used sysinstall's fdisk to create the slice in
the unused portion of the disk.  I successfully committed the changes.  I
then used # newfs /dev/ar1s2 to create a file-system and it went fine.

The problem is, now, when I attempt to boot off the Intel controller, I
get a FreeBSD boot load failure:

---

Invalid Partition
Invalid Partition

No /boot/loader

FreeBSD/i386 boot
Default: 0:ad(0,a)/boot/kernel/kernel
boot:

Invalid partition
No /boot/kernel/kernel

FreeBSD/i386 boot
Default: 0:ad(0,a)/boot/kernel/kernel
boot:

---

So it would seem I hosed my MBR.  The question is, how did I do it and
how do I fix it?  I would think that when I choose to leave the MBR
untouched in sysinstall, that it would do just that.  

I cannot use the old DOS boot floppy trick of:  fdisk /MBR as DOS will
not recognize my Intel controller.  Windows installation media is
equally clueless.  I want to be very careful here so as not to render my
entire system useless.  A thought occurred to me that I might be able to
get a MBR from another Windows box 

   freesbie# dd if=/dev/ad0 of=/mnt/nfs/tmp/XP.mbr bs=512 count=79
   hosedbox# dd if=/mnt/nfs/tmp/XP.mbr of=/dev/ar1 bs=512 count=79

and write that over my bad MBR.  Does that make sense?  Is there a
"better" way?


-- 
Regards,
Doug



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