From owner-freebsd-jail@FreeBSD.ORG Thu Oct 15 19:17:20 2009 Return-Path: Delivered-To: freebsd-jail@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 202891065670 for ; Thu, 15 Oct 2009 19:17:20 +0000 (UTC) (envelope-from freebsd@optiksecurite.com) Received: from relais.videotron.ca (relais.videotron.ca [24.201.245.36]) by mx1.freebsd.org (Postfix) with ESMTP id E815D8FC13 for ; Thu, 15 Oct 2009 19:17:19 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 8BIT Content-type: text/plain; charset=ISO-8859-1; format=flowed Received: from [69.69.69.193] ([24.201.201.211]) by VL-MR-MR001.ip.videotron.ca (Sun Java(tm) System Messaging Server 6.3-8.01 (built Dec 16 2008; 32bit)) with ESMTP id <0KRK004MPL77MT60@VL-MR-MR001.ip.videotron.ca> for freebsd-jail@freebsd.org; Thu, 15 Oct 2009 15:09:08 -0400 (EDT) Message-id: <4AD77352.5080908@optiksecurite.com> Date: Thu, 15 Oct 2009 15:09:06 -0400 From: Martin Turgeon User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) To: =?ISO-8859-1?Q?Eirik_=D8verby?= References: <4ACE2829.6030804@optiksecurite.com> <295A1256-A620-4DD1-8B7F-22BDB216D164@anduin.net> <4ACE37D6.9040908@optiksecurite.com> <4AD75F8B.10906@optiksecurite.com> <4AD77075.3010907@optiksecurite.com> In-reply-to: Cc: freebsd-jail@freebsd.org Subject: Re: Can't upgrade jails to 8.0 using freebsd-update X-BeenThere: freebsd-jail@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion about FreeBSD jail\(8\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Oct 2009 19:17:20 -0000 Eirik Øverby a écrit : > > On 15. okt. 2009, at 20.56, Martin Turgeon wrote: > >> Eirik Øverby a écrit : >>> >>> On 15. okt. 2009, at 19.44, Martin Turgeon wrote: >>> >>>> Eirik Øverby a écrit : >>>>> >>>>> On 8. okt. 2009, at 21.04, Martin Turgeon wrote: >>>>> >>>>>> Eirik Øverby a écrit : >>>>>>> On 8. okt. 2009, at 19.58, Martin Turgeon wrote: >>>>>>> >>>>>>>> Hi everyone! >>>>>>>> >>>>>>>> I just upgraded a 7.2-REL to 8.0RC1 using freebsd-update. The >>>>>>>> upgrade >>>>>>>> went fine on the base system following the procedure written in >>>>>>>> the >>>>>>>> announcement email by Ken Smith. My problem is when I try to >>>>>>>> upgrade my >>>>>>>> jails, I get this message: >>>>>>>> >>>>>>>> # freebsd-update -b /usr/jail/mysql/ fetch install >>>>>>>> Looking up update.FreeBSD.org mirrors... 3 mirrors found. >>>>>>>> Fetching metadata signature for 8.0-RC1 from >>>>>>>> update5.FreeBSD.org... done. >>>>>>>> Fetching metadata index... done. >>>>>>>> Inspecting system... done. >>>>>>>> Preparing to download files... done. >>>>>>>> >>>>>>>> No updates needed to update system to 8.0-RC1-p0. >>>>>>>> No updates are available to install. >>>>>>>> Run '/usr/sbin/freebsd-update fetch' first. >>>>>>>> >>>>>>>> But, if I compare the dates of the files in the base system to >>>>>>>> the files >>>>>>>> in the jails, it's obvious that the jails are not up to date. >>>>>>>> >>>>>>>> It seems like freebsd-update doesn't care about the basedir I >>>>>>>> specified. >>>>>>> >>>>>>> It does, but if you do a 'uname -a' - inside or outside the jail >>>>>>> - you'll see that it reports the OS revision of the host. So you >>>>>>> should have updated your jails first, then the host ... >>>>>>> >>>>>> Ok but if I update in the process of upgrading the first jail, >>>>>> the new kernel will be installed and asked to reboot. After that, >>>>>> I will have the same problem when upgrading the other jails and >>>>>> the base system, right? There must be something I don't >>>>>> understand well. Thanks a lot for your answer. >>>>> >>>>> The kernel will be installed inside the jail, and the message >>>>> about rebooting can be safely ignored. Just run the install >>>>> command once more, and you're done and can move on to the next >>>>> jail. :) >>>>> >>>>> /Eirik >>>>> >>>>> >>>>>> Martin >>>>>>> One way to get around it is to replace /usr/bin/uname with a >>>>>>> shell script, which calls the original uname (which you have >>>>>>> renamed) and pipes through something like sed to replace the >>>>>>> revision with what you used to have: >>>>>>> >>>>>>> #!/bin/sh >>>>>>> /usr/bin/uname.org $* | sed s/"8.0-RC1-p0"/"7.2-RELEASE_p3"/g >>>>>>> >>>>>>> And this is a seriously butt ugly hack. >>>>>>> >>>>>>> /Eirik >>>>>>> >>>>>>>> Thanks a lot for your help, >>>>>>>> >>>>>>>> Martin >>>>>>>> >>>>>>>> >>>> Thanks a lot! It worked great, but I'm still concerned by the fact >>>> that the world in the jails are from 8.0 while the kernel is still >>>> at 7.2 during the updates of the jails. In the normal update >>>> procedure, the kernel is upgraded first, rebooted and then the >>>> world is updated. It must have a good reason for this. Why can I >>>> jail be an exception to this rule? >>> >>> Because when you upgrade the host, the very binaries you are >>> installing are being installed by ... the binaries you are >>> installing. Which is why you'll want them to be reasonably in-sync >>> with the kernel. >>> >>> When upgrading jails using freebsd-update, my understanding is that >>> it uses the host binaries to push files to the target directory >>> (basedir). The risk of trouble is therefore very low (I've upgraded >>> dozens of jails from 7.x to 8.0-RC1 without any issues), though I >>> can probably imagine situations where this is not the case - i.e. if >>> the upgrade depends on functionality in an upgraded binary in order >>> to be able to complete the upgrade, however that sounds like a very >>> unlikely scenario to me. And *any* use of the basedir option to >>> freebsd-update would break in such a case. >>> >>> /Eirik >>> >> Sounds reasonable to me. Thanks for your quick reply. > > Reasonable != true. And for that matter, reasonable != reasonable. > YMMV etc. etc. I haven't peeked (much) into the code, so I'm just > guessing from my experiences. ;) > > People in the know should correct me if I'm wrong.. > > /Eirik I must admit that I was looking for a confirmation... ;) I thought it was a problem a lot of people would have faced... Martin