home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / mini / RedHat-CD < prev    next >
Text File  |  1999-02-08  |  23KB  |  793 lines

  1.   Burning a RedHat CD mini-HOWTO
  2.   Morten Kjeldgaard, mok@imsb.au.dk and Peter von der AhΘ,
  3.   pahe+rhcd@daimi.au.dk
  4.   v1.18, 27 December 1998
  5.  
  6.   This document describes how to make your own CDs from the Red Hat
  7.   Linux distribution equivalent to the ones commercially available from
  8.   Red Hat.  The structure of the distribution is described, as well as
  9.   the procedure needed to include updated RPMS into the distribution.
  10.   Prerequisites are a good network connection, and a CD-writer.
  11.   ______________________________________________________________________
  12.  
  13.   Table of Contents
  14.  
  15.  
  16.   1. Introduction
  17.  
  18.   2. Anatomy of the Red Hat FTP site
  19.  
  20.      2.1 The top level directory
  21.      2.2 The "RedHat" directory -- the core of the distribution
  22.  
  23.   3. RPM packages
  24.  
  25.   4. Obtaining your local copy of the distribution
  26.  
  27.   5. Incorporating the updates
  28.  
  29.      5.1 Correcting the file protection modes
  30.      5.2 Replacing the updated RPMS
  31.      5.3 Generating a new hdlist file
  32.         5.3.1 Important note for RedHat 5.2
  33.  
  34.   6. At last: burning the CD
  35.  
  36.      6.1 Creating a bootable CD
  37.         6.1.1 Create disk image
  38.         6.1.2 Test the image
  39.         6.1.3 Burn the disk
  40.  
  41.   7. Installing from the CD
  42.  
  43.   8. This document...
  44.  
  45.      8.1 Related documentation
  46.      8.2 Acknowledgements
  47.  
  48.   9. DISCLAIMER
  49.  
  50.  
  51.  
  52.   ______________________________________________________________________
  53.  
  54.   1.  Introduction
  55.  
  56.  
  57.   There may be several reasons for making your own CD. Perhaps you're a
  58.   cheapskate and want to save the $50 cost of the Red Hat distribution
  59.   <http://www.redhat.com/>. Or, perhaps you want a distribution CD
  60.   containing the latest distribution with all current updates. This is
  61.   highly relevant, because after each major release of the Red Hat
  62.   distribution, there have been loads of updates, several of which are
  63.   security related. Just take a look at the updates/00README.errata
  64.   <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/updates/00README.errata>
  65.   file.  A specific errata sheet also exists for each supported
  66.   platform.  See for example the Intel errata sheet
  67.   <ftp://ftp.redhat.com/pub/redhat/updates/5.1/i386/00README.errata>
  68.  
  69.  
  70.   2.  Anatomy of the Red Hat FTP site
  71.  
  72.  
  73.   In the spirit of the Linux community, Red Hat Software has made
  74.   available their Linux distributions for several platforms on their FTP
  75.   site. These are all available from the top distribution directory.
  76.  
  77.  
  78.   2.1.  The top level directory
  79.  
  80.  
  81.   The toplevel directory for RedHat Linux release 5.1
  82.   (pub/redhat/redhat-5.1 <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/>)
  83.   contains distributions for the different platforms, and a directory
  84.   containing updates and corrections to program packages that have been
  85.   published since the release.
  86.  
  87.  
  88.  
  89.  
  90.        SRPMS/     alpha/     i386/      sparc/     updates/
  91.  
  92.  
  93.  
  94.  
  95.  
  96.   In this document, we use the i386 distribution as an example.  The
  97.   procedure given in this document is likely to work on all platforms
  98.   supported by Red Hat (Alpha, SPARC, ppc, etc.), but we have only
  99.   tested it on the i386 platform (the authors would be most interested
  100.   in additional information). The root of the i386 directory looks like
  101.   this:
  102.  
  103.  
  104.  
  105.  
  106.        -rw-r--r--   8 ftpuser  ftpusers     19686 May 27  1997 COPYING
  107.        -rw-r--r--   1 ftpuser  ftpusers      3023 May  7 09:58 README
  108.        -rw-r--r--  10 ftpuser  ftpusers      2751 Sep 18  1997 RPM-PGP-KEY
  109.        drwxr-xr-x   5 ftpuser  ftpusers        96 Jul 15 08:34 RedHat/
  110.        drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:35 doc/
  111.        drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:35 dosutils/
  112.        drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:33 gnome/
  113.        drwxr-xr-x   2 ftpuser  ftpusers        96 Jun  7 02:47 images/
  114.        drwxr-xr-x   4 ftpuser  ftpusers        96 Jun  5 12:24 misc/
  115.  
  116.  
  117.  
  118.  
  119.  
  120.   The doc directory contains an abundance of information. Most
  121.   importantly, the RedHat installation manual can be found in HTML
  122.   format in the directory doc/rhmanual/manual/
  123.   <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/i386/doc/rhmanual/manual/doc000.htm>.
  124.   Next, there is a number of FAQs, and finally, the entire collection of
  125.   HOWTOs and mini-HOWTOs.
  126.  
  127.   The images directory contains boot floppy images that must be copied
  128.   to a diskette. In the most recent distribution (5.1), there are two
  129.   disk images available. The boot image is called boot.img, which is
  130.   required when installation is performed directly from a CD-ROM.  If
  131.   installation from a local hard disk, NFS mounted disk or FTP is
  132.   required, the supplementary disk image supp.img might be needed. See
  133.   section ``Installing from the CD'' and references therein for details.
  134.  
  135.   The misc directory contains source and executables of a number of
  136.   programs needed for the installation.
  137.  
  138.  
  139.   2.2.  The "RedHat" directory -- the core of the distribution
  140.  
  141.  
  142.   The most important part of the directory tree is rooted in the RedHat
  143.   directory:
  144.  
  145.  
  146.  
  147.  
  148.        drwxr-xr-x   2 ftpuser  ftpusers     24576 Jul 15 08:35 RPMS/
  149.        drwxr-xr-x   2 ftpuser  ftpusers      8192 Jul 15 08:32 base/
  150.        -rw-rw-rw-  59 ftpuser  ftpusers         0 Aug 15 14:21 i386
  151.        drwxr-xr-x   4 ftpuser  ftpusers        96 Jun  5 12:24 instimage/
  152.  
  153.  
  154.  
  155.  
  156.  
  157.   The RPMS directory contains the major part of the Red Hat distribution
  158.   consisting of a set of RPM (Redhat Package Manager) files. An RPM
  159.   package typically contains binary executables, along with relevant
  160.   configuration files and documentation. See the section ``RPM
  161.   packages'' for more information.
  162.  
  163.   The base directory holds different book-keeping files needed during
  164.   the installation process, e.g. the comps file, which defines the
  165.   components (groups of packages) used during the "Choose packages to
  166.   install" phase.  Another important file in the base directory is the
  167.   hdlist file containing most of the header fields from all the RPMs in
  168.   the RPMS directory.
  169.  
  170.   This means that all the interdependencies among RPM packages can be
  171.   determined just by reading hdlist without having to read all the RPM
  172.   packages which is quite convenient especially during FTP installs.
  173.  
  174.   Another use of hdlist is mapping package names to file name, eg. perl
  175.   to perl-5.004-6.i386.rpm.  This means that if you want to incorporate
  176.   updates from RedHat (see section ``Incorporating the updates'') or add
  177.   your own packages to the RPMS directory, you need to update hdlist.
  178.   This is descriped later in ``Generating a new hdlist file''.
  179.  
  180.   The instimage directory contains a bare-bones live file system with a
  181.   number of programs and shared libraries needed during the installation
  182.   procedure.
  183.  
  184.  
  185.   3.  RPM packages
  186.  
  187.  
  188.   The major part of the Red Hat distribution consists of a set of RPM
  189.   (Redhat Package Manager) files.  An RPM package typically contains
  190.   binary executables, along with relevant configuration files and
  191.   documentation.  The rpm <http://www.rpm.org> program is a powerful
  192.   package manager, which can be used to install, query, verify, update,
  193.   erase and build software packages in the RPM format. Rpm convieniently
  194.   maintains a database of all the software packages it has installed, so
  195.   information on the installed software is available at any time.
  196.  
  197.   The binary RPM files in the distribution have been built on a system
  198.   running the distribution itself. This is important, because most of
  199.   the programs in the packages rely on shared libraries. From RedHat
  200.   version 5.0, the new version 2 of the GNU standard C library (which is
  201.   64-bit clean) has been used. This version of the library is commonly
  202.   referred to as glibc or in Linux: libc 6. All executables in the
  203.   distribution have been linked against this library. If you attempt to
  204.   install binary files from a different distribution, chances are that
  205.   they will not work, unless you install the libc5 package for backwards
  206.   compability.
  207.  
  208.   The names of the RPM packages contain the suffix .arch.rpm, where arch
  209.   is the architechture, having the value i386 for Intel platform
  210.   binaries.  The packages you install must match the versions of the
  211.   shared libraries available on the machine. The rpm
  212.   <http://www.rpm.org> program is usually quite good at ensuring that
  213.   this is indeed the case, however, there are ways around this check,
  214.   and you should be sure that you know what you are doing if you force
  215.   installation of packages this way.  However, using the RedHat
  216.   installation boot disk, it is ensured that the correct set of RPM
  217.   packages are installed on the machine.
  218.  
  219.   If you discover an RPM package that was not installed on your system
  220.   during the installation process, don't despair. At any time, you may
  221.   (as root) install RPM packages, for example:
  222.  
  223.  
  224.  
  225.        rpm --install  WindowMaker-0.18-1b.i386.rpm
  226.  
  227.  
  228.  
  229.  
  230.  
  231.   You can even install directly from the Internet, if you know the URL
  232.   of an RPM package:
  233.  
  234.  
  235.  
  236.        rpm --install ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm
  237.  
  238.  
  239.  
  240.  
  241.  
  242.   Another version of the RPM packages contain the original sources used
  243.   to build the binaries. These packages have the suffix .src.rpm and are
  244.   situated in the SRPMS directory. These packages are not needed on the
  245.   installation CD, and in fact, there is not even enough disk space on
  246.   an 74 minute burnable CD to accomodate them. Of course, you can make a
  247.   separate CD with the SRPMS.
  248.  
  249.  
  250.  
  251.   4.  Obtaining your local copy of the distribution
  252.  
  253.  
  254.   You need a copy of the distribution on a writable disk which is
  255.   accessible from the computer having the CD writer (duh!). If you want
  256.   to incorporate the latest updates, this directory should (also) be
  257.   accessible from from a Linux machine, either from a local disk, an NFS
  258.   mounted disk on a different computer, or a JAZ disk.
  259.  
  260.   You could copy the distribution from a RedHat CD, or you could get it
  261.   via FTP. If you choose to use FTP, the best way to get a correct copy
  262.   of the distribution is to use the mirror package.
  263.  
  264.  
  265.   Mirror is a sophisticated perl script that compares the content of a
  266.   directory on a remote site with a local directory. It will use FTP to
  267.   fetch the files that are on the remote site but not the local site,
  268.   and delete files on the local site that are not on the remote site.
  269.   The mirror program is configured with a configuration file.  The
  270.   mirror package is available as an RPM from rufus.w3.org
  271.   <http://rufus.w3.org/linux/RPM/mirror.html>.
  272.  
  273.   Make your local copy mirror.redhat of the mirror configuration file,
  274.   and edit the relevant fields at the top of the file. After the default
  275.   section, define these packages:
  276.  
  277.  
  278.  
  279.  
  280.        package=updates
  281.               site=ftp.sunsite.auc.dk
  282.               exclude_patt=(alpha/|sparc/)
  283.               remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-5.1/updates
  284.               local_dir=/jaz/redhat-5.1/updates
  285.  
  286.        package=dist
  287.               site=ftp.sunsite.auc.dk
  288.               exclude_patt=(alpha/|sparc/)
  289.               remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-5.1/i386
  290.               local_dir=/jaz/redhat-5.1/i386
  291.  
  292.  
  293.  
  294.  
  295.   The following command will download a copy of the entire RedHat tree
  296.   on your local disk. *Think* before you do this, you are about to
  297.   transfer approximately 350Mb of data.
  298.  
  299.  
  300.  
  301.  
  302.        mirror -pdist mirror.redhat
  303.  
  304.  
  305.  
  306.  
  307.   This will mirror the Red Hat FTP site on your local disk. The content
  308.   of a Red Hat distribution does not change between releases, so you
  309.   only need to download this package ONCE. All changes to the
  310.   distribution are in the updates directory. Thus, if you want to keep
  311.   an up-to-date mirror of the Red Hat distribution, you only need to
  312.   keep the updates directory current. This is done using the command
  313.  
  314.  
  315.  
  316.  
  317.        mirror -pupdates mirror.redhat
  318.  
  319.  
  320.  
  321.  
  322.   You can run this regularly, say, once a week, through a cron script.
  323.   The RedHat distribution is available on a great number of FTP servers
  324.   around the world, which are updated daily from the master site at
  325.   <ftp://ftp.redhat.com/pub>. You should choose an FTP site close to
  326.   you, see the RedHat FAQ
  327.   <http://www.redhat.com/support/docs/rhl/RedHat-FAQ/RedHat-
  328.   FAQ-12.html#ss12.1>
  329.  
  330.  
  331.   5.  Incorporating the updates
  332.  
  333.  
  334.   To incorporate the updates, you need write access to the distribution
  335.   directory from a Linux machine, with a working version of rpm
  336.   <http://www.rpm.org> installed. There are three steps involved:
  337.  
  338.  
  339.   1. Correct the file protection modes.
  340.  
  341.   2. Replace updated RPMs.
  342.  
  343.   3. Generate the hdlist file
  344.  
  345.   If you maintain a mirror of the updates directory, you can at any time
  346.   produce a CD including the current updates by repeating these steps.
  347.  
  348.  
  349.   5.1.  Correcting the file protection modes
  350.  
  351.  
  352.   During the installation process, some programs are run directly off
  353.   the CD.  Unfortunately, the FTP program does not always preserve the
  354.   protection modes of the files and directories that are copied.
  355.   Therefore, it is necessary to make sure that execute permission is
  356.   given to programs, shell scripts and shared libraries, before the
  357.   directory is burned on the CD. This is done by running the updatePerm
  358.   script on your local copy of the distribution:
  359.  
  360.  
  361.   ______________________________________________________________________
  362.   #!/bin/bash
  363.  
  364.   RHVERSION=5.1
  365.  
  366.   LIST=/tmp/er3hd3w25
  367.   CDDIR=/jaz/redhat-${RHVERSION}
  368.  
  369.   # Find all directories, and make sure they have +x permission
  370.   find $CDDIR -type d -exec chmod -c 755 {} \;
  371.  
  372.   # Find all files that are executables, shell or perl scripts
  373.   find $CDDIR -type f | file -f - | grep -v RPM \
  374.      | egrep -i 'executable|perl|bourne|shell' | cut -f1 -d: > $LIST
  375.  
  376.   # Find shared libraries
  377.   find $CDDIR -name \*.so >> $LIST
  378.  
  379.   # Make them executable
  380.   while read file
  381.   do
  382.      if [ ! -x $file ] ; then
  383.         chmod -c 755 $file
  384.      fi
  385.   done < $LIST
  386.  
  387.   /bin/rm $LIST
  388.  
  389.   exit 0
  390.   ______________________________________________________________________
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.   5.2.  Replacing the updated RPMS
  398.  
  399.  
  400.   The following script called updateCD copies all files from the update
  401.   directory to the RPMS directory. The script uses some nifty rpm tricks
  402.   to determine what packages in the updates directory are more recent.
  403.   Older packages are moved to the ${OLD} directory.
  404.  
  405.  
  406.   ______________________________________________________________________
  407.   #! /bin/bash
  408.   # This script updates rpms in a RedHat distribution found in $RPMDIR.
  409.   # The old rpms will be placed in $OLDDIR.
  410.   # The new rpms should be located in $UPDDIR.
  411.   # The architechture is $ARCH.
  412.  
  413.   RHVERSION=5.1
  414.   ARCH=i386
  415.  
  416.   CDDIR=/jaz/redhat-${RHVERSION}
  417.   RPMDIR=${CDDIR}/${ARCH}/RedHat/RPMS
  418.   UPDDIR=${CDDIR}/updates/${ARCH}
  419.   OLDDIR=${CDDIR}/old
  420.  
  421.   if [ ! -d $OLDDIR ] ; then
  422.      echo making directory $OLDDIR
  423.      mkdir $OLDDIR
  424.   fi
  425.  
  426.   allow_null_glob_expansion=1
  427.  
  428.   for rpm in ${UPDDIR}/*.rpm ; do
  429.     NAME=`rpm --queryformat "%{NAME}" -qp $rpm`
  430.     unset OLDNAME
  431.     for oldrpm in ${RPMDIR}/${NAME}*.rpm ; do
  432.       if [ `rpm --queryformat "%{NAME}" -qp $oldrpm` = "$NAME" ]; then
  433.         OLDNAME=$oldrpm;
  434.         break
  435.       fi
  436.     done
  437.     if [ -z "$OLDNAME" ]; then
  438.       echo $NAME is new
  439.       cp -pv $rpm $RPMDIR
  440.     else
  441.       if [ `basename $rpm` != `basename $OLDNAME` ]; then
  442.         mv $OLDNAME $OLDDIR
  443.         cp -pv $rpm $RPMDIR
  444.       fi
  445.     fi
  446.   done
  447.  
  448.  
  449.   # Copy new boot image files to the right place...
  450.   for newfile in ${UPDDIR}/images/* ; do
  451.     file=${CDDIR}$/${ARCH}/images/$(basename ${newfile})
  452.     if [ $newfile -nt $file ] ; then
  453.        cp -pv $newfile $file
  454.     fi
  455.   done
  456.  
  457.   exit 0
  458.   ______________________________________________________________________
  459.  
  460.  
  461.  
  462.  
  463.   5.3.  Generating a new hdlist file
  464.  
  465.  
  466.   When installing from the CD, the installation program on the CD relies
  467.   on the file RedHat/base/hdlist describing what RPM packages are
  468.   available on the CD. The hdlist file can be generated by the program
  469.   misc/src/install/genhdlist.  This program must be run with the root
  470.   name of the distribution as the only argument. Here is the
  471.   updateHdlist script which calls that program:
  472.  
  473.  
  474.   ______________________________________________________________________
  475.   #!/bin/bash
  476.  
  477.   RHVERSION=5.1
  478.   ARCH=i386
  479.  
  480.   echo generating hdlist...
  481.   CDDIR=/jaz/redhat-${RHVERSION}
  482.   GENHDDIR=${CDDIR}/${ARCH}/misc/src/install
  483.  
  484.   chmod u+x ${GENHDDIR}/genhdlist
  485.   chmod 644 ${CDDIR}/${ARCH}/RedHat/base/hdlist
  486.   ${GENHDDIR}/genhdlist ${CDDIR}/${ARCH} || echo "*** GENHDLIST FAILED ***"
  487.  
  488.   exit 0
  489.   ______________________________________________________________________
  490.  
  491.  
  492.  
  493.   NOTE: After having incorporated the updates in the main RedHat/RPMS
  494.   directory, your copy of the distribution is no longer a mirror of the
  495.   Red Hat distribution site. Actually, it is more up-to-date! Therefore,
  496.   if you attempt to mirror the distribution, older versions of the RPM's
  497.   that have been updated will be downloaded once more, and the updates
  498.   deleted.
  499.  
  500.  
  501.  
  502.   5.3.1.  Important note for RedHat 5.2
  503.  
  504.  
  505.   As distributed with RedHat version 5.2 and earlier, genhdlist CRASHES
  506.   if there are files in the RedHat/RPMS directory which are not RPM
  507.   files!  This causes problems, because in the 5.2 distribution, there
  508.   are a couple of non-RPM files named ls-lR and ls-lR.gz in RedHat/RPMS.
  509.   Therefore, you must remove all non-RPM files from the directory.
  510.   Alternatively, you can apply the following patch to
  511.   misc/src/install/genhdlist.c and do a make. The patch will cause
  512.   genhdlist to ignore any non-RPM files.
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.   *** genhdlist.c.orig    Fri Nov 27 12:08:13 1998
  530.   --- genhdlist.c Fri Nov 27 12:08:20 1998
  531.   ***************
  532.   *** 12,23 ****
  533.   --- 12,26 ----
  534.  
  535.     #define FILENAME_TAG 1000000
  536.  
  537.   + /* Not used apparently...
  538.   +
  539.     int tags[] =  { RPMTAG_NAME, RPMTAG_VERSION, RPMTAG_RELEASE, RPMTAG_SERIAL,
  540.                   RPMTAG_FILENAMES, RPMTAG_FILESIZES, RPMTAG_GROUP,
  541.                   RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION,
  542.                   RPMTAG_DESCRIPTION, RPMTAG_SUMMARY, RPMTAG_PROVIDES,
  543.                   RPMTAG_SIZE, RPMTAG_OBSOLETES };
  544.     int numTags = sizeof(tags) / sizeof(int);
  545.   + */
  546.  
  547.     int main(int argc, char ** argv) {
  548.         char buf[300];
  549.   ***************
  550.   *** 26,34 ****
  551.   --- 29,39 ----
  552.         struct dirent * ent;
  553.         int fd, rc, isSource;
  554.         Header h;
  555.   +     /* not used
  556.         int count, type;
  557.         int i;
  558.         void * ptr;
  559.   +     */
  560.  
  561.         if (argc != 2) {
  562.           fprintf(stderr, "usage: genhdlist <dir>\n");
  563.   ***************
  564.   *** 74,79 ****
  565.   --- 79,85 ----
  566.  
  567.               rc = rpmReadPackageHeader(fd, , , NULL, NULL);
  568.  
  569.   +           if (!rc) {
  570.               headerRemoveEntry(h, RPMTAG_POSTIN);
  571.               headerRemoveEntry(h, RPMTAG_POSTUN);
  572.               headerRemoveEntry(h, RPMTAG_PREIN);
  573.   ***************
  574.   *** 110,115 ****
  575.   --- 116,122 ----
  576.               headerWrite(outfd, h, HEADER_MAGIC_YES);
  577.               headerFree(h);
  578.               close(fd);
  579.   +           }
  580.           }
  581.  
  582.           errno = 0;
  583.  
  584.  
  585.  
  586.  
  587.   6.  At last: burning the CD
  588.  
  589.  
  590.   As we assume that you have a working CD-writer on your system, and you
  591.   know how to use it, we wont go into much detail about burning the CD.
  592.   If you are burning your CD on a Linux system, you can install the
  593.   excellent XCDroast <http://www.fh-muenchen.de/rz/xcdroast> package.
  594.   In XCDRoast, switch on the Rock Ridge extensions, and the creation of
  595.   a TRANS.TBL file.
  596.  
  597.   Make sure the top directory of the CD contains at least the following
  598.   files and directories:
  599.  
  600.  
  601.  
  602.  
  603.        COPYING      RPM-PGP-KEY README       RedHat/
  604.  
  605.  
  606.  
  607.  
  608.  
  609.   The following directories might come in handy:
  610.  
  611.  
  612.  
  613.  
  614.        doc/         gnome/      misc/        dosutils/    images/
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.   6.1.  Creating a bootable CD
  622.  
  623.  
  624.   (This section, thanks to Dawn Endico dawn@math.wayne.edu).  Since
  625.   XCDroast doesn't support creation of bootable disks you'll need to use
  626.   other tools, for example mkisofs
  627.   <ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/> and cdrecord
  628.   <http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>.
  629.   Get the latest RPMs for these packages from
  630.   <ftp://contrib.redhat.com>.  You'll need to create an image file which
  631.   will be written to the CD. This file will be 500Mb or more so find a
  632.   partition with enough free space and change the path for redhat.img in
  633.   the following commands if necessary. You may need to be root to use
  634.   mount and cdrecord.
  635.  
  636.  
  637.   6.1.1.  Create disk image
  638.  
  639.  
  640.   Change directory to the place in your mirror that will be the root
  641.   directory of the cd. For instance, redhat-5.2/i386.
  642.  
  643.  
  644.  
  645.  
  646.        mkisofs -v -r -T -J -V "Red Hat 5.2" -b images/boot.img -c misc/boot/boot.cat -o /tmp/redhat.img .
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.   6.1.2.  Test the image
  655.  
  656.  
  657.   If you're paranoid you can test your new disk image by mounting it. If
  658.   you forgot to fix the file permissions or set the rock ridge
  659.   extensions then the error will be obvious here since the file names
  660.   and directory structure will be wrong.
  661.        mount -t iso9660 -o ro,loop=/dev/loop0 /tmp/redhat.img /mnt/cdrom
  662.  
  663.  
  664.  
  665.  
  666.  
  667.   When you're done, don't forget to unmount it.
  668.  
  669.  
  670.  
  671.  
  672.        umount /mnt/cdrom
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.   6.1.3.  Burn the disk
  681.  
  682.  
  683.   Be sure to set the correct speed for your device. This command is for
  684.   a 4X CDR. You may have a 1X or 2X drive.
  685.  
  686.  
  687.  
  688.  
  689.        cdrecord -v speed=4 dev=0,0 /tmp/redhat.img
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.   7.  Installing from the CD
  698.  
  699.  
  700.   When installing from the new CD, you first need to create a bootable
  701.   installation diskette. IMPORTANT: use a NEW, freshly MS-DOS formatted
  702.   diskette! Using an old, worn-out, faulty diskette can result in
  703.   strange problems during the installation!
  704.  
  705.   On a Linux system, you can create the diskette using the dd command:
  706.  
  707.  
  708.  
  709.  
  710.        dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k
  711.  
  712.  
  713.  
  714.  
  715.  
  716.   On a system running DOS or Windows-9x, you need to use the RAWRITE.EXE
  717.   program, which is found on the CD in the dosutils directory.
  718.  
  719.   Shut down the machine you want to install (or do a system upgrade) on,
  720.   insert the boot diskette and your freshly burned CD, and let the
  721.   machine boot from the diskette. For more information on the
  722.   installation process, se the documents and the Installation-HOWTO or
  723.   the Bootdisk-HOWTO which are on the CD in the doc/HOWTO directory.
  724.  
  725.  
  726.  
  727.   8.  This document...
  728.  
  729.  
  730.   The SGML source of the most recent version of this document can be
  731.   retrieved from  <http://imsb.au.dk/~mok/linux/doc/RedHat-CD.sgml>.
  732.  
  733.  
  734.  
  735.   8.1.  Related documentation
  736.  
  737.  
  738.   Ed Schlunder <zilym@asu.edu> has written a utility called fix-rhcd to
  739.   let you check your Red Hat Linux distribution mirror for matching file
  740.   sizes, names, permissions, and symlinks against an "ls -lNR" listing
  741.   from the offical Red Hat ftp site. Any permissions that are wrong are
  742.   changed to match the ls listing. See the fix-rhcd homepage
  743.   <http://www.ajusd.org/~edward/fix-rhcd/>.
  744.  
  745.  
  746.   8.2.  Acknowledgements
  747.  
  748.  
  749.   Thanks to the following people for valuable input:
  750.  
  751.  
  752.   ╖  Lars Christensen <larsch@cs.auc.dk>
  753.  
  754.   ╖  Thomas Duffy <tbd@cs.brown.edu>
  755.  
  756.   ╖  Dawn Endico <dawn@math.wayne.edu>
  757.  
  758.   ╖  Seva <seva@null.cc.uic.edu>
  759.  
  760.  
  761.   9.  DISCLAIMER
  762.  
  763.  
  764.   While the given information in this document is believed to be
  765.   correct, the authors assume no responsibility whatsoever for any
  766.   damage to hardware and/or software, or any loss of data resulting from
  767.   the procedures outlined in this document.
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.