Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jun 2016 10:15:41 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        Russell Haley <russ.haley@gmail.com>
Cc:        freebsd-arm <freebsd-arm@freebsd.org>, Lou Katz <pi@metron.com>
Subject:   Re: A possible solution to booting from another USB stick
Message-ID:  <1465920941.1188.150.camel@freebsd.org>
In-Reply-To: <CABx9NuRPcdebfae88yQJsgfF0mnnYBBOXeGrtT8nynmhUhut4g@mail.gmail.com>
References:  <20160610071928.GA75585@metron.com> <1465864289.1188.140.camel@freebsd.org> <CABx9NuRPcdebfae88yQJsgfF0mnnYBBOXeGrtT8nynmhUhut4g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2016-06-14 at 08:46 -0700, Russell Haley wrote:
> On Mon, Jun 13, 2016 at 5:31 PM, Ian Lepore <ian@freebsd.org> wrote:
> > On Fri, 2016-06-10 at 00:19 -0700, Lou Katz wrote:
> > > It occurred to me that as long as I had the same version of
> > > FreeBSD
> > > on the
> > > bootable card and in a USB adapter I could boot normally, then
> > > mount
> > > the system on the adapter card and do a chroot.
> > > 
> > > A quicky and dirty test indicates that might work for what I want
> > > to
> > > do,
> > > which is to:
> > >       a. modify an application
> > >       b. add or subtract data files
> > > and as a freebie, I seem to get
> > >       c. ability to change things without rebooting.
> > > 
> > > I will report back after I try this in earnest.
> > > 
> > > Thanks for the feedback.
> > > 
> > 
> > I apparently missed the first round of this question.
> > 
> > In uboot, you need to do a "usb start", then do "usb dev" and see
> > if it
> > recognizes your disk device.  If so, you're in business, tell ubldr
> > to
> > load the kernel from it instead of sdcard by doing:
> > 
> >   setenv loaderdev disk1
> > 
> > If there are multiple disks you might need disk2, disk3, whatever. 
> >  If
> > there are multiple partitions involved you might need, for example,
> > disk1:2 to boot from partition 2.
> 
> So does that mean there are three possible answers?
> 
> 1) Create a new kernel and set ROOTDEVNAME"
> 
> options ROOTDEVNAME=\"ufs:mmcsd0s2\"
> 

The ROOTDEVNAME from kernel config is used as a fallback if no
vfs.root.mountfrom is set.  It's generally useful only when you bypass
ubldr and load the kernel directly from uboot.

> 
> 2) If you have a good image with a kernel and rootfs on USB use a
> u-boot environment variable:
> 
> uboot> setenv loaderdev disk1
> 

This is the way to get the kernel and the root filesystem to come from
the same alternate disk device/partition.

> 
> 3) If you can set the loader.conf file and want to run kernel on a
> default image (sdcard) and rootfs on USB:
> 
> /boot/loader.conf
> 
> (on the sd-card root) has
> 
> vfs.root.mountfrom="ufs:/dev/ufs/bsd11"

If you have this in loader.conf, it will override ubldr's logic that
automatically sets it from what it finds in /etc/fstab.  You'd get the
effect of the kernel coming from sdcard, and the rootfs from another
device.

-- Ian




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