Solved Upgrading the system from CD not from the Net

Today I upgraded (still in progress) the x32 installation (VM) from 9.3-RELEASE to 10.1-RELEASE, following the instructions in the Handbook. It's not the first time I upgrade a FreeBSD system, so it should go to a good end. My question is related to the source of the files to upgrade. I use freebsd-update to upgrade the system (major, minor and patch level versions), it downloads the files from Internet and execute it's job, my Internet connection is 0.8 Mbps, it takes ages to download all files (38'650).

When a new release of FreeBSD come out, I download CDs to test them as a VM or on a real machine, so my question is: Can I instruct freebsd-update to download files from an FreeBSD installation CD (disk1 or dvd or whatever distribution CD) instead of the Internet, only when I upgrade from some version (major or minor) to another, not for patch level?

The -s option should work, but what I should extract in that location? That is, should I copy the content of the (for example) disk1 CD somewhere on an http (or ftp or whatever?) location on my local net and use it for -s option? How should I proceed?

Many thanks for your answers
 
I was out of upgrading the system. Something wrong happened, perhaps for a reason not depending on the system. I always stay on GENERIC Kernel, however restarting machine after the upgrade but before the last step (recompile all ports and the final freebsd-update install), I had to boot with
Code:
nextboot -k GENERIC
shutdown -r now
Not a big issue. The big kauna come next. In /boot/loader.conf I normally load VESA driver with the line vesa_load="YES", starting from version 10.0 of FreeBSD, the new console driver vt is available instead of sc, on another machine (64bit), upgraded to RELEASE 10.0 many months ago, I set that new console driver, so I sat in the 32bit too.

Boom, the system no more start, kernel panic.

FreeBSD x32.png


The installations are both virtual machines. The only solution I see is to mount the 32bit HD in the 64bit machine, edit /boot/loader.conf and remove the line vesa_load="YES".

The machine is now upgraded, anyways.
 
Upgrading from a CD or USB memory stick is not supported unfortunately. What the installation disks contain is a set of distribution tarballs intended only to be used for fresh installs. You can in an emergency use the distribution tarballs to extract missing pieces let's say /boot/loader if it's missing for some reason but you can't just extract the whole sets on top of an existing system because the sets contain all the initial configuration files in /etc including /etc/master.passwd that you don't want to overwrite.
 
Than you kpa for your reply. Upgrading the system is easy, but it takes a lot of time if the network connection is slow. In my case I had to call my ISP because of a break somewhere on the line (no phone, no ADSL). 'sfiga', in italian. However if it's not possible to get files from a local CD or something, no matter, it's an operation that happens once per year, more or less.

I also solved the problem above (mounting HD on another machine), but it should better if solved at root (if vesa driver is not accessible, don't load it and go forth).

FreeBSD x32-2.png


mmmh, 'shm' sysctl variables in this machine.
 
A thing I still not understood. I installed this machine (VM) in 2012 with FreeBSD RELEASE-9.0 and never compiled a custom Kernel. After installing it I created a copy of the Kernel in /boot/GENERIC (I decided to always do this). Year after year I applied patches and upgraded minor versions up to RELEASE-9.3. Then I come to the major version upgrade in these days.

As I mentioned, rebooting before the last step, the system show a lot of rc variables not found related errors, so I decided to reboot the system with
Code:
nextboot -k GENERIC
shutdown -r now
instead of only
Code:
shutdown -r now
The system booted with no errors, in this situation uname show the version RELEASE-9.0, so my question is: Is the /boot/GENERIC directory (created few years ago) updated when I do a minor mersion upgrade of the system? And is it updated after a major version upgrade? And is it upgraded after a patch level update that involves modification in the kernel?

If not, then it should be specified somewere in the Handbook that is the user responsibility to keep the content of /boot/GENERIC directory updated, also if it use GENERIC Kernel. This falls under my very own 'good practices to maintains a FreeBSD system', not necessarily should be adopted by FreeBSD developers. In other words, keeping the GENERIC Kernel copy updated must be a responsibility of the user, but inform him of this. Thank you
 
Ok the /boot/kernel is the default and currently installed Kernel. When upgrading or updating the whole system, not always things goes to the right direction, for that reason the /boot/GENERIC directory should be created with the GENERIC Kernel of the currently installed system version. For people used to compile its own customized Kernel, making a copy of it is a usual practice, perhaps. I'm talking about people who does not build a custom Kernel (vanilla FreeBSD), they have to make a copy of it before upgrade from a major or minor version of FreeBSD (to avoid troubles if something goes wrong).

Now, from my point of view, what I have to do is to prune the /boot/GENERIC directory and copy in it the content of /boot/kernel directory just before to execute freebsd-update when upgrading to a major/minor version of the system (in a wrapper script), keeping in mind that /boot/kernel contains the GENERIC kernel of the current system version, this does not apply if a custom Kernel is in use. And perhaps, I should also make this operation after a patch level update.

Thank you for clarifying me this, I still have to solve this with a custom Kernel.
 
mmmmh, no. If /boot/GENERIC directory does not exists, I create it with the copy of current Kernel just before the upgrade, if already exists prune/copy just after an upgrade (if succeeded).
 
Back
Top