Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,news.answers,comp.answers
From: mdw@sunsite.unc.edu (Matt Welsh)
Subject: Linux Installation HOWTO
Keywords: Linux, HOWTO, FAQ, installation
Summary: How to obtain and install Linux, the free UNIX implementation for
	 Intel 80386/80486 based machines.
Organization: Linux. It's not just for breakfast anymore.
Followup-To: poster
Approved: linux-announce@tc.cornell.edu (Matt Welsh)

Archive-name: linux/howto/installation
Last-modified: 23 March 1994

  The Linux Installation HOWTO
  by Matt Welsh, mdw@sunsite.unc.edu
  v2.1, 23 March 1994

  This  document describes how to obtain and install the Linux software,
  focusing on the popular Slackware distribution. It is the first  docu-
  ment which a new Linux user should read to get started.

  1.  Introduction

  Linux  is  a freely-distributable implementation of UNIX for 80386 and
  80486 machines. It supports a wide  range  of  software,  including  X
  Windows,  Emacs,  TCP/IP networking (including SLIP), the works.  This
  document assumes that you have heard of and know about Linux, and just
  want to sit down and install it.



  1.1.  Other sources of information

  If  you have never heard of Linux before, there are several sources of
  basic information about the system. One is the Linux Frequently  Asked
  Questions          list          (FAQ),         available         from
  sunsite.unc.edu:/pub/Linux/docs/FAQ.  This  document   contains   many
  common  questions  (and  answers!) about Linux---it is a ``must read''
  for new users.

  In the directory /pub/Linux/docs  on  sunsite.unc.edu  you'll  find  a
  number  of other documents about Linux, including the Linux INFO-SHEET
  and META-FAQ, both of which you should read.  Also take a look at  the
  USENET newsgroups comp.os.linux.help and comp.os.linux.announce.

  Another  source  of  online  Linux  documentation  is  the Linux HOWTO
  archive, on  sunsite.unc.edu:/pub/Linux/docs/HOWTO.  The  file  HOWTO-
  INDEX in that directory explains what Linux HOWTOs are available.

  The  Linux Documentation Project is writing a set of manuals and books
  about Linux, all of which are freely distributable on  the  net.   The
  directory  /pub/Linux/docs/LDP on sunsite.unc.edu contains the current
  set of LDP manuals.

  The book ``Linux Installation and  Getting  Started''  is  a  complete
  guide  to  getting  and  installing  Linux,  as well as how to use the
  system once you've installed it. It contains a  complete  tutorial  to
  using  and  running  the  system,  and  much  more information than is
  contained here. This HOWTO is simply a condensation  of  some  of  the
  most   important  information  in  that  book.  You  can  get  ``Linux
  Installation   and   Getting   Started''   from   sunsite.unc.edu   in
  /pub/Linux/docs/LDP/install-guide.   The  README  file there describes
  how you can order a printed copy of the book (about 180 pages).



  1.2.  New versions of this document

  New versions of the Linux  Installation  HOWTO  will  be  periodically
  posted  to  comp.os.linux.announce,  comp.os.linux,  and news.answers.
  They will also be uploaded  to  various  Linux  FTP  sites,  including
  sunsite.unc.edu:/pub/Linux/docs/HOWTO.



  1.3.  Feedback

  If  you  have  questions  or comments about this document, please feel
  free to  mail  Matt  Welsh,  at  mdw@sunsite.unc.edu.  I  welcome  any
  suggestions,  criticism, or postcards. If you find a mistake with this
  document, please let me know so I can correct it in the next  version.
  Thanks.


  2.  Hardware Requirements

  What  kind  of system is needed to run Linux? This is a good question;
  the actual hardware requirements for the system  change  periodically.
  The  Linux  Hardware-HOWTO  gives a (more or less) complete listing of
  hardware supported by Linux. The  Linux  INFO-SHEET  provides  another
  list.

  At  the  very  least,  a  hardware  configuration  that looks like the
  following is required:

  Any ISA, EISA or VESA  Local  Bus  80386  or  80486  system  will  do.
  Currently,  the  MicroChannel  (MCA)  architecture  (found on IBM PS/2
  machines) is not supported.  Any CPU from the 386SX to the 486DX2 will
  work.  You do not need a math coprocessor, although it is nice to have
  one.

  You need at least 4 megabytes of memory in your machine.  Technically,
  Linux  will  run with only 2 megs, but most installations and software
  require 4. The more memory you have, the happier you'll be. I  suggest
  8 or 16 megabytes if you're planning to use X-Windows.

  Of  course,  you'll  need  a  hard  drive  and  an  AT-standard  drive
  controller. All MFM, RLL, and IDE drives and controllers should  work.
  Many  SCSI  drives and adaptors are supported as well; the Linux SCSI-
  HOWTO contains more information on SCSI.

  Linux can actually run on a single 5.25" HD floppy,  but  that's  only
  useful for installation and maintenance.

  Free  space  on your hard drive is needed as well. The amount of space
  needed depends  on  how  much  software  you  plan  to  install.  Most
  installations  require  somewhere  in  the  ballpark of 40 to 80 megs.
  This includes space for the software, swap space (used as virtual  RAM
  on your machine), and free space for users, and so on.

  It's  conceivable that you could run a minimal Linux system in 10 megs
  or less, and it's conceivable that you could use well over 100 megs or
  more  for  all  of  your  Linux  software.  The  amount varies greatly
  depending on the amount of software you install and how much space you
  require. More about this later.

  Linux  will  co-exist  with  other  operating systems, such as MS-DOS,
  Microsoft Windows, or OS/2, on your hard drive. (In fact you can  even
  access  MS-DOS  files  and  run  some MS-DOS programs from Linux.)  In
  other words, when partitioning your drive for Linux,  MS-DOS  or  OS/2
  live  on  their  own partitions, and Linux exists on its own. We'll go
  into more detail later.

  You do NOT need to be running MS-DOS, OS/2,  or  any  other  operating
  system  to  use  Linux.  Linux  is a completely different, stand-alone
  operating system and does not rely on other OS's for installation  and
  use.

  You  also  need a Hercules, CGA, EGA, VGA, or Super VGA video card and
  monitor.  In general, if your video card and monitor work under MS-DOS
  then  it  should  work  under  Linux.  However,  if  you wish to run X
  Windows, there are other restrictions on the supported video hardware.
  The  Linux XFree86-HOWTO contains more information about running X and
  its requirements.

  In all, the minimal setup for Linux is not much more than is  required
  for most MS-DOS or MS Windows systems sold today. If you have a 386 or
  486 with at least 4 megs of RAM, then you'll be happy  running  Linux.
  Linux does not require huge amounts of diskspace, memory, or processor
  speed. I (used to) run Linux on a 386/16 MHz (the slowest machine  you
  can get) with 4 megs of RAM, and was quite happy. The more you want to
  do, the  more  memory  (and  faster  processor)  you'll  need.  In  my
  experience  a  486  with  16  megabytes  of  RAM running Linux outdoes
  several models of workstation.



  3.  Getting Linux

  In this section we'll cover how to obtain the Linux software.


  3.1.  Linux Distributions

  Before you can install Linux,  you  need  to  decide  on  one  of  the
  ``distributions''  of  Linux  which are available. There is no single,
  standard release of the Linux software---there are many such releases.
  Each  release has its own documentation and installation instructions.

  Linux distributions are available both via anonymous FTP and via  mail
  order on diskette, tape, and CD-ROM. The Linux Distribution HOWTO (see
  sunsite.unc.edu in the file  /pub/Linux/docs/HOWTO/Distribution-HOWTO)
  includes a list of many Linux distributions available via FTP and mail
  order.

  The  release  of  Linux  covered  in  this  HOWTO  is  the   Slackware
  distribution,      maintained     by     Patrick     J.     Volkerding
  (volkerdi@mhd1.moorhead.msus.edu). It  is  one  of  the  most  popular
  distributions  available;  it  is  very up-to-date and includes a good
  amount  of  software  including  X-Windows,  TeX,  and  others.    The
  Slackware distribution consists of a number of ``disk sets'', each one
  containing a particular type of software (for example, the d disk  set
  contains  development  tools  such as the gcc compiler, and so forth).
  You can elect to install whatever disk sets you like, and  can  easily
  install new ones later.

  Slackware  is  also easy to install; it is very self-explanatory.  (So
  self-explanatory, in fact, that this HOWTO may not be necessary.)

  The version of Slackware described here is 1.2.0, of  22  March  1994.
  Installation  of later versions of Slackware should be very similar to
  the information given here.

  Information on other releases can be found in the  Linux  Installation
  and  Getting  Started  manual  from  the  LDP. You can also find other
  releases    of    Linux    on    various    FTP    sites,    including
  sunsite.unc.edu:/pub/Linux/distributions  See  the  Distribution-HOWTO
  (mentioned above) for details.

  The instructions here should be general enough  to  be  applicable  to
  releases  other  than  Slackware. I hate to be biased towards a single
  release, but I don't have time to keep up with them all! And Slackware
  appears to have what most Linux users are looking for.



  3.2.  Slackware Space Requirements

  Unfortunately,   Slackware  does  not  maintain  a  complete  list  of
  diskspace requirements  for  each  disk  set.  You  need  at  least  7
  megabytes to install just the A series of disks; a very rough estimate
  of the required diskspace would be 2 or 2.5 megabytes per disk.

  The following disk sets are available:

     A  The base system. Enough to get up and running and have elvis and
        comm programs available. Based around the 0.99pl15 Linux kernel,
        and the new filesystem standard (FSSTND).

        These disks are known to fit on 1.2M disks, although the rest of
        Slackware  won't.  If you have only a 1.2M floppy, you can still
        install the base system,  download  other  disks  you  want  and
        install them from your hard drive.


     AP Various  applications  and  add  ons,  such as the manual pages,
        groff, ispell (GNU and international versions), term, joe, jove,
        ghostscript, sc, bc, and the quota patches.


     D  Program  development.  GCC/G++/Objective  C 2.5.8, make (GNU and
        BSD), byacc and GNU bison, flex, the 4.5.19  C  libraries,  gdb,
        kernel  source  for 0.99pl15, SVGAlib, ncurses, clisp, f2c, p2c,
        m4, perl, rcs.


     E  GNU Emacs 19.22.


     F  A collection of FAQs and other documentation.


     I  Info pages for GNU software. Documentation for various  programs
        readable by info or Emacs.


     N  Networking. TCP/IP, UUCP, mailx, dip, deliver, elm, pine, smail,
        cnews, nn, tin, trn.


     OOP
        Object  Oriented  Programming.  GNU  Smalltalk  1.1.1,  and  the
        Smalltalk Interface to X. (STIX)


     TCL
        Tcl, Tk, TclX, blt, itcl.


     Y  Games. The BSD games collection, and Tetris for terminals.


     X  The  base  XFree86 2.0 system, with libXpm, fvwm 1.20, and xlock
        added.


     XAP
        X applications: X11 ghostscript, libgr13, seyon, workman, xfile-
        manager,  xv 3.00, GNU chess and xboard, xfm 1.2, ghostview, and
        various X games.


     XD X11 program development. X11 libraries, server linkkit, PEX sup-
        port.



     XV Xview  3.2 release 5. XView libraries, and the Open Look virtual
        and non-virtual window managers.


     IV Interviews libraries, include files, and the doc and idraw apps.
        These  run unreasonably slow on my machine, but they might still
        be worth looking at.


     OI ParcPlace's Object Builder 2.0 and Object Interface Library 4.0,
        generously  made available for Linux developers according to the
        terms in the "copying" notice found in these directories.


     T  TeX support. Since many people have asked about TeX, I  borrowed
        the  3  TeX  disks  from  SLS and went through them changing the
        filesystem structure somewhat and fixing  permissions.  You  can
        take  this  as a sign that Slackware TeX support may continue to
        improve.

  You must get the ``a'' disk set; the rest are optional.  I suggest  at
  least  installing  the  a, ap, and d sets, as well as the x set if you
  plan to run X Windows.


  3.3.  Getting Slackware via Mail Order

  Slackware is available for free from the Internet, as well as via mail
  order  (if  you  don't have Internet access, or don't want to take the
  time to download it yourself).  The  next  section  describes  how  to
  download Slackware from the Internet.

  The  various  mail  order  distributors for Slackware (and other Linux
  distributions) are  listed  in  the  Linux  Distribution  HOWTO,  from
  sunsite.unc.edu in the directory /pub/Linux/docs/HOWTO.


  3.4.  Getting Slackware from the Internet

  The Slackware release of Linux may be found on any number of FTP sites
  worldwide. The Linux META-FAQ lists several of the Linux FTP sites; we
  suggest that you try to find the software on the FTP site nearest you,
  to reduce net traffic. However, two of the major Linux FTP  sites  are
  sunsite.unc.edu and tsx-11.mit.edu.

  The Slackware release may be found on the following FTP sites:

  o  sunsite.unc.edu:/pub/Linux/distributions/slackware

  o  tsx-11.mit.edu:/pub/linux/packages/slackware

  o  ftp.cdrom.com:/pub/linux/slackware

     ftp.cdrom.com is Slackware's home site.


  3.4.1.  Downloading the files

  You  need  to  download  the following files from the FTP sites listed
  above. Make sure that you use binary mode when FTPing them!


  o  The various README files, as well as  SLACKWARE_FAQ.   Be  sure  to
     read  these files before attempting to install the software, to get
     any updates or changes to this document.

  o  A bootdisk image. This is a file that you will write to a floppy to
     create  the  Slackware  boot disk. If you have a 1.44 megabyte boot
     floppy (3.5"), look in the directory install/1_44meg/bootdisks.  If
     you  have a 1.2 megabyte boot floppy (5.25"), look in the directory
     install/1_2meg/bootdisks.  The README files  in  these  directories
     describes what the files are.

     You need one of the following files:

  o  bare.gz.  This  is  a  boot  floppy  that  has  only IDE hard drive
     drivers. (No SCSI, CD-ROM, or networking support.)  Use this if you
     only  have  an  IDE  hard  drive  controller and aren't going to be
     installing over the network or from CD-ROM.

  o  xt.gz. This is a boot floppy with IDE and XT hard drive support.

  o  cd.gz. Contains IDE hard drive and non-SCSI  CD-ROM  drivers.   Get
     this  if  you're  going  to  be installing from a (non-SCSI) CD-ROM
     (only relevant if you bought a Slackware CD-ROM of some kind).

  o  cdscsi.gz. Contains IDE and SCSI hard drive support,  and  non-SCSI
     CD-ROM drivers.


  o  scsi.gz.  Contains IDE and SCSI hard drive support, and SCSI CD-ROM
     drivers.

  o  net.gz. Contains IDE hard drive and TCP/IP networking support.  Get
     this if you are going to install over the network using NFS.

  o  scsinet.gz.  Contains  IDE and SCSI hard drive support, SCSI CD-ROM
     drivers, and TCP/IP networking support.  You might want to try this
     one  first;  use  bare.gz or one of the other boot floppies if this
     doesn't work for you.

     You need only one of the above bootdisk images,  depending  on  the
     type hardware that you have in your system.

     The  issue  here  is  that some hardware drivers conflict with each
     other in strange ways, and instead of attempting to debug  hardware
     problems on your system it's easier to use a boot floppy image with
     only certain drivers enabled. Most  users  should  try  scsi.gz  or
     bare.gz.

  o  A rootdisk image. This is a file that you will write to a floppy to
     create the Slackware installation disk. As with the bootdisk image,
     look   in   install/1_44meg/rootdisks  or  install/1_2meg/rootdisks
     depending on the type of boot floppy drive that you have.

     You need one of the following files:

  o  color144.gz. The menu-based color installation disk  for  1.44  meg
     drives. Most users should use this rootdisk.

  o  tty144.gz.  The  terminal-based  installation  disk  for  1.44  meg
     drives. You should use color144.gz, but a few people have  reported
     problems  with  it on their system. If color144.gz doesn't work for
     you, try tty144.gz instead.  It is a bit dated and the installation
     procedure  isn't  identical,  but  it  should  work  if color144.gz
     doesn't.

  o  colrlite.gz. The menu-based color installation  disk  for  1.2  meg
     drives.  Some  things have been trimmed off of this disk to make it
     fit on a 1.2 meg floppy, but it should work if you only have a  1.2
     meg drive.

  o  tty12.gz.  The terminal-based installation disk for 1.2 meg drives.
     Use this rootdisk if you have a 1.2 meg boot floppy and colrlite.gz
     doesn't work for you.

     Again, you need only one of the above rootdisk images, depending on
     the type of boot floppy drive that you have.

  o  GZIP.EXE. This is an MS-DOS  executable  of  the  gzip  compression
     program  used  to  compress  the  boot  and rootdisk files (the .gz
     extension on the filenames indicates this). This can  be  found  in
     the install directory.

  o  RAWRITE.EXE. This is an MS-DOS program that will write the contents
     of a file (such as the boot and  rootdisk  images)  directly  to  a
     floppy,  without  regard  to  format.  You  will use RAWRITE.EXE to
     create the boot and root  floppies.   This  can  be  found  in  the
     install directory as well.

     You  only  need  RAWRITE.EXE and GZIP.EXE if you plan to create the
     boot and root floppies from an MS-DOS system. If you have access to
     a  UNIX workstation with a floppy drive instead, you can create the
     floppies from there, using the dd command.  See the man page for dd
     and ask your local UNIX gurus for assistance.

  o  The  files  in the directories a1, a2, and a3.  These files make up
     the  ``a''  disk  set  of  the  Slackware  distribution.  They  are
     required.  Later,  you will copy these files to MS-DOS floppies for
     installation (or, you can install from your hard drive). Therefore,
     when  you  download these files, keep them in separate directories;
     don't mix the a1 files with the a2 files, and so on.

     Be sure that you get the files without periods in the filenames  as
     well.  That  is,  within FTP, use the command ``mget *'' instead of
     ``mget *.*''.

  o  The files in the directories ap1, ap2, etc., depending on what disk
     sets  you  are  installing.  For example, if you are installing the
     ``x'' disk series, get the files in the directories x1 through  x5.
     As  with  the  ``a''  disk set, above, be sure to keep the files in
     separate directories when you download them.


  3.4.2.  Installation methods

  Slackware provides several different means of installing the software.
  The  most  popular is installing from an MS-DOS partition on your hard
  drive; the other is to install from a set of MS-DOS  floppies  created
  from the disk sets that you downloaded.

  You  can  also install Slackware from an NFS-mounted filesystem over a
  TCP/IP network. This is somewhat involved, however, and  a  discussion
  of  how  to  do this is out of the range of this document. If you need
  help, ask your local UNIX gurus how to set up your system to mount  an
  NFS filesystem which you can install Slackware from. (For this, you'll
  need another system on the network which has Slackware available on an
  exported filesystem.)

  First  we'll  describe  how  to create the boot and root floppies, and
  then we'll describe how to set things up for either a  hard  drive  or
  floppy installation.


  3.4.2.1.  Creating the boot and root floppies

  You  must  create  floppies from the bootdisk and rootdisk images that
  you downloaded, no matter what type of installation you will be doing.
  This  is  where the MS-DOS programs GZIP.EXE and RAWRITE.EXE come into
  play.

  First you must uncompress  the  bootdisk  and  rootdisk  images  using
  GZIP.EXE  (on  an  MS-DOS  system,  of course). For example, if you're
  using the bare.gz bootdisk image, issue the MS-DOS command:

       C:\> GZIP -D BARE.GZ


  which will uncompress bare.gz and leave you with the  file  bare.  You
  must  similarly uncompress the rootdisk image. For example, if you are
  using the rootdisk color144.gz, issue the command:

       C:\> GZIP -D COLOR144.GZ


  which will uncompress the file and leave you with color144.

  Next, you must have two high-density MS-DOS formatted floppies.  (They
  must be of the same type; that is, if your boot floppy drive is a 3.5"
  drive, both floppies must be high-density 3.5" disks.)  You  will  use
  RAWRITE.EXE to write the boot and rootdisk images to the floppies.

  For example, if you're using the bare.gz bootdisk, use the command:

       C:\> RAWRITE


  Answer  the  prompts  for  the  name  of  the  file  to write (such as
  BAREBOOT) and the floppy to write it to (such  as  A:).  RAWRITE  will
  copy  the  file,  block-by-block,  directly  to  the  floppy. Also use
  RAWRITE for the root disk image (such as COLOR144). When you're  done,
  you'll  have  two  floppies:  one  containing the boot disk, the other
  containing the root disk. Note that these two floppies will no  longer
  be  readable  by  MS-DOS  (they are ``Linux format'' floppies, in some
  sense).

  Be sure that you're using brand-new, error-free floppies. The floppies
  must have no bad blocks on them.

  Note  that  you  do  not need to be running MS-DOS in order to install
  Slackware. However, running MS-DOS makes it easier to create the  boot
  and  root floppies, and it makes it easier to install the software (as
  you can install directly from an MS-DOS partition on your system).  If
  you  are not running MS-DOS on your system, you can use someone else's
  MS-DOS system just to create the floppies, and install from there.

  It is not necessary to use GZIP.EXE and RAWRITE.EXE  under  MS-DOS  to
  create the boot and root floppies, either. You can use the gzip and dd
  commands on a UNIX system to do the same job.   (For  this,  you  will
  need  a UNIX workstation with a floppy drive, of course.) For example,
  on a Sun workstation with the floppy drive on  device  /dev/rfd0,  you
  can use the commands:


       $ gunzip bare.gz
       $ dd if=bare of=/dev/rfd0 obs=18k




  You  must  provide  the  appropriate  block  size  argument  (the  obs
  argument) on some workstations (e.g., Suns) or this will fail. If  you
  have problems the man page for dd will be instructive.

  3.4.2.2.  Preparing for hard drive installation

  If  you're planning on installing the Slackware software directly from
  the hard drive (which is much faster and more reliable than  a  floppy
  installation),  you  will  need an MS-DOS partition on the system that
  you're installing Slackware to. (That is, you must already be  running
  MS-DOS on the system.)

  To  prepare  for hard drive installation, simply create a directory on
  the hard drive to store the Slackware files. For example,

       C:\> MKDIR SLACKWAR


  will create the directory C:\SLACKWAR to  hold  the  Slackware  files.
  Under this directory, you should create the subdirectories A1, A2, and
  so on, for each disk set that you downloaded. All of  the  files  from
  the A1 disk should go into the directory SLACKWAR\A1, and so forth.

  Now  you're  ready  to  go  on  and  install the software; skip to the
  section ``Installing the Software''.


  3.4.2.3.  Preparing for floppy installation

  If you wish to install Slackware from floppies  instead  of  the  hard
  drive, you'll need to have one blank, MS-DOS formatted floppy for each
  Slackware disk that you downloaded. These disks must  be  high-density
  format.

  The  A  disk  set  (disks  A1  through A3) may be either 3.5" or 5.25"
  floppies. However, the rest of the  disk  sets  must  be  3.5"  disks.
  Therefore,  if  you  only  have  a  5.25" floppy drive, you'll need to
  borrow a 3.5" drive from someone in order to install disk  sets  other
  than  A. (Or, you can install from the hard drive, as explained in the
  previous section.)

  To make the disks, simply copy the files from each Slackware directory
  onto an MS-DOS formatted floppy, using the MS-DOS COPY command. As so:

       C:\> COPY A1\*.* A:


  will copy the contents of the A1 disk to the floppy in drive A:.   You
  should repeat this for each disk that you downloaded.

  You  do not need to modify or uncompress the files on the disks in any
  way; you merely need to copy them to MS-DOS  floppies.  The  Slackware
  installation  procedure takes care of uncompressing the files for you.


  4.  Installing the Software

  In this  section  we'll  describe  how  to  prepare  your  system  for
  installing Slackware, and finally how to go about installing it.


  4.1.  Repartitioning

  On most systems, the hard drive is already dedicated to partitions for
  MS-DOS, OS/2, and so on.  You need to resize these partitions in order
  to make space for Linux.

  A  partition  is  just  a  section  of  the hard drive set aside for a
  particular operating system to use. If you only have MS-DOS installed,
  your  hard drive probably has just one partition, entirely for MS-DOS.
  To use Linux, however, you'll need to repartition the drive,  so  that
  you have one partition for MS-DOS, and one (or more) for Linux.

  The  problem with resizing partitions is that there is no way to do it
  (easily) without deleting the data on  those  partitions.   Therefore,
  you   will   need  to  make  a  full  backup  of  your  system  before
  repartitioning. In order to resize a partition, we simply  delete  the
  partition(s), and re-create them with smaller sizes.

  NOTE:  There is a non-destructive disk repartitioner available for MS-
  DOS,  called  FIPS.  Look  on   sunsite.unc.edu   in   the   directory
  /pub/Linux/system/Install. With FIPS, a disk optimizer (such as Norton
  Disk Doctor), and a little bit of luck, you should be able  to  resize
  MS-DOS partitions without destroying the data on them.

  If  you're  not  using  FIPS,  however,  the  classic  way  to  modify
  partitions is with the program FDISK. For example, let's say that  you
  have an 80 meg hard drive, dedicated to MS-DOS. You'd like to split it
  in half---40 megs for MS-DOS and 40 megs for Linux.  In  order  to  do
  this,  you  need  to  run FDISK under MS-DOS, delete the 80 meg MS-DOS
  partition, and re-create a 40 meg MS-DOS partition in its  place.  You
  can  then  format the new partition and reinstall your MS-DOS software
  from backups.

  Use of MS-DOS FDISK should be self-explanatory. You'll need to make  a
  full  backup  of  your  system, and have a bootable MS-DOS floppy with
  utilities such as FDISK.EXE and FORMAT.COM installed (the original MS-
  DOS  installation  disks  are the best thing to use for this). Booting
  from the floppy, you run FDISK on your hard drive, and  use  the  menu
  options to delete your current MS-DOS partition, and then re-create it
  with a smaller size. You can then re-install the MS-DOS software  from
  backup.

  The mechanism used to repartition for OS/2 and other operating systems
  is similar. See the documentation  for  those  operating  systems  for
  details.



  4.2.  Creating partitions for Linux

  After  repartitioning  your  drive,  you need to create partitions for
  Linux. Linux requires at least one partition, for the root filesystem,
  which  will  hold  the  Linux  software  itself.   You may wish to use
  additional partitions for other filesystems, as  discussed  below.  In
  addition, most users set aside a swap partition, to be used as virtual
  RAM on your machine.  If you have 4 megabytes of RAM or less,  a  swap
  partition  is  required  to  install  the  software.  It  is  strongly
  recommended that you have a swap partition anyway, unless you have  16
  megabytes or more of physical RAM.

  In  order  to  create  your Linux partitions, first boot the Slackware
  bootdisk. After the system boots, you will see the message:


       Please remove the boot kernel disk from your floppy drive,
       insert a disk to be loaded into the ramdisk, and press
       [enter] to continue.




  At this point you should remove the bootdisk from the drive and insert
  the rootdisk. Then press enter to go on.


  The  rootdisk  will be loaded into memory, and you should be presented
  with a login prompt. Login as ``root''.


       darkstar login: root
       #




  Note to IBM PS/1, ValuePoint, and ThinkPad Users: If you  use  an  IBM
  PS/1,  ValuePoint,  or ThinkPad machine, the system will not recognize
  your hard drive when you boot the Slackware bootdisk. This is  because
  these machines do not store drive geometry information in the CMOS (as
  they should) and you  have  to  specify  the  geometry  by  hand  when
  booting.  (Later  you  can  get  around  this  by  installing the LILO
  software, which allows you to boot Linux from the hard drive.)

  You must use a bootdisk other than  ``bare''  for  this  to  work.   I
  suggest  using scsi.gz. While booting the bootdisk, hold down the left
  shift key. You will be presented with a boot menu which will  describe
  how  to  specify  your  hard  drive  geometry  (that is, the number of
  cylinders, heads, and sectors per track) for your drive using  the  hd
  boot  option. You can get information on your drive geometry from your
  hard drive manual or by running MS-DOS FDISK.


  4.2.1.  Using fdisk

  To create partitions, you'll  use  the  Linux  fdisk  program.   After
  logging in as root, run the command

       fdisk <drive>


  where  <drive>  is the name of the drive that you wish to create Linux
  partitions on. Hard drive device names are:

  o  /dev/hda First IDE drive

  o  /dev/hdb Second IDE drive

  o  /dev/sda First SCSI drive

  o  /dev/sdb Second SCSI drive

     and so on. For example, to create Linux  partitions  on  the  first
     SCSI drive in your system, use the command

       fdisk /dev/sda


  If you use fdisk without an argument, it will assume /dev/hda.

  Use  of  fdisk  is  simple.  The  command  ``p'' displays your current
  partition table. ``n'' creates a new partition, and  ``d''  deletes  a
  partition.

  To  Linux,  partitions  are given a name based on the drive which they
  belong to. For example, the first partition on /dev/hda is  /dev/hda1,
  the second is /dev/hda2, and so on.

  NOTE: You should not create or delete partitions for operating systems
  other than Linux with Linux fdisk. That is, don't create or delete MS-
  DOS  partitions  with  this  version of fdisk; use MS-DOS's version of
  FDISK instead. If you try  to  create  MS-DOS  partitions  with  Linux
  fdisk,  chances  are  MS-DOS  will not recognize the partition and not
  boot correctly.

  Here's an example of using  fdisk.  Here,  we  have  a  single  MS-DOS
  partition  using  61693 blocks on the drive, and the rest of the drive
  is free for Linux. (Under Linux, one block is 1024  bytes.  Therefore,
  61693  blocks  is  about  61  megabytes.)   We  will  create two Linux
  partitions: one for swap, and one for the root filesystem.

  First, we use the ``p''  command  to  display  the  current  partition
  table.  As you can see, /dev/hda1 (the first partition on /dev/hda) is
  a DOS partition of 61693 blocks.

  ______________________________________________________________________
  Command (m for help):   p
  Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders
  Units = cylinders of 608 * 512 bytes

       Device Boot  Begin   Start     End  Blocks   Id  System
    /dev/hda1   *       1       1     203   61693    6  DOS 16-bit >=32M

  Command (m for help):
  ______________________________________________________________________



  Next, we use the ``n'' command to create a new  partition.  The  Linux
  root partition will be 80 megs in size.

  ______________________________________________________________________
  Command (m for help):  n
  Command action
      e   extended
      p   primary partition (1-4)
  p
  ______________________________________________________________________



  A  primary  partition is simply one of the 4 partitions on your drive.
  An extended partition allows you to create multiple logical partitions
  within  it; this allows you to go over the four-partition limit on the
  drive. In most cases, you should only use  primary  partitions  unless
  you need more than 4 partitions on a drive.

  ______________________________________________________________________
  Partition number (1-4): 2
  First cylinder (204-683):  204
  Last cylinder or +size or +sizeM or +sizeK (204-683): +80M
  ______________________________________________________________________



  The  first  cylinder  should  be  the  cylinder  AFTER  where the last
  partition left off. In this case, /dev/hda1 ended on cylinder 203,  so
  we start the new partition at cylinder 204.

  As  you  can  see,  if  we  use  the notation ``+80M'', it specifies a
  partition of 80 megs in size. Likewise, the  notation  ``+80K''  would
  specify an 80 kilobyte partition, and ``+80'' would specify just an 80
  byte partition.

  ______________________________________________________________________
  Warning: Linux cannot currently use 33090 sectors of this partition
  ______________________________________________________________________

  If you see this warning, you can ignore it. It is left  over  from  an
  old  restriction that Linux filesystems could only be 64 megs in size.
  However, with newer filesystem types, that is no  longer  the  case...
  partitions can now be up to 4 terabytes in size.

  Next, we create our 10 megabyte swap partition, /dev/hda3.

  ______________________________________________________________________
  Command (m for help): n
  Command action
      e   extended
      p   primary partition (1-4)
  p

  Partition number (1-4): 3
  First cylinder (474-683):  474
  Last cylinder or +size or +sizeM or +sizeK (474-683):  +10M
  ______________________________________________________________________



  Again,  we  display  the  contents  of the partition table. Be sure to
  write down the information here, especially the size of each partition
  in blocks. You need this information later.

  ______________________________________________________________________
  Command (m for help): p
  Disk /dev/hda: 16 heads, 38 sectors, 683 cylinders
  Units = cylinders of 608 * 512 bytes

       Device Boot  Begin   Start     End  Blocks   Id  System
    /dev/hda1   *       1       1     203   61693    6  DOS 16-bit >=32M
    /dev/hda2         204     204     473   82080   83  Linux native
    /dev/hda3         474     474     507   10336   83  Linux native
  ______________________________________________________________________



  Note  that the Linux swap partition (here, /dev/hda3) has type ``Linux
  native''. We need to change the type of the swap partition to  ``Linux
  swap''  so  that  the installation program will recognize it as a swap
  partition. In order to do this, use the fdisk ``t'' command:

  ______________________________________________________________________
  Command (m for help): t
  Partition number (1-4): 3
  Hex code (type L to list codes): 82
  ______________________________________________________________________



  If you use ``L'' to list the type codes, you'll find that  82  is  the
  code corresponding to Linux swap.

  To  quit  fdisk  and  save the changes to the partition table, use the
  ``w'' command. To quit fdisk WITHOUT saving  changes,  use  the  ``q''
  command.

  After  quitting  fdisk, the system may tell you to reboot to make sure
  that the changes took effect. In general there is no reason to  reboot
  after using fdisk---the version of fdisk on the Slackware distribution
  is smart enough to update the partitions without rebooting.




  4.3.  Preparing the swap space

  If you have 4 megabytes or RAM or less in your machine, you will  need
  to  create a swap partition (using fdisk) and format it (using mkswap)
  before you can install the software.

  If you have more than 4 megabytes of RAM, you  should  only  create  a
  swap  partition  (if you want to use one)---the Slackware installation
  procedure  will  take  care  of  formatting  and  enabling  the   swap
  partition.  So, if you have more than 4 megs of RAM, you can skip this
  section and go on to the section ``Installing the Software''.

  If you get any  ``out  of  memory''  errors  during  the  installation
  procedure  you  should  create  a  swap  partition  and  enable  it as
  described here.

  To prepare the swap space for use, we  use  the  mkswap  command.   It
  takes the form:

       mkswap -c <partition> <size>


  where <partition> is the partition name, such as /dev/hda3, and <size>
  is the size of the partition in blocks.

  For example, if you created a swap  partition  on  /dev/hda3  of  size
  10336 blocks, use the command

       mkswap -c /dev/hda3 10336


  The  -c  option  tells mkswap to check for bad blocks on the partition
  when preparing the swap space. If  you  see  any  ``read_intr''  error
  messages  during the mkswap operation, this means that bad blocks were
  found (and flagged). So you can ignore these errors.

  To enable swapping on the new device, use the command

       swapon <partition>


  For example, for our swap space on /dev/hda3, we use

       swapon /dev/hda3


  We're now swapping with about 10 megabytes more virtual memory.

  You should execute mkswap and swapon for each swap partition that  you
  created (if you decided to create more than one).


  4.4.  Installing the software

  Installing   the   Slackware  release  is  very  simple;  it's  almost
  automatic. You use the setup  command,  which  guides  you  through  a
  series  of menus which allow you to specify the means of installation,
  the partitions to use, and so forth.  Almost everything is  automatic.

  Here,  we're  not  going  to  document  many of the specifics of using
  setup, because it changes from time  to  time.  setup  is  very  self-
  explanatory;  it  contains  its own documentation. Just to give you an
  idea  of  what  it's  like,  however,   we'll   describe   what   most
  installations are like using setup.


  Before  you  begin,  be  sure  that  you  have  a  high-density MS-DOS
  formatted floppy on hand. You will use this floppy to create  a  Linux
  boot diskette.

  After  running  fdisk  (and,  perhaps, mkswap and swapon if you have 4
  megs of RAM or less), issue the command

       # setup


  This will present you with a colourful menu with various options  such
  as ``Addswap'' (to set up your swap space), ``Source'' (to specify the
  source of the software to install, such  as  floppy  or  hard  drive),
  ``Target'' (to specify where to install the software), and so on.

  In  general,  you should go through the menu commands in the following
  order:

  1. Addswap. If you created a swap partition  (using  fdisk),  use  the
     addswap  menu option to tell the system about it.  This option will
     present you with a list of possible swap partitions; just  type  in
     the  name  of  the  swap partition(s) that you wish to use (such as
     /dev/hda3). The system will then ask you if you want to format  the
     swap  partition,  which you should do unless you already ran mkswap
     and swapon on it.  That is, you should format  the  swap  partition
     unless you already formatted and enabled it by hand as described in
     the previous section.

  2. Source. This menu option  lets  you  specify  the  source  for  the
     software  to install. You can select several means of installation,
     such as from floppy or from hard drive. If you are installing  from
     floppies, the system will ask you which floppy drive to use. If you
     are installing from hard  drive,  the  system  will  ask  you  what
     partition  the files are stored on, and what directory they are in.

     For example, if you are installing from an MS-DOS partition on your
     hard  drive,  and  the  Slackware  files  are  under  the directory
     C:\SLACKWAR, you should enter the  name  of  the  MS-DOS  partition
     (such  as  /dev/hda1)  and  the  name  of  the  directory  (such as
     /slackwar). Note that you  should  use  forward  slashes  (/),  not
     backslashes (\), in the directory name.

     There are other means of installation, such as CD-ROM. These should
     be self-explanatory as well.

  3. Target. This menu  item  lets  you  specify  what  partition(s)  to
     install the software on. The system will display a list of possible
     partitions. First you will be asked to enter the name of  the  root
     partition,  such  as  /dev/hda2.  You  will be asked if you want to
     format the partition; unless you  are  installing  on  a  partition
     previously formatted for Linux you should do so. You should use the
     Second Extended Filesystem (ext2fs) type for the partition.

     You will also be given a chance to use  additional  partitions  for
     different  parts of the directory tree. For example, if you created
     a separate partition for the /usr filesystem, you should enter  the
     name  of  that  partition  and the directory that it corresponds to
     (/usr) when asked.

  4. Disksets. This option allows you to specify the disksets  you  wish
     to install. Use the arrow keys to scroll through the list; pressing
     the spacebar selects or deselects a set. Press return  when  you're
     done selecting disk sets.

     You  may wish to only install a minimal system at this time. That's
     fine. Only the A diskset is required. After you have installed  the
     software you may run setup to install other disksets.

  5. Install. After setting up all of the parameters above, you're ready
     to install the software. First the system will ask you what type of
     prompting  to  use;  you should use the ``normal'' prompting method
     (unless  you're  an  expert  and  have  modified  the  installation
     tagfiles in some way).

     The  system  will  simply  go through each disk set and install the
     software. For each software package, a dialog box will be displayed
     describing  the  software. Software packages that are required will
     be installed automatically. For optional software packages you will
     be  given  the  option  of  either installing or not installing the
     package. (If you don't wish to install a certain package  now,  you
     can always use setup on your system to install it later).

     While the software is installing, watch out for error messages that
     may be displayed. The most common error that you're likely  to  run
     into is ``device full'', which means that you have run out of space
     on your Linux partitions. Unfortunately, the Slackware installation
     procedure  is  not  quite  smart  enough  to  detect this, and will
     attempt to continue installing the software regardless. If you  get
     any  kind  of error messages during the installation procedure, you
     may wish to break out of the installation program (using Ctrl-C) to
     record  them.  The only solution for the ``device full'' problem is
     to re-create your Linux partitions with different sizes, or attempt
     to  reinstall the software without several of the optional software
     packages.



  4.5.  After installation

  After installation is complete, and if all  goes  well,  you  will  be
  given  the  option of creating a ``standard boot disk'', which you can
  use to boot your newly-installed Linux system. For this you will  need
  a  blank,  high-density MS-DOS formatted diskette of the type that you
  boot with on your system. Simply insert the disk when prompted  and  a
  boot diskette will be created.

  You  will also be given the chance to install LILO on your hard drive.
  LILO (which stands for LInux LOader) is a program that will allow  you
  to  boot  Linux  (as  well as other operating systems, such as MS-DOS)
  from your hard drive.  If  you  wish  to  do  this,  just  select  the
  appropriate menu option and follow the prompts.

  If  you are using OS/2's Boot Manager, the menu will include an option
  for configuring LILO for use with the Boot Manager, so  that  you  can
  boot Linux from it.

  Note that this automated LILO installation procedure is not foolproof;
  there are situations in which this can fail. Be sure that you  have  a
  way  to  boot  MS-DOS,  Linux, and other operating systems from floppy
  before you attempt to install LILO. If the LILO installation fails you
  will  be able to boot your system from floppy and correct the problem.

  The postinstallation procedure will also take you through several menu
  items  allowing you to configure your system. This includes specifying
  your modem and mouse device, as well as your time  zone.  Just  follow
  the menu options.


  4.6.  Booting your new system

  If  everything  went as planned, you should be able to boot your Linux
  boot floppy (not the Slackware installation  floppy,  but  the  floppy
  created after installing the software). Or, if you installed LILO, you
  should be able to boot from the hard drive.  After booting,  login  as
  root. Congratulations! You have your very own Linux system.

  If  you  are  booting  using  LILO,  try holding down shift or control
  during boot. This will present you with a boot prompt;  press  tab  to
  see  a  list  of  options.  In this way you can boot Linux, MS-DOS, or
  whatever directly from LILO.

  After booting your system and logging in as root,  one  of  the  first
  things  you  should do is create an account for yourself.  The adduser
  command may be used for this purpose. For example,


       # adduser
       Login to add (^C to quit): ebersol
       Full Name: Norbert Ebersol
       GID [100]: 100
       UID [501]: 501
       Home Directory [/home/ebersol]: /home/ebersol
       Shell [/bin/bash]: /bin/bash
       Password [ebersol]: new.password

       Information for new user [ebersol]:
       Home directory: [/home/ebersol]  Shell: [/bin/bash]
       Password: [new.password]  UID: [502] GID:[100]
       Is this correct? [y/n]: y




  adduser will prompt you for various parameters, such as the  username,
  full name, GID (group ID), UID (user ID), and so on. For the most part
  you can use the defaults. If you're unfamiliar with creating users  on
  a  UNIX  system,  I  strongly  suggest  getting a book on UNIX systems
  administration. It will help you greatly in setting up and using  your
  new system.

  You can now login as the new user. You can use the keys Alt-F1 through
  Alt-F8 to switch between virtual consoles, which  will  allow  you  to
  login  multiple times from the console. The passwd command can be used
  to set the passwords on your new accounts; you should set  a  password
  for root and any new users that you create.

  Also,  the  hostname  of  your machine is set at boot time in the file
  /etc/rc.d/rc.M. You should edit this file  (as  root)  to  change  the
  hostname of the machine.  You should edit the lines in this file which
  run the commands hostname or hostname_notcp. (The default hostname  is
  darkstar.)  You  may also wish to edit the domainname commands in this
  file, if you are on a TCP/IP network.

  Obviously, there are many more things to setup and configure.  A  good
  book  on UNIX systems administration should help. (I suggest Essential
  Systems Administration from O'Reilly and Associates.)  You  will  pick
  these  things  up as time goes by. You should read various other Linux
  HOWTOs, such as the NET-2-HOWTO and Printing-HOWTO, for information on
  other configuration tasks.

  After that, the system is all yours... have fun!



  5.  Miscellaneous

  I  don't  like to be biased towards the Slackware release, however, in
  order to document multiple releases of Linux, this file would be much,
  much  longer.  It  is  simpler and more coherent to cover the specific
  instructions  for  a  single  release  of  Linux.   The   book   Linux
  Installation   and   Getting   Started   currently   includes  general
  installation  instructions  which  should  be  applicable  to  ``any''
  distribution  of  Linux.  However, because the installation procedures
  are so varied, covering them all  would  be  very  confusing  both  to
  myself and to the reader.

  The basic concepts in this document still hold, no matter what release
  of Linux you choose. For example, all  releases  require  you  to  run
  fdisk,  and  all  of  them  (to  my  knowledge)  include  some kind of
  installation menu similar to the setup program.  If you choose to  use
  a  release of Linux other than Slackware, the READMEs and installation
  instructions that come with that release should be easy to  understand
  in the context of the material presented here.

  If  you  would  like  a more complete discussion of Linux installation
  (instead of the "quick" examples given  here),  read  the  book  Linux
  Installation    and   Getting   Started,   from   sunsite.unc.edu   in
  /pub/Linux/docs/LDP.  This book includes a complete discussion of  how
  to  obtain  and  install  Linux,  as  well as a basic UNIX and systems
  administration tutorial for new users.

  Please mail me at mdw@sunsite.unc.edu if any part of this document  is
  confusing  or incorrect. I depend on feedback from readers in order to
  maintain this document! I also like to  help  answer  questions  about
  Linux installation, if you have any.

  I'd  like  to  thank  Patrick Volkerding for his work on the Slackware
  distribution and assistance in preparing this document.

  Best of luck with your new Linux system!

  Cheers, mdw