Date: Wed, 14 Jan 2009 10:25:48 -0500 From: Michael Powell <nightrecon@verizon.net> To: freebsd-questions@freebsd.org Subject: Re: updating to 7.1 with a small root slice Message-ID: <gkl04f$8f3$1@ger.gmane.org> References: <94136a2c0901132313ga018517idd21cf7a784aae7f@mail.gmail.com> <94136a2c0901140553i405b455fv342b8f145e87b02b@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Zbigniew Szalbot wrote: > Hello, > > On Wed, Jan 14, 2009 at 08:13, Zbigniew Szalbot <zszalbot@gmail.com> > wrote: >> Dear all, >> >> I am looking for your advice. Due to a very stupid design decision my >> / slice is only 256 MB. It seems too little so whenever I compile a > Actually it is 242MB I have one box with only 200MB for /. I had already displaced out GENERIC with highly stripped down kernel which made for space. I did at one point run out of space and the stuff mentioned further down saved the day for me. >> new kernel, I need to move the kernel.old to a different slice to >> install the new one. Then I pray, hope for the best and reboot. >> However, I read that if I want to update to 7.1 I will need to boot a >> generic kernel at some point. What option do I have? > > I found the problem. My oh my - I had > makeoptions DEBUG=-g > uncommented. > > When I commented it out, the new compiled kernel is only 32MB whereas > the old one was 128 or so MB. > > So I am happy about it now. However, I do not have a GENERIC kernel in > /boot and I will need it to do nextboot when I upgrade to 7.1. > > I thought I'd use the procedure described here > http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-upgrading-freebsdupdate.html > to compile a generic kernel > > # cd /usr/src > # env DESTDIR=/boot/GENERIC make kernel > # mv /boot/GENERIC/boot/kernel/* /boot/GENERIC > # rm -rf /boot/GENERIC/boot Never tried any of that. I do the make buildkernel KERNCONF=xxxxxxx. Realize you should not be running out of space on / during this procedure as the build is occurring in /usr/obj. You will only run out of space on / if the make installkernel KERNCONF=xxxxxx won't fit. > When I make the GENERIC kernel, I again run out of space (I still have > about 60MB free in /). So I guess the system is probably using the > same "makeoptions DEBUG=-g" settings for the generic kernel. So my > question is where is the kernel conf file based on which the generic > kernel is compiled? > > Is it in /usr/src/sys/i386/conf/GENERIC ? > Yes - and it has in it by default: makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols So if you're not building a developer kernel you can comment this out. I don't remember for sure if this truly matters, or not, but I seem to recall the size of my kernel directories decreased dramatically when I placed STRIP= -s in /etc/make.conf. It seemed a favorable thing to do once upon a time and it's been there ever since. I thought the system variables had migrated to src.conf and the make.conf only applied to ports. In addition I also have in make.conf NO_PROFILE= true and in src.conf is WITHOUT_PROFILE= true. My stripped down kernels are 3.1MB for a 1 NIC driver and 3.4MB for a 2 NIC kernel. Of course, you won't get these small sizes for GENERIC! -Mike
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?gkl04f$8f3$1>