Rebuilding World Problems

Chris H. chris# at 1command.com
Wed Feb 13 00:35:10 UTC 2008


Quoting Gavin Spomer <spomerg at cwu.EDU>:

> Please forgive me if this is not the appropriate list to post this 
> on. If this is a topic for another, more appropriate FreeBSD list, 
> then would someone please kindly point this guy in the right 
> direction? :)
>
> I'm on the security advisory list too and got 2 emails about patches 
> about a month ago. They came with instructions to follow for 
> patching... excellent! Then, the last step has a link to the FreeBSD 
> Handbook's Rebuilding world. Yes, I admit, it's taken me almost a 
> month to get the courage (and find the time) to do this. I'm usually 
> pretty fearless when exploring computer things. I don't really have 
> the best way to backup either. I finally just made tarballs of 
> important directories and scp'd them to one of my Linux machines. I 
> finally got to the point where I booted to single user mode (first 
> time for me) and that's where my problems began. It might be useful 
> to note on the instructions page that you don't have to type "boot 
> -s" to go into single user mode; it's easier to to just select option 
> #4.
>
> First, let me note that step one in rebuilding world should be "cd 
> /usr/src", not "make buildworld". I guess I was supposed to know that 
> for some reason. Having said that, I figured I would also have to be 
> in /usr/src for the "make installworld" step. But I couldn't do that! 
> Why? I could cd to /usr, but not /usr/src!
>
> So, I decided to go ahead and try the "mergemaster -p" step. I was 
> given an error that was something like "cannot find mergemaster". So 
> I thought that maybe in single user mode my $PATH isn't set, so I 
> thought about entering "/sbin/mergemaster -p", but I didn't know if 
> that was the path or not and I chickened out. :( Maybe the fact that 
> I hit Return to choose /bin/sh while going into single user mode 
> instead of my preferred bash had something to do with it?
>
> Here's a slightly dumb question: when I get this all figured out, do 
> I have to start all over from "make buildworld" or can I just 
> continue with booting in single user mode and "mergemaster -p"? I'm 
> guessing I can just continue, but I thought it was important to ask.
>
> Here's a little more intelligent question or two. ;) Is there a way 
> to do this while logged in via ssh? I don't mind making the trip to 
> our computer room so I can select #4 at the FreeBSD prompt, but it's 
> not all that convenient. Also, how long (in general) do the steps 
> "mergemaster -p" through the final reboot take? I am running FreeBSD 
> on a test server, but if I were to use it for my production servers 
> (which I am considering), the down-time of being in single user mode 
> would be a concern.
>
> Thanks to everyone who takes the time to read this. :)

Greetings Gavin,
Yes, you're quite correct on all accounts. The doc's are a bit terse
in these areas. Which, as I read your email, reminds me why I _should_
send-pr a patch with some additional info in these areas. I guess I'm
like so many others - once I figured it all out, I got so involved
with it all, I completely forgot there was some issues with the docs.
NOTE: I'm not the author of the documentation. :)
OK I'm going to give you a "cheat sheet" that I hope you'll find
helpful in the future - be aware, this is NOT an excuse to ignore
the /usr/src/UPDATING file, as THAT document will QUITE likely
contain more timely information regarding little, but important
changes, that can make all the difference.

That said, here goes:

--------------------------------------------------------
* On an initial install ALWAYS buildworld BEFORE buildkernel
* Unless having troubles building a kernel, it is usually
   best to ensure /etc/make.conf is empty
* If REbuilding world/kernel it is usually a good idea to
   perform the following:

cd /usr/obj
chflags -R noschg *
rm -rf *

(see chflags(1) for more information)
--------------------------------------------------------
OK here we go:

cd /usr/src/sys/<ARCH>/conf
cp ./GENERIC ./YOUR_CHOSEN_NAME
edit ./YOUR_CHOSEN_NAME and adjust as necessary

cd /usr/src
make buildworld

* * * * OPTIONAL * * * *
NOTE: SINGLE CPU:
make -j4 buildworld

NOTE: MULTI CPU:
make -j(6 through 10) buildworld
* * * * * * * * * * * *

make buildkernel KERNCONF=YOUR_KERNEL_HERE
make installkernel KERNCONF=YOUR_KERNEL_HERE

reboot (in single user mode)

fsck -p (optional, but a good idea)
mount -u /
mount -a -t ufs
swapon -a (most cases; optional)

cd /usr/src
mergemaster -p
make installworld
mergemaster
reboot

That was simply a QUICK cheat sheet, and does not
replace good research. But I hope it helps. :)

--Chris

>
> - Gavin
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>
>



-- 
panic: kernel trap (ignored)





More information about the freebsd-stable mailing list