An adage for gmirror users

Reid Linnemann lreid at
Wed Jun 3 20:47:57 UTC 2009

I was recently updating my 7-STABLE system from a 7.1-PRERELEASE era
tree, and after having quite an unexpected headache doing so I have a
few words of wisdom.

When updating FreeBSD, treat it like a car and ALWAYS CHECK YOUR MIRRORS!

My mirror gm0 consists of two SATA disks, ad4 and ad6. Now, I have a
finicky controller that sporadically spits out READ_DMA and READ_DMA48
timeouts inexplicably. So at some point in time immemorial after
installing the last kernel, ad4 suffered a number of READ_DMA48 errors
and dropped out without being removed from the mirror's provider list .
So when I installed my new flashy kernel with all my filesystems
mounted, it was put into /boot/kernel on the mirror, which at that point
consisted of only ad6. On boot, the loader grabbed the kernel from
ad4s1a by default, since that's the first probed disk, and that kernel
is not the one I installed to the mirror! It took a little while for
that to sink in as I built and rebuilt and re-re-built the kernel,
perplexed that not only did my version in uname never changed from
7.1-PRERELEASE, but also that the build number in uname output never
changed and I could see the recently written kernel in an ls of
/boot/kernel (when all filesystems were mounted). I gmirror forget'ed
gm0 and rebuilt ad4, and all was right in the world again.

So there you have it, learn from my oblivious mistake and remember to
check your mirrors!

More information about the freebsd-questions mailing list