Boot device question

Jeremy Chadwick koitsu at FreeBSD.org
Thu Oct 23 08:47:50 PDT 2008


On Thu, Oct 23, 2008 at 10:42:26AM -0500, Greg Larkin wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Chris Pratt wrote:
> > I have a server with 6 hot-swap SATA slots. It was delivered
> > with the first slot empty and 5 drives set up as /dev/ad4 through
> > /dev/ad12. I'd never paid attention to this until I wanted to add
> > a 6th, now 4 years later. When I popped it in, I realized the
> > empty bay was not 6 but rather bay 1, and of course it wouldn't
> > boot. Presumably /dev/ad2 had now come alive for the first time.
> > I popped out the disk, rebooted and after it was up, I plugged it
> > back in (hot) and ran sysinstall. It didn't see the disk so I couldn't
> > fdisk it. No device files existed for it.
> > 
> > I was thinking a right approach would be to change fstab to
> > reference ad2 for all the system disk file systems, shutdown,
> > move that drive to the first bay and plug the new drive into the
> > 2nd bay. This seemed like more of a permanent solution.
> > If those /dev/ad* files are created at boot dynamically,
> > this should work. I've found docs that imply that they are
> > dynamically discovered and created from FreeBSD 5 forward
> > (auto-discovery?). Are they or do I need to create them prior to
> > start up.
> > 
> > The thing is, there is no easy recovery from failure here since I
> > have no console monitor to let me see what's going on or to fix
> > fstab if it fails (counter-intuitively, the only place I can access
> > the console is from remote locations ;-)), so I just want to know
> > if I'm thinking straight? The plan is:
> > 
> > 1. Change /etc/fstab entries for ad4 filesystems to ad2
> > 2. Shutdown
> > 3. Put the system disk in Bay 1
> > 4. Power up
> > 
> > Should it boot?
> 
> Hi Chris,
> 
> I don't know the answer to that question, but I do know that you can
> wire physical devices to specific devices files in /dev.  I use the
> /boot/device.hints file to do that.  Check this page for more
> information:
> http://threads.seas.gwu.edu/cgi-bin/man2web?program=scbus&section=4
> 
> Halfway down the page, you'll see directives like:
> 
> hint.da.0.at="scbus0"
> hint.da.0.target="0"
> hint.da.0.unit="0"
> 
> I believe you can do something similar with your ad devices, and force
> the new drive to a different /dev/ad? device file that doesn't cause a
> boot problem.

AFAIK, at/target/unit are hint commands only available to da(4),
at least that's what I see from the source code.  I see no such
support for ad(4), so I do not think this will work for him.

Also, I'll remind people once more: stop modifying device.hints!  The
file can/will be overwritten in some cases, and you will lose your
changes!  You're living dangerously.

Use loader.conf to do what you need; you can literally copy/paste
those lines into loader.conf and achieve the same, without the risks.

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-questions mailing list