# Upgrading obsolete system



## myfbsdreader (Jan 5, 2015)

We have a system that is old and broken and every attempt to update fails -- but everything else including webserver and fileserver works.  It is running 8.3-STABLE.  We have other servers running 9.3.  Could we

get the source for 8.4-STABLE to an external disk on a 9.3 machine,
make buildworld and make buildkernel on the 9.3 machine and
move the disk to the 8.3 machine and then make installkernel and installworld?
Would we then have a consistent up-to-date 8.4 machine on the broken server?  The question is whether we can build an 8.4 system on a 9.3 machine by downloading 8.4 source and using buildkernel and buildworld.

If that would work, then we could work on updating ports and so on.


----------



## getopt (Jan 5, 2015)

If you regard your system as broken while still having access to your data, just backup your data and system/server configuration. Make a clean install of a supported FreeBSD version of your choice. Restore your data and configurations. Fix the new system to your needs and you are done.


----------



## myfbsdreader (Jan 5, 2015)

getopt said:


> If you regard your system as broken while still having access to your data, just backup your data and system/server configuration. Make a clean install of a supported FreeBSD version of your choice. Restore your data and configurations. Fix the new system to your needs and you are done.



We know some of the web apps will not work with recent PHP versions.  So it would help if we could fix the OS, then get to work on the ports and apps.  I don't know how to make a clean install but save the old ports so we can untangle this spaghetti.


----------



## getopt (Jan 5, 2015)

A clean installation is an installation on sanitized or otherwise emptied or new media.

What about telling us which PHP version you are running on that server and what those ports/apps are?


----------



## myfbsdreader (Jan 6, 2015)

getopt said:


> A clean installation is an installation on sanitized or otherwise emptied or new media.
> 
> What about telling us which PHP version you are running on that server and what those ports/apps are?



The old server is running apps that were written by a developer who was here for PHP 5.2.  The reason the machine is so obsolete is that someone tried to update the ports years ago, broke the apps, downgraded and no one has touched it since.


----------



## kpa (Jan 6, 2015)

You could mount the disk from the old server to the new system and then do the following after `make buildworld buildkernel` with the 8.4 sources. This assumes that the disk from the old server is mounted at /mnt:


```
make -C /usr/src installworld installkernel DESTDIR=/mnt
mergemaster -D /mnt -Ui
make -C /usr/src delete-old delete-old-libs DESTDIR=/mnt
```

That would take care of the OS upgrade to 8.4 and leave the installed ports untouched. The mergemaster(8) step might be quite daunting because I think the CVS to SVN transition happened after 8.3 and the step might prompt about just about every single file.


----------



## myfbsdreader (Jan 6, 2015)

kpa said:


> You could mount the disk from the old server to the new system and then do the following after `make buildworld buildkernel` with the 8.4 sources. This assumes that the disk from the old server is mounted at /mnt:
> 
> 
> ```
> ...





kpa said:


> You could mount the disk from the old server to the new system and then do the following after `make buildworld buildkernel` with the 8.4 sources. This assumes that the disk from the old server is mounted at /mnt:
> 
> 
> ```
> ...



That's great, thanks.  The "disk" on the old system is an internal RAID array.  I was wondering about going the other way:  mount a usb disk on a 9.3 system; put the sources on the usb disk and build; move the usb disk to the old system and install.

I suppose I could install a fresh 8.4 system on a usb disk, boot the old system off the usb disk, and install the new os on the old system as you describe above.


----------

