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: 5 March 1994

This is a new version of the Linux Installation HOWTO, which covers just the
Slackware distribution of Linux. It is a pre-release, and therefore has
some rough edges. Please let me know if there are any mistakes!  

You can find a nicely-formatted PostScript and .dvi version of this HOWTO
(as well as others) on sunsite.unc.edu in /pub/Linux/docs/HOWTO/other-formats.

  The Linux Installation HOWTO
  by Matt Welsh, mdw@sunsite.unc.edu
  v2.0, 5 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  FAQ,  available
  from  sunsite.unc.edu:/pub/Linux/docs.  This  directory  contains many
  other documents about Linux, including the Linux INFO-SHEET and  META-
  FAQ,  both  of which are good introductory documents about Linux. 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.)

  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.


     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 pubLinux/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
  sunsite.unc.edu:/pub/Linux/distributions/slackware    as    well    as
  tsx-11.mit.edu:/pub/linux/packages/slackware.


  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 bootdisk/1_44meg. If you have
     a  1.2  megabyte  boot  floppy  (5.25"),  look  in  the   directory
     bootdisk/1_2meg.

     You need one of the following files:

  o  bareboot.gz.  This is the ``trimmed-down'' boot floppy that doesn't
     include 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.

  o  cd_boot.gz. This is a boot floppy with CD-ROM drivers enabled.  Get
     this if you're going to be installing from CD-ROM (only relevant if
     you bought a Slackware CD-ROM of some kind.)

  o  net_boot.gz. This is a boot floppy with TCP/IP networking  enabled.
     Get this if you are going to install over the network using NFS.

  o  onlyscsi.gz.  This  is a boot floppy with only SCSI support; no IDE
     or networking support. Get this if you have a SCSI drive controller
     that seems to be conflicting with other drivers on your system.

  o  scsiboot.gz.  This  is  a  boot  floppy with everything; IDE, SCSI,
     networking, CD-ROM support, the works. You should probably try this
     one  first;  use  bareboot.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  scsiboot  or
     bareboot.

  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  bootdisk/1_44meg or bootdisk/1_2meg 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.  Use this rootdisk if color144.gz doesn't work for you  for
     some reason. It is a bit dated and the installation procedure isn't
     exactly like that found on color144.gz, but it should work.

  o  colorlite.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.

  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
     colorlite.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 bootdisk 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 top-
     level Slackware directory on the FTP site.

     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 bareboot.gz bootdisk image, issue the MS-DOS command:

       C:\> GZIP -D BAREBOOT.GZ


  which  will  uncompress  bareboot.gz  and  leave  you  with  the  file
  bareboot. 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 bareboot 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 bareboot.gz
       $ dd if=bareboot 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 ``bareboot'' for this to  work.   I
  suggest using scsiboot. 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 too 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 is 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
