how to set dumpdev

Brian Fundakowski Feldman green at freebsd.org
Sat Apr 30 09:28:50 PDT 2005


On Fri, Apr 29, 2005 at 07:18:06PM -0700, Doug White wrote:
> On Thu, 28 Apr 2005, Brian Candler wrote:
> 
> > On Thu, Apr 28, 2005 at 05:37:16AM -0400, Andre Guibert de Bruet wrote:
> > > >	i can't use dumpon, since the kernel is panicking on boot, so
> > > >tried in loader.conf:
> > > >	dumpdev="/dev/ar0s1b"
> > > >but getting:
> > > >db> call doadump
> > > >Cannot dump. No dump device defined.
> > > >0x25
> > > >
> > > >i need this is for current 6.0
> > > >thanks,
> > > >	danny
> > > >
> > >
> > > That directive, along with dumpdir, would be set in /etc/rc.conf.
> >
> > According to `man dumpon` (on a 5-STABLE system):
> >
> >      Since dumpon cannot be used during kernel initialization, the dumpdev
> >      variable of loader(8) must be used to enable dumps for system panics
> >      which occur during kernel initialization.
> >
> > But I don't find 'dumpdev' referenced anywhere under /usr/src/sys/boot/. Is
> > the documentation wrong?
> 
> It wouldn't be there, but it alos loks like that tunable has gone away
> when GEOM took over definign the dump device. Now it needs a struct to
> specify the target, and you wouldn't be able to set it until way late in
> the boot anyway (when GEOM attaches the disks).

Once that point has been reached there's little technical reason that
it couldn't automagically pick up a loader environment variable, or by
adjustable by a DDB command.  Way back when, you could, after having
reached the appropriate part of the boot sequence, do something much
like:

db> show disk/ad0s1b
struct cdev *=0xc2f00000
db> w dumpdev

In this case, you would presumably be able to do this by booting into
DDB early and setting "break execve" to stop right before init is
executed.  Of course, this method wouldn't be particularly useful if
the problem is occurring even before that.  The easiest potential
location I can think of to stick a tunable would be just before the
vfs_mountroot() in start_init(), but then after moving the g_waitidle()
from vfs_mountroot() to just before this check in start_init().

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\


More information about the freebsd-current mailing list