fubar'ed it good this time...

Dr. A. Haakh bugReporter at Haakh.de
Mon Jul 4 22:30:43 UTC 2011


Kurt Buff schrieb:
> On Thu, Jun 30, 2011 at 17:31, Kurt Buff<kurt.buff at gmail.com>  wrote:
>    
>> On Tue, Jun 28, 2011 at 06:50, Dr. A. Haakh<bugReporter at haakh.de>  wrote:
>>      
>>> Polytropon schrieb:
>>>        
>>>> On Mon, 27 Jun 2011 06:40:27 -0700, Kurt Buff wrote:
>>>>
>>>>          
>>>>> Your advice sounds reasonable, but that site seems devoted to zfs
>>>>> bootables.
>>>>>
>>>>> I wonder if an 8.1 livefs iso will do the trick...
>>>>>
>>>>>            
>>>> Check if you can download FreeSBIE somewhere. It's a live system
>>>> using the 5.x and 6.x kernel which should be fine. Next to two
>>>> GUI modes (light, heavy) it also has a versatile "maintenance mode"
>>>> for such operations. I have already successfully used this system
>>>> for solving similar situations, for diagnostics, and for data
>>>> recovery preparation.
>>>>          
>>> The loader obviously knows how to deal with the filesystem because he loads
>>> the failing new kernel. So the easiest solution would be to boot an older
>>> kernel if available. I don't know how freebsd-update deals with older
>>> kernels,
>>> he should still be around. First guess is /boot/kernel.old/kernel.
>>> So get the loader-prompt, "unload kernel" and try "load
>>> /boot/kernel.old/kernel".
>>>
>>> Andreas
>>>        
>> OK - to continue, while I have a few free minutes.
>>
>> I have been able to load the old kernel by going to the loader prompt
>> from the boot menu, and doing
>>      unload kernel
>>      load /boot/kernel.old/kernel
>>
>> That barked about linproc in fstab, so I edited that out.
>>
>> Then, the next go-round: It complained about mismatches on
>> daemon_saver.ko - a version mismatch, so I've commented that out of
>> /etc/rc.conf. It also complained about linux.ko, so that's been
>> commented out in /etc/rc.conf as well.
>>
>> I'm now able to reboot cleanly with the old kernel.
>>
>> After doing 'freebsd-update install' for the second time, I still
>> can't get 8.2 to boot - same issue, only acd0 is recognized. However,
>> I'm logged in as root under the old kernel, though I haven't start
>> XFCE4, and don't have wireless running.
>>
>> This one is getting to be fun...
>>
>> Kurt
>>      
> So, I tried booting from the old kernel again, and then did a
> 'freebsd-update rollback', and that worked just fine. I thought I'd
> try again, but first did a 'freebsd-update fetch' and 'freebsd-update
> install' to get the latest 8.1 updates.
>
> That worked just fine, so I did a 'freebsd-update -r 8.2-RELEASE
> fetch' again, then a 'freebsd-update install', which went just fine,
> and after that rebooted as directed to attempt the second
> 'freebsd-update install'.
>
> That's when the same thing happened - i got dumped into the mountroot
> prompt again. And, again, rebooting and escaping to the loader prompt
> allows me to unload the kernel, load /boot/kernel.old/kernel then
> autoboot, and boot up. Same as before.
>
> Any thoughts?
>    
Redo the rollback to 8.1 and install the 8.2-STABLE source-tree. You can 
install the 8.1-sources from cd and update them to 8.2-STABLE using csup.

Put the following lines in /etc/make.conf
SUP_UPDATE=     YES
SUP=            /usr/bin/csup
SUPHOST=        cvsup2.de.freebsd.org
SUPFILE=        /usr/share/examples/cvsup/stable-supfile

Make sure that stable-supfile contains the right tag
*default release=cvs tag=RELENG_8

Then goto /usr/src and "make update |tee _Update.log"

Once the source-tree is up-to-date:

Have a look at the FreeBSD Handbook: Chapter 8 - Configuring the FreeBSD 
Kernel.

Copy GENERIC to e.g. MYKERNEL, edit MYKERNEL and add some debug-flags. 
See /sys/conf/NOTES for additional debug-options. You may as well try 
GENERIC - maybe your problem is gone...
Then go to /usr/src and do s.th. like "make buildkernel 
KERNCONF=MYKERNEL" and if the kernel built fine install it: "make 
KERNCONF=YOURKERNEL installkernel". You can also add KERNCONF=MYKERNEL 
to /etc/make.conf instead of adding it to the make command.
Installing the new kernels moves /boot/kernel to /boot/kernel.old and 
installs the new one in /boot/kernel. If the new kernel fails again, you 
can delete it: "rm -rf /boot/kernel && mv /boot/kernel.old /boot/kernel" 
thus putting the previous kernel in the right place.
If the new kernel fails again, then press the Scroll-key and navigate to 
the disk-probe usind page-up-key. Write down the messages or take a 
photo and post it to this list.

If the STABLE kernel boots fine you will probably want to remove all the 
debugging stuff and rebuild it.

If you intend to keep the 8.1-kernel move it to e.g /boot/kernel-8.1 so 
it will not be deleted, when you install new ones and you can always 
"load /boot/kernel-8.1/kernel" from the loader

Once the new kernel boots fine, cd /usr/src and follow the instructions 
in Makefile how to build and install a new kernel and a new world.

At this point there is no more need for kernel-8.1: delete it.

Andreas


More information about the freebsd-questions mailing list