Can't upgrade jails to 8.0 using freebsd-update

Martin Turgeon freebsd at optiksecurite.com
Thu Oct 15 19:17:20 UTC 2009


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


More information about the freebsd-jail mailing list