Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Nov 1998 12:33:50 -0800
From:      Mike Smith <mike@smith.net.au>
To:        Kevin Street <street@iname.com>
Cc:        current@FreeBSD.ORG
Subject:   Re: boot loader problems with mix of wd and da 
Message-ID:  <199811112033.MAA04864@dingo.cdrom.com>
In-Reply-To: Your message of "Sat, 31 Oct 1998 14:07:54 EST." <13883.24586.614752.970999@kstreet.interlog.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> I have some difficulties using the new boot blocks and loader in some
> configurations.  I have a backup copy of my root partition on another
> drive that causes the loader some problems.
> 
> kernel is aout
> disks are wd0, wd1, da0, da1 (removable)
> 
> I boot through Partition Magic's Boot Manager which lives on wd0.
> The normal root is on wd1s2a.  The backup root is on da0s2a.
> I've done (after a Nov 10 make world):
>   disklabel -B -b /boot/boot1 -s /boot/boot2 wd1  
>   disklabel -B -b /boot/boot1 -s /boot/boot2 da0
> 
> The normal boot through wd1 is fine.
> 
> If I want to boot my backup root on da0 then the results vary:
> 
> 1) If I don't have a /boot.config on da0 then it autoboots into /boot/loader,
> currdev is set to disk3s2.  It finds /boot/boot.conf ok, loads the kernel
> but the kernel boot fails with "changing root device to da2s2a".
> (there is no da2).

This is the same as the old problem that required you to prefix a BIOS 
unit number offset to the 'sd' in the old loader.  You need to 
explicitly set $rootdev:

 set rootdev=da0s2a

> 2) If I do have a /boot.config on da0 with:
>   2:da(0,a)/boot/loader
> Then it finds and loads the loader, but currdev is set to disk1s2 so it
> can't find /boot/boot.conf or anything else.  disk1s2 would actually be the
> Boot Manager on wd0.  If I manually change currdev to disk3s2, then I can
> load the kernel but boot fails as above.

This is not the right way to do it; the BIOS unit numbers get all 
screwed up.

> 3) If I interrupt the loading of /boot/loader and instead type in:
>   2:da(0,a)kernel
> Then everything is fine.  The kernel boot succeeds and correctly does
> "changing root device to da0s2a".  (The kernel is compiled with root on
> wd1s2a since that's its normal spot).  I suspect this won't work if I
> go to an elf kernel since I need to use /boot/loader for elf, right?
> 
> So, why is currdev set differently in case 1 and case 2?

Because you've supplied the '2', obviously enough.

> Why does /boot/loader confuse the kernel into thinking there's a da2 on
> which it might find root?

Because you haven't told it not to.

-- 
\\  Sometimes you're ahead,       \\  Mike Smith
\\  sometimes you're behind.      \\  mike@smith.net.au
\\  The race is long, and in the  \\  msmith@freebsd.org
\\  end it's only with yourself.  \\  msmith@cdrom.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



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