home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 1: Linux / CD1.iso / doc / HOWTO / mini / Upgrade < prev    next >
Text File  |  1998-10-14  |  15KB  |  342 lines

  1.   Upgrading Your linux Distribution mini-HOWTO
  2.   Greg Louis, glouis@dynamicro.on.ca
  3.   v1.11, 6 June 1996
  4.  
  5.   Hints and tips on upgrading from one linux distribution to another.
  6.  
  7.   1.  IMPORTANT!!! Disclaimer and Copyright
  8.  
  9.   The procedure to which this document attempts to be a guide is
  10.   inherently dangerous to the programs and data stored in your computer.
  11.   You carry out any such procedure entirely at your own risk.  The steps
  12.   described in this document worked for the author; there is no
  13.   guarantee that they will work for you, nor that you can attempt to
  14.   follow them without serious damage to your computer's programs and/or
  15.   data.  You are entirely on your own in any use you may make of the
  16.   information presented herein, and the author shall not be liable in
  17.   any way whatsoever for any damage or inconvenience of any kind that
  18.   you may suffer in so doing.
  19.  
  20.   This document is copyright 1996, Dynamicro Consulting Limited, and is
  21.   released under the terms of the GNU General Public License.  This
  22.   basically means that you may copy and modify it at will, but may not
  23.   prevent others from doing likewise.
  24.  
  25.   Comments and questions may be directed to the author.  Especially
  26.   welcome, for use in future revisions, are accounts of successful
  27.   upgrades of complex systems.
  28.  
  29.   2.  Changes since version 1.1
  30.  
  31.   ╖  Added this history section
  32.  
  33.   ╖  Added Zoltßn HidvΘgi's suggestion re mtime and ctime.  Thanks,
  34.      Zoltßn!
  35.  
  36.   ╖  Added an Acknowledgements section
  37.  
  38.   3.  Introduction
  39.  
  40.   3.1.  How to slay and reincarnate your linux box!
  41.  
  42.   The purpose of this document is to offer tips to help you through the
  43.   destruction and reinstallation of a linux system.  It's not a
  44.   foolproof cookbook by any means; but I hope it will serve as some
  45.   indication of what you need to think about, and of the order in which
  46.   to do things.  It would have been a help to me, if someone else had
  47.   written something like this before I did my first upgrade; so I hope
  48.   it will be a help to you, if you have a linux machine to rebuild.
  49.  
  50.   Don't take it as gospel, though: your mileage will almost certainly
  51.   vary.  Even the directory names in this document may be different from
  52.   the ones you need to use; some people have /usr/home instead of /home,
  53.   for example; others call it /u, and some (delicate shudder :) even put
  54.   all their users directly under /usr itself!  I can't be specific about
  55.   your system, so I've just used the names the way they are in mine.
  56.  
  57.   You'll also notice that I use Slackware distributions, and that I
  58.   assume you've enough RAM and hard disk space to install linux kernel
  59.   source and build your own kernel.  If your system is different, some
  60.   of my recommendations won't apply; but I hope you'll still find the
  61.   general outline to be of assistance in your rebuild project.
  62.  
  63.   3.2.  Why would anyone want to do that?
  64.  
  65.   Good question!  If it can possibly be avoided, don't do it!  (That's
  66.   the single most important recommendation in this whole guide!!!)  But
  67.   there are times when you may have to.
  68.  
  69.   For example, I installed a 4Gb hard disk and then found out that
  70.   Slackware 2.0 vintage linux didn't know a hard disk could have more
  71.   than 2Gb, and it got horribly confused.  So I had to upgrade to the
  72.   then-current Slackware 2.3.  That upgrade was a gruelling experience,
  73.   and it's part of the reason I'm writing these notes.  I did just about
  74.   everything wrong, and only good luck and the fact that I had another
  75.   running linux box beside me saved me from disaster.
  76.  
  77.   As another example, I found that I just couldn't succeed in building a
  78.   working a.out linux kernel in the 1.3 series, using an out-of-the-box
  79.   Slackware 2.3 installation (another machine, not the one I botched
  80.   before).  I took the plunge, bought Slackware 3.0 on CDROM and
  81.   converted to ELF.  This time the reinstallation went better, thanks in
  82.   part to the previous bitter experience, and it served as the source of
  83.   most of the ideas I'm offering you here.
  84.  
  85.   3.3.  Do you have to ``destroy and reinstall?''
  86.  
  87.   It's safer, oddly enough.  If you install over top of an existing
  88.   linux system, chances are you'll have a mixture of old and new
  89.   binaries, old and new configuration files, and generally a mess to try
  90.   to administer.  Wiping the system clean, and then putting back only
  91.   what you know you need, is a drastic but effective way to get a clean
  92.   result.  (Of course we're talking about installing a whole new linux
  93.   distribution here, not about upgrading one or two packages!  The best
  94.   way to avoid having to do a full reinstallation is, precisely, to keep
  95.   the individual bits -- especially gcc and its libraries, and binutils
  96.   -- current.  If the stuff you use is reasonably up-to-date, and you
  97.   can keep it so by bringing in, and if need be compiling, new code from
  98.   time to time, then there's no need for a mass upgrade.)
  99.  
  100.   As Patrick Volkerding points out (he too recommends the wipe-it-clean
  101.   procedure for upgrades), installing ELF on top of a running a.out
  102.   system is a recipe for disaster; at least, if you know enough to try
  103.   it, you needn't read this guide!
  104.  
  105.   Even without that complication, though, you're better to build from
  106.   scratch.
  107.  
  108.   3.4.  How long will it take?
  109.  
  110.   Depends, of course, on how complex your system is.  But I figure that,
  111.   for the successful upgrade (the other one? -- don't ask! :) I spent
  112.   about ten hours making backups, six hours rebuilding the system to the
  113.   point where I could enable logins, and another half day or thereabouts
  114.   restoring the less-crucial stuff.  As time passes I keep discovering
  115.   little things that still aren't exactly as I want them -- I fix these
  116.   as they're encountered -- but in the main, twenty hours' work should
  117.   suffice for a reasonably complex rebuilding job.  Maybe less if you're
  118.   reinstalling from hard disk (I used CDROM) or more if you need to
  119.   install from floppies.  Maybe less if you've got a fast Pentium, more
  120.   if it's a 386.  You get the idea.
  121.  
  122.   So much for the introduction.  Here's how to set about it, once you've
  123.   decided it must be done.  Arm yourself with fortitude and Jolt or
  124.   whatever, and:
  125.  
  126.   4.  Write down everything you do.
  127.  
  128.   It's extremely valuable to have a record of what you've done in the
  129.   process of preparing for, and carrying out, the changeover.
  130.   Especially important is a list of the backups you'll be making in
  131.   preparation for the destruction of your existing system.
  132.  
  133.   5.  Make a full backup of the existing system.
  134.  
  135.   Generally speaking, backups tend to be written on media that are
  136.   sequentially accessed.  That being so, you won't want to use this
  137.   complete backup for restoring significant numbers of files; it's got
  138.   too many files on it that you don't want.  It's better to create small
  139.   backups of individual segments that you know you're going to restore
  140.   in their entirety.  I'll list a bunch of examples later.
  141.  
  142.   Why then should you start with a full backup?  Two basic reasons:
  143.   first, in the event of a catastrophic failure installing the new
  144.   system, you'll have a way to get back to the starting point with
  145.   minimum pain.  Second, no matter how carefully you prepare for the new
  146.   installation, there is a very large chance that one or two important
  147.   files will be overlooked.  In that case the clumsiness of restoring
  148.   those one or two files from the full backup set will be preferable to
  149.   the inconvenience of doing without them.
  150.  
  151.   To save time and space, if you've still got the distribution medium
  152.   for your old linux version, you might want to back up only those files
  153.   the mtime or ctime of which is more recent than the date of the
  154.   original installation.
  155.  
  156.   6.  Back up /etc and its subdirectories on one or more floppies.
  157.  
  158.   This is the other extreme: you won't be restoring these files (for the
  159.   most part, anyway); you'll be comparing them with the new ones that
  160.   get created during installation.  Why?  Because the new ones may have
  161.   data that the old ones didn't, or may express the old data in new
  162.   ways.  Changes in protocols, addition of new tools, or implementation
  163.   of new features in existing tools may all dictate changes in the
  164.   formats of the configuration files and startup scripts that the /etc
  165.   tree contains, and you'll very likely have to edit your old data into
  166.   these files so as to preserve the new formats and take advantage of
  167.   the improvements.
  168.  
  169.   7.  Make separate backups of each group of files you want to preserve.
  170.  
  171.   This is the most variable part of the job, and all I can really do to
  172.   help is to describe what I did in my system, in the hope that it will
  173.   serve as a rough guide.  Basically, you want to look at every
  174.   directory that contains any
  175.  
  176.   ╖  files that aren't part of your standard linux installation, or
  177.  
  178.   ╖  files that are actually newer than the ones you'll install when you
  179.      do your new linux installation
  180.  
  181.   and separate out only those files that you want to carry over.
  182.  
  183.   (Another possible strategy is to back up all files with mtime or ctime
  184.   more recent than the day of the previous linux installation, as
  185.   mentioned above, and then restore from that.  If you do that, you have
  186.   to take into account that the new linux distribution may contain
  187.   versions of some files that are newer still than the ones you saved.)
  188.   In my case, I ended up making a .tgz file on the backup medium for
  189.   each of
  190.  
  191.   ╖  /usr/lib/rn
  192.  
  193.   ╖  /usr/lib/smail
  194.  
  195.   ╖  /usr/lib/trn (the rest of /usr/lib would be reinstalled)
  196.  
  197.   ╖  /usr/local/src
  198.  
  199.   ╖  /usr/local/bin
  200.  
  201.   ╖  /usr/local/lib
  202.  
  203.   ╖  /usr/local/lpfont
  204.  
  205.   ╖  /usr/local/man
  206.  
  207.   ╖  /usr/local/sbin
  208.  
  209.   ╖  /usr/local/thot (there were other /usr/local files I didn't need)
  210.  
  211.   ╖  /usr/openwin
  212.  
  213.   ╖  /usr/src/lilo-17 (because my new Slackware still had version 16)
  214.  
  215.   ╖  /usr/src/linux-1.2.13 (because I'd done some customizing)
  216.  
  217.   ╖  /usr/X11R6/lib/X11/app-defaults
  218.  
  219.   ╖  /usr/X11R6/lib/X11/initrc (the rest of Xfree86 was to be
  220.      reinstalled)
  221.  
  222.   ╖  /var/named
  223.  
  224.   ╖  /var/openwin
  225.  
  226.   ╖  /var/texfonts
  227.  
  228.   My machine was relatively easy in that there were no spool files to
  229.   worry about.  I don't run a news spool on this box, and since there
  230.   are only two users, it was easiest just to get all the mail read
  231.   before shutting down.  Otherwise, /var/spool directories would have
  232.   had to be backed up at the last minute.  (And, of course, the news
  233.   library and site directories!)
  234.  
  235.   8.  Prepare root and boot floppies for the new installation.
  236.  
  237.   Details of how to do this will be found in the installation guide for
  238.   your new distribution.
  239.  
  240.   9.  Format floppies for the temporary kernel and the final build.
  241.  
  242.   You'll need two, one floppy for each.
  243.  
  244.   After all that's done, you're ready for the Big Moment.  The next step
  245.   removes the system from production.
  246.  
  247.   10.  Inhibit logins and back up the /root and /home trees.
  248.  
  249.   This is the last thing to be done on the old system before you destroy
  250.   it, so as to carry forward the most current user and root information.
  251.  
  252.   11.  Boot from the new installation's boot and root floppies.
  253.  
  254.   12.  Delete the linux partitions with fdisk and recreate them.
  255.  
  256.   The installation guide will explain how to set about doing this, which
  257.   will destroy the old system.  From now on you're dependent on the
  258.   quality of the backups you made in the earlier steps!  You have been
  259.   warned!
  260.  
  261.   13.  Run the new linux installation.
  262.  
  263.   There are already several good documents describing how to do this, so
  264.   I'm not going into any detail.  Continue from here when the new system
  265.   can boot from its hard disk.
  266.  
  267.   Along the way, be sure to make a floppy that you can boot as well,
  268.   since the kernel that the linux setup installs has to be replaced and
  269.   accidents can happen during that process.  Be sure to install the
  270.   development packages and the kernel source.
  271.  
  272.   14.  With the new linux system booted from the hard disk, edit
  273.   /etc/fstab
  274.  
  275.   and add your swap partition.  Then run the command "swapon -a".  I
  276.   don't know why, but Slackware setup doesn't offer to do this for you
  277.   if your swap partition exists already.  Then, when you boot your new
  278.   system and the rc.S script tries to turn swapping on, it can't find
  279.   the partition in the fstab file and swapping doesn't get enabled.
  280.   This step fixes it.
  281.  
  282.   15.  Restore configuration data to the /etc directory and subdirecto¡
  283.   ries.
  284.  
  285.   As described above, you can't just copy all of the old files back into
  286.   /etc and expect things to work properly afterward.  Some files you can
  287.   do that with; for example, /etc/XF86Config (as long as you're using
  288.   the same version of Xfree86 -- and the same video hardware -- in the
  289.   new installation as you did in the old).  For the most part, though,
  290.   it's best to use diff to compare the old and new files before doing
  291.   any copying.  Watch out especially for significant changes in the
  292.   files in /etc/rc.d, which may require you to reestablish your old
  293.   configuration by hand editing, instead of by copying the old rc
  294.   scripts from your backup.  Once it's all done, reboot.
  295.  
  296.   16.  Configure and rebuild the linux kernel.
  297.  
  298.   Even if you don't absolutely have to do this in order to get a kernel
  299.   that supports your hardware, it's worth doing it in order to get a
  300.   kernel that doesn't contain masses of drivers for stuff your machine
  301.   doesn't have.  For details, see the Kernel HOWTO.  Install the rebuilt
  302.   kernel on a floppy at first; once that boots ok, install on the hard
  303.   disk, run lilo if you're using it, and reboot.
  304.  
  305.   17.  Restore the stuff from the backups you made earlier.
  306.  
  307.   Some of the binaries may need to be reinstalled from the source
  308.   directories; I had to do that with lilo, for example, since my version
  309.   was newer than the one on the Slackware installation and I hadn't
  310.   bothered to save the binary from /sbin.  You'll want to check through
  311.   your restored programs and confirm the existence and correctness of
  312.   configuration files, libraries and so on.  In some cases, you may have
  313.   to restore things in a specific order; you did make notes during
  314.   backup, didn't you? ;-)
  315.  
  316.   18.  Review security.
  317.  
  318.   Check file permissions and directory permissions to be sure that
  319.   access is neither too restricted nor too easy.  I find that Slackware
  320.   tends to lean toward a more open environment than I like, so I go
  321.   around changing 755's to 711's for binaries in the .../bin directories
  322.   and stuff like that.  Or even 700's in the .../sbin ones.  Especial
  323.   care is needed if you've carried over an ftp server; but then, if you
  324.   were running an ftp server, you probably thought of that already. :)
  325.  
  326.   19.  Enable logins.
  327.  
  328.   You're up and running.  Over the next little while, there'll probably
  329.   be details to clean up; but the bulk of the work is done.  Enjoy!
  330.  
  331.   20.  Sorry, but once again:
  332.  
  333.   USE THIS INFORMATION AT YOUR OWN RISK!
  334.  
  335.   (See the disclaimer at the start of this document.)
  336.  
  337.   21.  Acknowledgements
  338.  
  339.   Thanks for contributing to the content of this mini-HOWTO are
  340.   gratefully tendered to Zoltßn HidvΘgi.
  341.  
  342.