[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ next ]
We suggest that before upgrading you also read the information in Issues to be aware of for etch, Chapter 5. That chapter covers potential issues not directly related to the upgrade process but which could still be important to know about before you begin.
Before upgrading your system, it is strongly recommended that you make a full backup, or at least back up any data or configuration information you can't afford to lose. The upgrade tools and process are quite reliable, but a hardware failure in the middle of an upgrade could result in a severely damaged system.
The main things you'll want to back up are the contents of /etc,
/var/lib/dpkg, /var/lib/aptitude/pkgstates and the
output of dpkg --get-selections "*" (the quotes are
important).
The upgrade process itself does not modify anything in the /home
directory. However, some applications (e.g. parts of the Mozilla suite, and
the GNOME and KDE desktop environments) are known to overwrite existing user
settings with new defaults when a new version of the application is first
started by a user. As a precaution, you may want to make a backup of the
hidden files and directories ("dotfiles") in users' home directories.
This backup may help to restore or recreate the old settings. You may also
want to inform users about this.
Any package installation operation must be run with superuser privileges, so
either login as root or use su or sudo to gain the
necessary access rights.
The upgrade has a few preconditions; you should check them before actually executing the upgrade.
It's wise to inform all users in advance of any upgrades you're planning,
although users accessing your system via an ssh connection should
notice little during the upgrade, and should be able to continue working.
If you wish to take extra precautions, back up or unmount users' partitions
(/home) before upgrading.
You will probably have to do a kernel upgrade when upgrading to etch, so a reboot will normally be necessary. Typically, this will be done after the upgrade is finished.
Because of the many changes in the kernel between sarge and etch regarding drivers, hardware discovery and the naming and ordering of device files, there is a real risk that you may experience problems rebooting your system after the upgrade. A lot of known potential issues are documented in this and the next chapters of these Release Notes.
For that reason it makes sense to ensure that you will be able to recover if your system should fail to reboot or, for remotely managed systems, fail to bring up networking.
If you are upgrading remotely via an ssh link it is highly
recommended that you take the necessary precautions to be able to access the
server through a remote serial terminal. There is a chance that, after
upgrading the kernel and rebooting, some devices will be renamed (as described
in Device enumeration reordering, Section
4.6.4) and you will have to fix the system configuration through a local
console. Also, if the system is rebooted accidentally in the middle of an
upgrade there is a chance you will need to recover using a local console.
The most obvious thing to try first is to reboot with your old kernel. However, for various reasons documented elsewhere in this document, this is not guaranteed to work.
If that fails, you will need an alternative way to boot your system so you can access and repair it. One option is to use a special rescue image or a Linux live CD. After booting from that, you should be able to mount your root file system and chroot into it to investigate and fix the problem.
Another option we'd like to recommend is to use the rescue mode of the
etch Debian Installer. The advantage of using the installer is that you can
choose between its many installation methods for one that best suits your
situation. For more information, please consult the section "Recovering a
Broken System" in chapter 8 of the Installation
Guide and the Debian Installer
FAQ.
The initramfs-tools includes a debug shell[6] in the initrds it generates. If
for example the initrd is unable to mount your root file system, you will be
dropped into this debug shell which has basic commands available to help trace
the problem and possibly fix it.
Basic things to check are: presence of correct device files in
/dev; what modules are loaded (cat /proc/modules);
output of dmesg for errors loading drivers. The output of
dmesg will also show what device files have been assigned to which
disks; you should check that against the output of echo $ROOT to
make sure that the root file system is on the expected device.
If you do manage to fix the problem, typing exit will quit the debug shell and continue the boot process at the point it failed. Of course you will also need to fix the underlying problem and regenerate the initrd so the next boot won't fail again.
The distribution upgrade should be done either locally from a textmode virtual
console (or a directly connected serial terminal), or remotely via an
ssh link.
In order to gain extra safety margin when upgrading remotely, we suggest that
you run upgrade processes in the virtual console provided by the
screen program, which enables safe reconnection and ensures the
upgrade process is not interrupted even if the remote connection process fails.
Important! You should not upgrade using
telnet, rlogin, rsh, or from an X
session managed by xdm, gdm or kdm etc
on the machine you are upgrading. That is because each of those services may
well be terminated during the upgrade, which can result in an
inaccessible system that is only half-upgraded.
In case you run a kernel prior to 2.4.1, you need to upgrade to (at least) the
2.4-series before upgrading glibc. This should be done before
starting the upgrade. It is recommended that you directly upgrade to the 2.6.8
kernel available in sarge, instead of upgrading to a 2.4 kernel.
The upgrade process described in this chapter has been designed for upgrades
from "pure" sarge systems without third-party packages. In
particular, there are known problems with third-party packages which install
programs under /usr/X11R6/bin/ causing problems with upgrades due
to the X.Org transition (XFree86 to
X.Org transition, Section 5.3). For greatest reliability of the upgrade
process, you may wish to remove third-party packages from your system before
you begin upgrading.
This procedure also assumes your system has been updated to the latest point release of sarge. If you have not done this or are unsure, follow the instructions in Upgrading your sarge system, Section A.1.
In some cases, the use of apt-get for installing packages instead
of aptitude might make aptitude consider a package as
"unused" and schedule it for removal. In general, you should make
sure the system is fully up-to-date and "clean" before proceeding
with the upgrade.
Because of this you should review if there are any pending actions in the
package manager aptitude. If a package is scheduled for removal
or update in the package manager, it might negatively impact the upgrade
procedure. Note that correcting this is only possible if your
sources.list still points to sarge; and not to
stable or etch; see Checking your sources list, Section
A.2.
To do this, you have to run aptitude's user interface and press
'g' ("Go"). If it shows any actions, you should review them and
either fix them or implement the suggested actions. If no actions are
suggested you will be presented with a message saying "No packages are
scheduled to be installed, removed, or upgraded".
If you have configured APT to install certain packages from a distribution
other than stable (e.g. from testing), you may have to change your APT pinning
configuration (stored in /etc/apt/preferences) to allow the
upgrade of packages to the versions in the new stable release. Further
information on APT pinning can be found in apt_preferences(5).
Regardless of the method used for upgrading, it is recommended that you check the status of all packages first, and verify that all packages are in an upgradable state. The following command will show any packages which have a status of Half-Installed or Failed-Config, and those with any error status.
# dpkg --audit
You could also inspect the state of all packages on your system using
dselect, aptitude, or with commands such as
# dpkg -l | pager
or
# dpkg --get-selections "*" > ~/curr-pkgs.txt
It is desirable to remove any holds before upgrading. If any package that is essential for the upgrade is on hold, the upgrade will fail.
Note that aptitude uses a different method for registering
packages that are on hold than apt-get and dselect.
You can identify packages on hold for aptitude with
# aptitude search "~ahold" | grep "^.h"
If you want to check which packages you had on hold for apt-get,
you should use
# dpkg --get-selections | grep hold
If you changed and recompiled a package locally, and didn't rename it or put an epoch in the version, you must put it on hold to prevent it from being upgraded.
The "hold" package state for aptitude can be changed
using:
# aptitude hold package_name
Replace hold with unhold to unset the "hold" state.
If there is anything you need to fix, it is best to make sure your
sources.list still refers to sarge as explained in Checking your sources list, Section
A.2.
If you have any non-Debian packages on your system, you should be aware that
these may be removed during the upgrade because of conflicting dependencies.
If these packages were installed by adding an extra package archive in your
/etc/apt/sources.list, you should check if that archive also
offers packages compiled for etch and change the source line accordingly at the
same time as your source lines for Debian packages.
Some users may have unofficial backported "newer" versions of packages that are in Debian installed on their sarge system. Such packages are most likely to cause problems during an upgrade as they may result in file conflicts[7]. Section Possible issues during upgrade, Section 4.5.8 has some information on how to deal with file conflicts if they should occur.
To prevent aptitude from removing some packages that were pulled
in through dependencies, you need to manually unmark them as auto
packages. This includes OpenOffice and Vim for desktop installs:
# aptitude unmarkauto openoffice.org vim
And 2.6 kernel images if you have installed them using a kernel metapackage:
# aptitude unmarkauto $(dpkg-query -W 'kernel-image-2.6.*' | cut -f1)
Note: You can review which packages are marked as auto in aptitude by running:
# aptitude search 'i~M <package name>'
Before starting the upgrade you must set up apt's configuration
file for package lists, /etc/apt/sources.list.
apt will consider all packages that can be found via any
"deb" line, and install the package with the highest
version number, giving priority to the first mentioned lines (that way, in case
of multiple mirror locations, you'd typically first name a local harddisk, then
CD-ROMs, and then HTTP/FTP mirrors).
A release can often be referred to by both its codename (e.g. sarge, etch) and by its status name (i.e. oldstable, stable, testing, unstable). Referring to a release by its codename has the advantage that you will never be surprised by a new release and for this reason is the approach taken here. It does of course mean that you will have to watch out for release announcements yourself. If you use the status name instead, you will just see loads of updates for packages available as soon as a release has happened.
The default configuration is set up for installation from main Debian Internet
servers, but you may wish to modify /etc/apt/sources.list to use
other mirrors, preferably a mirror that is network-wise closest to you.
Debian HTTP or FTP mirror addresses can be found at http://www.debian.org/distrib/ftplist
(look at the "Full list of mirrors" section). HTTP mirrors are
generally speedier than FTP mirrors.
For example, suppose your closest Debian mirror is http://mirrors.kernel.org/debian/. When inspecting that mirror with a web browser or FTP program, you will notice that the main directories are organized like this:
http://mirrors.kernel.org/debian/dists/etch/main/binary-i386/...
http://mirrors.kernel.org/debian/dists/etch/contrib/binary-i386/...
To use this mirror with apt, you add this line to your
sources.list file:
deb http://mirrors.kernel.org/debian etch main contrib
Note that the `dists' is added implicitly, and the arguments after the release name are used to expand the path into multiple directories.
After adding your new sources, disable the previously existing
"deb" lines in sources.list by placing a
hash sign (#) in front of them.
Instead of using HTTP or FTP packages mirrors, you may wish to modify
/etc/apt/sources.list to use a mirror on a local disk (possibly
mounted over NFS).
For example, your packages mirror may be under /var/ftp/debian/,
and have main directories like this:
/var/ftp/debian/dists/etch/main/binary-i386/...
/var/ftp/debian/dists/etch/contrib/binary-i386/...
To use this with apt, add this line to your
sources.list file:
deb file:/var/ftp/debian etch main contrib
Note that the `dists' is added implicitly, and the arguments after the release name are used to expand the path into multiple directories.
After adding your new sources, disable the previously existing
"deb" lines in sources.list by placing a
hash sign (#) in front of them.
If you want to use CDs only, comment out the existing
"deb" lines in /etc/apt/sources.list by
placing a hash sign (#) in front of them.
Make sure there is a line in /etc/fstab that enables mounting your
CD-ROM drive at the /cdrom mount point (the exact
/cdrom mount point is required for apt-cdrom). For
example, if /dev/hdc is your CD-ROM drive, /etc/fstab
should contain a line like:
/dev/hdc /cdrom auto defaults,noauto,ro 0 0
Note that there must be no spaces between the words defaults,noauto,ro in the fourth field.
To verify it works, insert a CD and try running
# mount /cdrom # this will mount the CD to the mount point
# ls -alF /cdrom # this should show the CD's root directory
# umount /cdrom # this will unmount the CD
Next, run:
# apt-cdrom add
for each Debian Binary CD-ROM you have, to add the data about each CD to APT's database.
The recommended way to upgrade from previous Debian GNU/Linux releases is to
use the package management tool aptitude. This program makes
safer decisions about package installations than running apt-get
directly.
Don't forget to mount all needed partitions (notably the root and
/usr partitions) read-write, with a command like:
# mount -o remount,rw /mountpoint
Next you should double-check that the APT source entries (in
/etc/apt/sources.list) refer either to
"etch" or to "stable". There
should not be any sources entries pointing to sarge. Note: source lines for a
CD-ROM will often refer to "unstable"; although this may
be confusing, you should not change it.
It is strongly recommended that you use the /usr/bin/script
program to record a transcript of the upgrade session. Then if a problem
occurs, you will have a log of what happened, and if needed, can provide exact
information in a bug report. To start the recording, type:
# script -t 2>~/upgrade-etch.time -a ~/upgrade-etch.script
or similar. Do not put the typescript file in a temporary directory such as
/tmp or /var/tmp (files in those directories may be
deleted during the upgrade or during any restart).
The typescript will also allow you to review information that has scrolled off-screen. Just switch to VT2 (using Alt-F2) and, after logging in, use less -R ~root/upgrade-etch.script to view the file.
After you have completed the upgrade, you can stop script by
typing exit at the prompt.
If you have used the -t switch for script you can use the
scriptreplay program to replay the whole session:
# scriptreplay ~/upgrade-etch.time ~/upgrade-etch.script
First the list of available packages for the new release needs to be fetched. This is done by executing:
# aptitude update
Running this the first time new sources are updated will print out some warnings related to the availability of the sources. These warnings are harmless and will not appear if you rerun the command again.
You have to make sure before upgrading your system that you have sufficient
hard disk space when you start the full system upgrade described in Upgrading the rest of the system, Section 4.5.6.
First, any package needed for installation that is fetched from the network is
stored in /var/cache/apt/archives (and the partial/
subdirectory, during download), so you must make sure you have enough space on
the file system partition that holds /var/ to temporarily download
the packages that will be installed in your system. After the download, you
will probably need more space in other file system partitions in order to both
install upgraded packages (which might contain bigger binaries or more data)
and new packages that will be pulled in for the upgrade. If your system does
not have sufficient space you might end up with an incomplete upgrade that
might be difficult to recover from.
Both aptitude and apt will show you detailed
information of the disk space needed for the installation. Before executing
the upgrade, you can see this estimate by running:
# aptitude -y -s -f --with-recommends dist-upgrade
[ ... ]
XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
Need to get xx.xMB/yyyMB of archives. After unpacking AAAMB will be used.
Would download/install/remove packages.
[8]
If you do not have enough space for the upgrade, make sure you free up space beforehand. You can:
Remove packages that have been previously downloaded for installation (at
/var/cache/apt/archive). Cleaning up the package cache by running
apt-get clean or aptitude clean will remove all
previously downloaded package files.
Remove old packages you no longer use. If you have
popularity-contest installed, you can use
popcon-largest-unused to list the packages you do not use in the
system that occupy the most space. You can also use deborphan or
debfoster to find obsolete packages (see Obsolete packages, Section 4.10). Alternatively you can
start aptitude in "visual mode" and find obsolete
packages under "Obsolete and Locally Created Packages".
Remove packages taking up too much space, which are not currently needed (you
can always reinstall them after the upgrade). You can list the packages that
take up most of the disk space with dpigs (available in the
debian-goodies package) or with wajig (running
wajig size).
Temporarily move to another system, or permanently remove, system logs residing
under /var/log/.
Note that in order to safely remove packages, it is advisable to switch your
sources.list back to sarge as described in Checking your sources list, Section
A.2.
Because of certain necessary package conflicts between sarge and etch, running aptitude dist-upgrade directly will often remove large numbers of packages that you will want to keep. We therefore recommend a two-part upgrade process, first a minimal upgrade to overcome these conflicts, then a full dist-upgrade.
First, run:
# aptitude upgrade
This has the effect of upgrading those packages which can be upgraded without requiring any other packages to be removed or installed.
Follow the minimal upgrade with:
# aptitude install initrd-tools
This step will automatically upgrade libc6 and
locales and will pull in SELinux support libraries
(libselinux1). At this point, some running services will be
restarted, including xdm, gdm and kdm.
As a consequence, local X11 sessions will be disconnected.
The next step will vary depending on the set of packages that you have installed. These release notes give general advice about which method should be used, but if in doubt, it is recommended that you examine the package removals proposed by each method before proceeding.
Some common packages that are expected to be removed include
base-config, hotplug, xlibs,
netkit-inetd, python2.3, xfree86-common,
and xserver-common. For a more complete list of packages
obsoleted in etch, see Obsolete packages, Section
4.10.
This upgrade path has been verified to work on systems with the sarge desktop task installed. It is probably the method that will give the best results on systems with the desktop task installed, or with the gnome or kde packages installed.
It is probably not the correct method to use if you do not already
have the libfam0c102 and xlibmesa-glu packages
installed:
# dpkg -l libfam0c102 | grep ^ii
# dpkg -l xlibmesa-glu | grep ^ii
If you do have a full desktop system installed, run:
# aptitude install libfam0 xlibmesa-glu
Systems with some X packages installed, but not the full desktop
task, require a different method. This method applies in general to systems
with xfree86-common installed, including some server systems which
have tasksel server tasks installed as some of these tasks include
graphical management tools. It is likely the correct method to use on systems
which run X, but do not have the full desktop task installed.
# dpkg -l xfree86-common | grep ^ii
First, check whether you have the libfam0c102 and
xlibmesa-glu packages installed.
# dpkg -l libfam0c102 | grep ^ii
# dpkg -l xlibmesa-glu | grep ^ii
If you do not have libfam0c102 installed, do not include
libfam0 in the following commandline. If you do not have
xlibmesa-glu installed, do not include it in the following
commandline. [9]
# aptitude install x11-common libfam0 xlibmesa-glu
Note that installing libfam0 will also install the File Alteration
Monitor (fam) as well as the RPC portmapper (portmap)
if not already available in your system. Both packages will enable a new
network service in the system although they can both be configured to be bound
to the (internal) loopback network device.
On a system with no X, no additional aptitude install command should be required, and you can move on to the next step.
The udev version in etch does not support kernel versions earlier
than 2.6.15 (which includes sarge 2.6.8 kernels), and the udev
version in sarge will not work properly with the latest kernels. In addition,
installing the etch version of udev will force the removal of
hotplug, used by Linux 2.4 kernels.
As a consequence, the previous kernel package will probably not boot properly
after this upgrade. Similarly, there is a time window during the upgrade in
which udev has been upgraded but the latest kernel has not been
installed. If the system were to be rebooted at this point, in the middle of
the upgrade, it might not be bootable because of drivers not being properly
detected and loaded. (See Prepare a safe
environment for the upgrade, Section 4.1.4 for recommendations on preparing
for this possibility if you are upgrading remotely.)
Unless your system has the desktop task installed, or other packages that would cause an unacceptable number of package removals, it is therefore recommended that you upgrade the kernel on its own at this point.
To proceed with this kernel upgrade, run:
# aptitude install linux-image-2.6-flavor
See Installing the kernel metapackage, Section 4.6.1 for help in determining which flavor of kernel package you should install.
In the desktop case, it is unfortunately not possible to ensure the new kernel
package is installed immediately after the new udev is installed,
so there is a window of unknown length when your system will have no kernel
installed with full hotplug support. See Upgrading your
kernel and related packages, Section 4.6 for information on configuring
your system to not depend on hotplug for booting.
You are now ready to continue with the main part of the upgrade. Execute:
# aptitude dist-upgrade
This will perform a complete upgrade of the system, i.e. install the newest available versions of all packages, and resolve all possible dependency changes between packages in different releases. If necessary, it will install some new packages (usually new library versions, or renamed packages), and remove any conflicting obsoleted packages.
When upgrading from a set of CD-ROMs, you will be asked to insert specific CDs at several points during the upgrade. You might have to insert the same CD multiple times; this is due to inter-related packages that have been spread out over the CDs.
New versions of currently installed packages that cannot be upgraded without
changing the install status of another package will be left at their current
version (displayed as "held back"). This can be resolved by either
using aptitude to choose these packages for installation or by
trying aptitude -f install package.
After the upgrade, with the new version of apt you can now update
your package information, which will include the new package signature checking
mechanism:
# aptitude update
The upgrade will have already retrieved and enabled the signing keys for
Debian's package archives. If you add other (unofficial) package sources,
apt will print warnings related to its inability to confirm that
packages downloaded from them are legitimate and have not been tampered with.
For more information please see Package management, Section 2.1.1.
You will notice that, since you are using the new version of apt,
it will download package differences files (pdiff) instead of the
full package index list. For more information on this feature please read Slower updates of APT package index
files, Section 5.1.5.
If an operation using aptitude, apt-get, or
dpkg fails with the error
E: Dynamic MMap ran out of room
the default cache space is insufficient. You can solve this by either removing
or commenting lines you don't need in /etc/apt/sources.list or by
increasing the cache size. The cache size can be increased by setting
APT::Cache-Limit in /etc/apt/apt.conf. The following
command will set it to a value that should be sufficient for the upgrade:
# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf
This assumes that you do not yet have this variable set in that file.
Sometimes it's necessary to enable the APT::Force-LoopBreak option
in APT to be able to temporarily remove an essential package due to a
Conflicts/Pre-Depends loop. aptitude will alert you of this and
abort the upgrade. You can work around that by specifying -o
APT::Force-LoopBreak=1 option on aptitude command line.
It is possible that a system's dependency structure can be so corrupt as to
require manual intervention. Usually this means using aptitude or
# dpkg --remove package_name
to eliminate some of the offending packages, or
# aptitude -f install
# dpkg --configure --pending
In extreme cases you might have to force re-installation with a command like
# dpkg --install /path/to/package_name.deb
File conflicts should not occur if you upgrade from a "pure" sarge system, but can occur if you have unofficial backports installed. A file conflict will result in an error like:
Unpacking <package-foo> (from <package-foo-file>) ...
dpkg: error processing <package-foo> (--install):
trying to overwrite `<some-file-name>',
which is also in package <package-bar>
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
<package-foo>
You can try to solve a file conflict by forcibly removing the package mentioned on the last line of the error message:
# dpkg -r --force-depends package_name
After fixing things up, you should be able to resume the upgrade by repeating the previously described aptitude commands.
During the upgrade, you will be asked questions regarding the configuration or
re-configuration of several packages. When you are asked if any file in the
/etc/init.d or /etc/terminfo directories, or the
/etc/manpath.config file should be replaced by the package
maintainer's version, it's usually necessary to answer `yes' to ensure system
consistency. You can always revert to the old versions, since they will be
saved with a .dpkg-old extension.
If you're not sure what to do, write down the name of the package or file and sort things out at a later time. You can search in the typescript file to review the information that was on the screen during the upgrade.
This section explains how to upgrade your kernel and identifies potential
issues related to this upgrade. You can either install one of the
linux-image-* packages provided by Debian, or compile a customized
kernel from source.
Note that a lot of information in this section is based on the assumption that
you will be using one of the modular Debian kernels, together with
initramfs-tools and udev. If you choose to use a
custom kernel that does not require an initrd or if you use a different initrd
generator, some of the information may not be relevant for you.
Note also that if udev is not installed on your system,
it is still possible to use hotplug for hardware discovery.
If you are currently using a 2.4 kernel, you should also read Upgrading to a 2.6 kernel, Section 5.2 carefully.
When you dist-upgrade from sarge to etch, it is strongly recommended that you install a new linux-image-2.6-* metapackage. This package may be installed automatically by the dist-upgrade process. You can verify this by running:
# dpkg -l "linux-image*" | grep ^ii
If you do not see any output, then you will need to install a new linux-image package by hand. To see a list of available linux-image-2.6 metapackages, run:
# apt-cache search linux-image-2.6- | grep -v transition
If you are unsure about which package to select, run uname -r and
look for a package with a similar name. For example, if you see
'2.4.27-3-686', it is recommended that you install
linux-image-2.6-686. (Note that the 386 flavor no longer exists;
if you are currently using the 386 kernel flavor, you should install the 486
flavor instead.) You may also use apt-cache to see a long
description of each package in order to help choose the best one available.
For example:
# apt-cache show linux-image-2.6-686
You should then use aptitude install to install it. Once this new kernel is installed you should reboot at the next available opportunity to get the benefits provided by the new kernel version.
For the more adventurous there is an easy way to compile your own custom kernel
on Debian GNU/Linux. Install the kernel-package tool and read the
documentation in /usr/share/doc/kernel-package.
If you are currently running a 2.6 series kernel from sarge this upgrade will take place automatically after you do a full upgrade of the system packages (as described in Upgrading packages, Section 4.5).
If possible, it is to your advantage to upgrade the kernel package separately from the main dist-upgrade to reduce the chances of a temporarily non-bootable system. See Upgrading the kernel, Section 4.5.5 for a description of this process. Note that this should only be done after the minimal upgrade process described in Minimal system upgrade, Section 4.5.4.
You can also take this step if you are using your own custom kernel and want to
use the kernel available in etch. If your kernel version is not supported by
udev then it is recommended that you upgrade after the minimal
upgrade. If your version is supported by udev you can safely wait
until after the full system upgrade.
If you have a 2.4 kernel installed, and your system relies on
hotplug for its hardware detection you should first upgrade to a
2.6 series kernel from sarge before attempting the upgrade. Make sure that the
2.6 series kernel boots your system and all your hardware is properly detected
before you perform the upgrade. The hotplug package is removed
from the system (in favor of udev) when you do a full system
upgrade. If you do not do the kernel upgrade before this your system might not
boot up properly from this point on. Once you have done an upgrade to a 2.6
series kernel in sarge you can do a kernel upgrade as described in Upgrading from a 2.6 kernel, Section 4.6.2.
If your system does not rely on hotplug[10] you can delay the kernel
upgrade to after you have done a full system upgrade, as described in Upgrading the rest of the system, Section 4.5.6.
Once your system has been upgraded you can then do the following (changing the
kernel package name to the one most suited to your system by substituting
<flavor>):
# aptitude install linux-image-2.6-<flavor>
etch features a more robust mechanism for hardware discovery than previous releases. However, this may cause changes in the order devices are discovered on your system, affecting the order in which device names are assigned. For example, if you have two network adapters that are associated with two different drivers, the devices eth0 and eth1 refer to may be swapped. Please note that the new mechanism means that if you e.g. exchange ethernet adapters in a running etch system, the new adapter will also get a new interface name.
For network devices, you can avoid this reordering by using udev
rules, more specifically, through the definitions at
/etc/udev/rules.d/z25_persistent-net.rules[11]. Alternatively you can use
the ifrename utility to bind physical devices to specific names at
boot time. See ifrename(8) and iftab(5) for more
information. The two alternatives (udev and
ifrename) should not be used at the same time.
For storage devices, you can avoid this reordering by using
initramfs-tools and configuring it to load storage device driver
modules in the same order they are currently loaded. To do this, identify the
order the storage modules on your system were loaded by looking at the output
of lsmod. lsmod lists modules in the reverse order
that they were loaded in, i.e., the first module in the list was the last one
loaded. Note that this will only work for devices which the kernel enumerates
in a stable order (like PCI devices).
However, removing and reloading modules after initial boot will affect this
order. Also, your kernel may have some drivers linked statically, and these
names will not appear in the output of lsmod. You may be able to
decipher these driver names and load order from looking at
/var/log/kern.log, or the output of dmesg.
Add these module names to /etc/initramfs-tools/modules in the
order they should be loaded at boot time. Some module names may have changed
between sarge and etch. For example, sym53c8xx_2 has become sym53c8xx.
You will then need to regenerate your initramfs image(s) by executing update-initramfs -u -k all.
Once you are running a etch kernel and udev, you may reconfigure
your system to access disks by an alias that is not dependent upon driver load
order. These aliases reside in the /dev/disk/ hierarchy.
If an initrd created with initramfs-tools is used to boot the
system, in some cases the creation of device files by udev can
happen too late for the boot scripts to act on.
The usual symptoms are that the boot will fail because the root file system
cannot be mounted and you are dropped into a debug shell, but that when you
check afterwards, all devices that are needed are present in /dev.
This has been observed in cases where the root file system is on a USB disk or
on RAID, especially if lilo is used.
A workaround for this issue is to use the boot parameter rootdelay=9. The value for the timeout (in seconds) may need to be adjusted.
When aptitude dist-upgrade has finished, the "formal" upgrade is complete, but there are some other things that should be taken care of before the next reboot.
Debian kernels no longer include support for devfs, so devfs users will need to convert their systems manually before booting an etch kernel.
If you see the string 'devfs' in /proc/mounts, you are most likely
using devfs. Any configuration files that reference
devfs-style names will need to be adjusted to use
udev-style names. Files that are likely to refer to
devfs-style device names include /etc/fstab,
/etc/lilo.conf, /boot/grub/menu.lst, and
/etc/inittab.
More information about potential issues is available in bug report #341152.
If you are using lilo as your bootloader (it is the default
bootloader for some installations of sarge) it is strongly recommended that you
rerun lilo after the upgrade:
# /sbin/lilo
Notice this is needed even if you did not upgrade your system's kernel, as
lilo's second stage will change due to the package upgrade.
Also, review the contents of your /etc/kernel-img.conf and make
sure that you have do_bootloader = Yes in it. That way the bootloader
will always be rerun after a kernel upgrade.
If you encounter any issues when running lilo, review the symbolic
links in / to vmlinuz and initrd and the
contents of your /etc/lilo.conf for discrepancies.
If you forgot to rerun lilo before the reboot or the system is
accidentally rebooted before you could do this manually, your system might fail
to boot. Instead of the lilo prompt, you will only see LI when
booting the system[12]. See Prepare for recovery, Section 4.1.3 for information on
how to recover from this.
mdadm now needs a configuration file to assemble MD arrays (RAID) from the
initial ramdisk and during the system initialisation sequence. Please make
sure to read and act upon the instructions in
/usr/share/doc/mdadm/README.upgrading-2.5.3.gz after the package
has been upgraded and before you reboot. The latest version
of this file is available at http://svn.debian.org/wsvn/pkg-mdadm/mdadm/trunk/debian/README.upgrading-2.5.3?op=file;
please consult it in case of problems.
After the upgrade there are several things you can do to prepare for the next release.
If using grub, edit /etc/kernel-img.conf and adjust
the location of the update-grub program changing
/sbin/update-grub to /usr/sbin/update-grub.
If the new kernel image metapackage was pulled in as a dependency of the old one, it will be marked as automatically installed, which should be corrected:
# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
Remove sarge's kernel metapackages by running:
# aptitude purge kernel-image-2.6-<flavor>
Move any configuration options from /etc/network/options to
/etc/sysctl.conf. Please see
/usr/share/doc/netbase/README.Debian for details.
Remove obsolete and unused packages as described in Obsolete packages, Section 4.10. You should review which configuration files they use and consider purging the packages to remove their configuration files
With the release of Lenny a bigger number of server packages will be deprecated, thus updating to newer versions of those now will save you from trouble when updating to Lenny.
This includes the following packages:
apache (1.x), successor is apache2
bind8, successor is bind9
php4, successor is php5
postgresql-7.4, successor is postgresql-8.1
exim 3, successor is exim4
Introducing several thousand new packages, etch also retires and omits more than two thousand old packages that were in sarge. It provides no upgrade path for these obsolete packages. While nothing prevents you from continuing to use an obsolete package where desired, the Debian project will usually discontinue security support for it a year after etch's release[13], and will not normally provide other support in the meantime. Replacing them with available alternatives, if any, is recommended.
There are many reasons why packages might have been removed from the distribution: they are no longer maintained upstream; there is no longer a Debian Developer interested in maintaining the packages; the functionality they provide has been superseded by different software (or a new version); or they are no longer considered suitable for etch due to bugs in them. In the latter case, packages might still be present in the "unstable" distribution.
Detecting which packages in an updated system are "obsolete" is easy
since the package management front-ends will mark them as such. If you are
using aptitude, you will see a listing of these packages in the
"Obsolete and Locally Created Packages" entry. dselect
provides a similar section but the listing it presents might differ. Also, if
you have used aptitude to manually install packages in sarge it
will have kept track of those packages you manually installed and will be able
to mark as obsolete those packages pulled in by dependencies alone which are no
longer needed if a package has been removed. Also, aptitude,
unlike deborphan will not mark as obsolete packages that you
manually installed, as opposed to those that were automatically installed
through dependencies.
There are additional tools you can use to find obsolete packages such as
deborphan, debfoster or cruft.
deborphan is highly recommended, although it will (in default
mode) only report obsolete libraries: packages in the "libs" or
"oldlibs" sections that are not used by any other packages. Do not
blindly remove the packages these tools present, especially if you are using
aggressive non-default options that are prone to produce false positives. It
is highly recommended that you manually review the packages suggested for
removal (i.e. their contents, size and description) before you remove them.
The Debian Bug Tracking
System often provides additional information on why the package was
removed. You should review both the archived bug reports for the package
itself and the archived bug reports for the ftp.debian.org
pseudo-package.
Some packages from sarge have been split into several packages in etch, often to improve system maintainability. To ease the upgrade path in such cases, etch often provides "dummy" packages: empty packages that have the same name as the old package in sarge with dependencies that cause the new packages to be installed. These "dummy" packages are considered obsolete packages after the upgrade and can be safely removed.
Most (but not all) dummy packages' descriptions indicate their purpose.
Package descriptions for dummy packages are not uniform, however, so you might
also find deborphan with the --guess options useful
to detect them in your system. Note that some dummy packages are not intended
to be removed after an upgrade but are, instead, used to keep track of the
current available version of a program over time.
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ next ]
Release Notes for Debian GNU/Linux 4.0 ("etch"), Intel x86
$Id: release-notes.en.sgml,v 1.312 2007-08-16 22:24:38 jseidel Exp $debian-doc@lists.debian.org