Changeset View
Changeset View
Standalone View
Standalone View
UPDATING
Show First 20 Lines • Show All 2,511 Lines • ▼ Show 20 Lines | COMMON ITEMS: | ||||
----------------------------------------------------------- | ----------------------------------------------------------- | ||||
# Note: sometimes if you are running current you gotta do more than | # Note: sometimes if you are running current you gotta do more than | ||||
# is listed here if you are upgrading from a really old current. | # is listed here if you are upgrading from a really old current. | ||||
<make sure you have good level 0 dumps> | <make sure you have good level 0 dumps> | ||||
make buildworld | make buildworld | ||||
make buildkernel KERNCONF=YOUR_KERNEL_HERE | make buildkernel KERNCONF=YOUR_KERNEL_HERE | ||||
make installkernel KERNCONF=YOUR_KERNEL_HERE | make installkernel KERNCONF=YOUR_KERNEL_HERE | ||||
[1] | [3] | ||||
<reboot in single user> [3] | <reboot in single user> [4] | ||||
etcupdate -p [5] | etcupdate -p [5] | ||||
make installworld | make installworld | ||||
etcupdate -B [4] | etcupdate -B [6] | ||||
make delete-old [6] | make delete-old [7] | ||||
<reboot> | <reboot> | ||||
To cross-install current onto a separate partition | To cross-install current onto a separate partition | ||||
-------------------------------------------------- | -------------------------------------------------- | ||||
# In this approach we use a separate partition to hold | # In this approach we use a separate partition to hold | ||||
# current's root, 'usr', and 'var' directories. A partition | # current's root, 'usr', and 'var' directories. A partition | ||||
# holding "/", "/usr" and "/var" should be about 2GB in | # holding "/", "/usr" and "/var" should be about 2GB in | ||||
# size. | # size. | ||||
Show All 13 Lines | COMMON ITEMS: | ||||
<do a "native" rebuild/install as described in the previous section> | <do a "native" rebuild/install as described in the previous section> | ||||
<maybe install compatibility libraries from ports/misc/compat*> | <maybe install compatibility libraries from ports/misc/compat*> | ||||
<reboot> | <reboot> | ||||
To upgrade in-place from stable to current | To upgrade in-place from stable to current | ||||
---------------------------------------------- | ---------------------------------------------- | ||||
<make sure you have good level 0 dumps> | <make sure you have good level 0 dumps> | ||||
make buildworld [9] | make buildworld [1] | ||||
make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] | make buildkernel KERNCONF=YOUR_KERNEL_HERE [2] | ||||
make installkernel KERNCONF=YOUR_KERNEL_HERE | make installkernel KERNCONF=YOUR_KERNEL_HERE | ||||
[1] | [3] | ||||
<reboot in single user> [3] | <reboot in single user> [4] | ||||
etcupdate -p [5] | etcupdate -p [5] | ||||
make installworld | make installworld | ||||
etcupdate -B [4] | etcupdate -B [6] | ||||
make delete-old [6] | make delete-old [7] | ||||
<reboot> | <reboot> | ||||
Make sure that you've read the UPDATING file to understand the | Make sure that you've read the UPDATING file to understand the | ||||
tweaks to various things you need. At this point in the life | tweaks to various things you need. At this point in the life | ||||
cycle of current, things change often and you are on your own | cycle of current, things change often and you are on your own | ||||
to cope. The defaults can also change, so please read ALL of | to cope. The defaults can also change, so please read ALL of | ||||
the UPDATING entries. | the UPDATING entries. | ||||
Also, if you are tracking -current, you must be subscribed to | Also, if you are tracking -current, you must be subscribed to | ||||
freebsd-current@freebsd.org. Make sure that before you update | freebsd-current@freebsd.org. Make sure that before you update | ||||
your sources that you have read and understood all the recent | your sources that you have read and understood all the recent | ||||
messages there. If in doubt, please track -stable which has | messages there. If in doubt, please track -stable which has | ||||
much fewer pitfalls. | much fewer pitfalls. | ||||
[1] If you have third party modules, such as vmware, you should disable | [1] If CPUTYPE is defined in your /etc/make.conf, make sure to use the | ||||
"?=" instead of the "=" assignment operator, so that buildworld can | |||||
override the CPUTYPE if it needs to. | |||||
MAKEOBJDIRPREFIX must be defined in an environment variable, and | |||||
not on the command line, or in /etc/make.conf. buildworld will | |||||
warn if it is improperly defined. | |||||
[2] The new kernel must be able to run existing binaries used by an | |||||
installworld. When upgrading across major versions, the new kernel's | |||||
configuration must include the correct COMPAT_FREEBSD<n> option for | |||||
existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure | |||||
to do so may leave you with a system that is hard to boot to recover. A | |||||
GENERIC kernel will include suitable compatibility options to run | |||||
binaries from older branches. Note that the ability to run binaries | |||||
from unsupported branches is not guaranteed. | |||||
Make sure that you merge any new devices from GENERIC since the | |||||
last time you updated your kernel config file. Options also | |||||
change over time, so you may need to adjust your custom kernels | |||||
for these as well. | |||||
[3] If you have third party modules, such as vmware, you should disable | |||||
them at this point so they don't crash your system on | them at this point so they don't crash your system on | ||||
reboot. Alternatively, you should rebuild all the modules you have in | reboot. Alternatively, you should rebuild all the modules you have in | ||||
your system and install them as well. If you are running -current, you | your system and install them as well. If you are running -current, you | ||||
should seriously consider placing all sources to all the modules for | should seriously consider placing all sources to all the modules for | ||||
your system (or symlinks to them) in /usr/local/sys/modules so this | your system (or symlinks to them) in /usr/local/sys/modules so this | ||||
happens automatically. If all your modules come from ports, then adding | happens automatically. If all your modules come from ports, then adding | ||||
the port origin directories to PORTS_MODULES instead is also automatic | the port origin directories to PORTS_MODULES instead is also automatic | ||||
and effective, eg: | and effective, eg: | ||||
PORTS_MODULES+=x11/nvidia-driver | PORTS_MODULES+=x11/nvidia-driver | ||||
[3] From the bootblocks, boot -s, and then do | [4] From the bootblocks, boot -s, and then do | ||||
fsck -p | fsck -p | ||||
mount -u / | mount -u / | ||||
mount -a | mount -a | ||||
sh /etc/rc.d/zfs start # mount zfs filesystem, if needed | sh /etc/rc.d/zfs start # mount zfs filesystem, if needed | ||||
grahamperrin: service zfs start | |||||
cd src # full path to source | cd src # full path to source | ||||
adjkerntz -i # if CMOS is wall time | adjkerntz -i # if CMOS is wall time | ||||
Also, when doing a major release upgrade, it is required that you boot | Also, when doing a major release upgrade, it is required that you boot | ||||
into single user mode to do the installworld. | into single user mode to do the installworld. | ||||
[4] Note: This step is non-optional. Failure to do this step | [5] Usually this step is a no-op. However, from time to time | ||||
you may need to do this if you get unknown user in the following | |||||
step. | |||||
[6] Note: This step is non-optional. Failure to do this step | |||||
can result in a significant reduction in the functionality of the | can result in a significant reduction in the functionality of the | ||||
system. Attempting to do it by hand is not recommended and those | system. Attempting to do it by hand is not recommended and those | ||||
that pursue this avenue should read this file carefully, as well | that pursue this avenue should read this file carefully, as well | ||||
as the archives of freebsd-current and freebsd-hackers mailing lists | as the archives of freebsd-current and freebsd-hackers mailing lists | ||||
for potential gotchas. See etcupdate(8) for more information. | for potential gotchas. The -U option is also useful to consider. | ||||
See mergemaster(8) for more information. | |||||
[5] Usually this step is a no-op. However, from time to time | [7] This only deletes old files and directories. Old libraries | ||||
you may need to do this if you get unknown user in the following | |||||
step. | |||||
[6] This only deletes old files and directories. Old libraries | |||||
can be deleted by "make delete-old-libs", but you have to make | can be deleted by "make delete-old-libs", but you have to make | ||||
sure that no program is using those libraries anymore. | sure that no program is using those libraries anymore. | ||||
[8] The new kernel must be able to run existing binaries used by an | |||||
installworld. When upgrading across major versions, the new kernel's | |||||
configuration must include the correct COMPAT_FREEBSD<n> option for | |||||
existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure | |||||
to do so may leave you with a system that is hard to boot to recover. A | |||||
GENERIC kernel will include suitable compatibility options to run | |||||
binaries from older branches. Note that the ability to run binaries | |||||
from unsupported branches is not guaranteed. | |||||
Make sure that you merge any new devices from GENERIC since the | |||||
last time you updated your kernel config file. Options also | |||||
change over time, so you may need to adjust your custom kernels | |||||
for these as well. | |||||
[9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the | |||||
"?=" instead of the "=" assignment operator, so that buildworld can | |||||
override the CPUTYPE if it needs to. | |||||
MAKEOBJDIRPREFIX must be defined in an environment variable, and | |||||
not on the command line, or in /etc/make.conf. buildworld will | |||||
warn if it is improperly defined. | |||||
FORMAT: | FORMAT: | ||||
This file contains a list, in reverse chronological order, of major | This file contains a list, in reverse chronological order, of major | ||||
breakages in tracking -current. It is not guaranteed to be a complete | breakages in tracking -current. It is not guaranteed to be a complete | ||||
list of such breakages, and only contains entries since September 23, 2011. | list of such breakages, and only contains entries since September 23, 2011. | ||||
If you need to see UPDATING entries from before that date, you will need | If you need to see UPDATING entries from before that date, you will need | ||||
to fetch an UPDATING file from an older FreeBSD release. | to fetch an UPDATING file from an older FreeBSD release. | ||||
Show All 24 Lines |
service zfs start