  Burning a RedHat CD mini-HOWTO

  Morten Kjeldgaard, mok@imsb.au.dk and Peter von der Ah,
  pahe+rhcd@daimi.au.dk
  v1.18, 27 December 1998
  ȯ hssuh@mail.bawi.org
  21 April 1999

    ޻κ   ִ    
     Ѵ.   Բ ǿ Ʈ
  RPM ϵ ԽŰ 鵵 ȴ. غ  Ʈ 
  CD-writer̴. (:    5.2  Ŀ ۼ
   5.1   . 5.2  CD  
  ǻ׵ Ǿ Ƿ  κ ϴ   ̴. 
  ѱ ϱ ϰ  ¥  CD  쿡 ALzzA
  丮  ׵ Ͽ  ̴.  ڴ ִ
    ű  Ű   ¥ ޿  
  ÷ ʾҴ.)
  ______________________________________________________________________

  

  1. 
  2.  FTP Ʈ غ
     2.1 ֻ 丮
     2.2 "RedHat" 丮 --  

  3. RPM ŰAID CDATA sec-rpm(LABEL)LABEL
  4.   纻 ϱ
  5. Ʈ ݿϱAID CDATA sec-updates(LABEL)LABEL
     5.1  ȣ  ϱ
     5.2 Ʈ RPM ٲٱ
     5.3 ο hdlist  ϱAID CDATA sec-new-hdlist(LABEL)LABEL
        5.3.1 RedHat 5.2  ߿ note

  6. : CD 
     6.1   CD 
        6.1.1 ũ ̹ ϱ
        6.1.2 ̹ ׽Ʈϱ
        6.1.3 ũ 

  7. CD ġϱAID CDATA sec-install(LABEL)LABEL
  8.   Ͽ
     8.1  
     8.2 ؾ  

  9. DISCLAIMERAID CDATA sec-disclaimer(LABEL)LABEL

  ______________________________________________________________________

  1.  

   ڽ CD       ̴. ¼
   μ   <http://www.redhat.com/> 50
  ϰ   ִ. Ǵ   ִ Ʈ  ϴ
   CD    ִ. ̴   major
  release  ȿ õ Ʈ δ ־Ƿ 
  ̴.  updates/00README.errata
  <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/updates/00README.errata>
     .  ÷ شǴ Ư errata sheet ִ.
     errata sheet
  <ftp://ftp.redhat.com/pub/redhat/updates/5.1/i386/00README.errata>
  .
  2.   FTP Ʈ غ

   ü ſ   Ʈ  ÷ 
  ׵  ǵ FTP Ʈ    ֵ  Ҵ.
  ̰͵  ֻ  丮κ   ִ.

  2.1.  ֻ 丮

    5.1 ֻ 丮 (pub/redhat/redhat-5.1
  <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/>)   ٸ
  ÷     Ŀ  α׷ Ű鿡 
  ǰ Ʈ ϴ 丮 ִ.

       SRPMS/     alpha/     i386/      sparc/     updates/

    츮 i386    ϰڴ.  
  ־  κ Ǵ  ÷(, , Ŀ
  Ǿ )    , i386 ׽Ʈ Ҵ. (ڵ
  ߰   ̴) i386 丮 Ʈ ̷ .

       -rw-r--r--   8 ftpuser  ftpusers     19686 May 27  1997 COPYING
       -rw-r--r--   1 ftpuser  ftpusers      3023 May  7 09:58 README
       -rw-r--r--  10 ftpuser  ftpusers      2751 Sep 18  1997 RPM-PGP-KEY
       drwxr-xr-x   5 ftpuser  ftpusers        96 Jul 15 08:34 RedHat/
       drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:35 doc/
       drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:35 dosutils/
       drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:33 gnome/
       drwxr-xr-x   2 ftpuser  ftpusers        96 Jun  7 02:47 images/
       drwxr-xr-x   4 ftpuser  ftpusers        96 Jun  5 12:24 misc/

  doc 丮 پ  ִ.  ߿   ġ
  Ŵ doc/rhmanual/manual/
  <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/i386/doc/rhmanual/manual/doc000.htm>
  丮 ִ. ,  FAQ   HOWTO 
  mini-HOWTO  ִ.

  images 丮 Ͽ ؾ  Ʈ ÷ ̹ ִ.
   ֱ  (5.1)   ũ ̹ ִ. Ʈ
  ̹ boot.img ̸, CD-ROM  ġ  ʿϴ.  
  ϵ ũ, NFS  Ʈ ũ FTP ʿϴٸ  ũ
  ̹ supp.img  ʿ ̴.  ڼ ׿  ؼ ``CD
  ġϱ''  ű⿡ ִ ۷ .

  misc 丮 ġ ʿ  α׷ ҽ ϵ
  ִ.

  2.2.  "RedHat" 丮 --  

  丮 Ʈ  ߿ κ RedHat 丮 ִ:

       drwxr-xr-x   2 ftpuser  ftpusers     24576 Jul 15 08:35 RPMS/
       drwxr-xr-x   2 ftpuser  ftpusers      8192 Jul 15 08:32 base/
       -rw-rw-rw-  59 ftpuser  ftpusers         0 Aug 15 14:21 i386
       drwxr-xr-x   4 ftpuser  ftpusers        96 Jun  5 12:24 instimage/

  RPMS 丮 RPM (Redhat Package Manager)  
  ̷   ֵ κ ִ. RPM Ű 
  ̳ʸ ȭϰ ش , ϵ ԵǾ ִ.  ڼ
   ``RPM Ű''    ִ.

  base 丮 ġ  ʿ Ű ϵ ִ.   
  comps  ׷,   "Choose packages to install" ܰ迡
  ϴ components (Ű ׷)  Ѵ.  base 丮 
  ٸ ߿  hdlist Ϸ,   RPMS 丮 ִ 
  RPM ϵ  ʵ带 Ѵ.

  ̴ FTP ġ  Ư  ,  RPM Ű 
  ʿ  hdlist    RPM Ű鰣 ȣ 
     ǹѴ.

  hdlist   ٸ  perl  perl-5.004-6.i386.rpm  Ű
  Ű ̸  ̸ Ű ̴. ࿡ ޿ 
  Ʈ ݿϰ Ѵٰų (``Ʈ ݿϱ'' ) RPMS
  丮  Ű ߰ϰ Ѵٸ hdlist  Ʈؾ
  Ѵ. ̿ ؼ ڿ ``ο hdlist  ϱ'' 
  ϰڴ.

  instimage 丮 ġ ʿ   α׷ 
  ̺귯  Ͻý۰ Բ  ִ.

  3.  RPM Ű

    ֵ κ RPM (Redhat Package Manager)  
  ̷ ִ. RPM Ű  ̳ʸ ϰ ش ,
  ϵ ԵǾ ִ. rpm <http://www.rpm.org> α׷ RPM
   Ʈ Ű ġ, , , Ʈ, , build
   ϴ  ̴  Ű ̴. Rpm  װ ġ
   Ʈ Ű ͺ̽ ϰ ϱ 
  ġ Ʈ      ִ.

  ǿ ִ ̳ʸ RPM ϵ   ü ư ý
    ̴. Ű ȿ ִ κ α׷ 
  ̺귯 ϱ  ̴ ſ ߿ϴ.   5.0
  ʹ (64Ʈ  ) GNU ǥ C ̺귯 ο  2
  ߴ.  ̷  ̺귯  glibc Ǵ 
  libc 6  θ.   ϵ  ̺귯
  ũǾ ִ.  ࿡ ٸ κ ̳ʸ ϵ ġϷ
  Ѵٸ  ȣȯ  libc5 Ű ġ ʴ´ٸ 
  ۵   ִ.

  RPM Ű ̸ ڿ .arch.rpm  پ ִµ, ⼭ arch 
  Űó ϸ,  ÷ ̳ʸ 쿡 i386  ȴ.
  νϴ Ű  迡 ϴ  ̺귯 
   ¾ƾ Ѵ. Rpm <http://www.rpm.org> α׷ ׷  
   Ȯ  찡 Ƿ ̷  Ű 
  ġ  ڽ ϰ ִ  Ȯ ˾ƾ Ѵ. ׷ 
  ġ Ʈ ũ ϸ RPM Ű Ȯ Ʈ ġǴ 
  Ȯ  ִ.

  ġ ġ  RPM Ű ִٰ ص Ǹ ʾƵ
  ȴ.   (Ʈ ) RPM Ű ġ  ִ.  
  Ʒ  ϸ ȴ.

       rpm --install  WindowMaker-0.18-1b.i386.rpm

   ͳκ ٷ ġ  ִµ, RPM Ű URL
  ȴٸ Ʒ  ϸ ȴ.

       rpm --install ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm

  RPM Ű  ٸ  ̳ʸ   ҽ Ǿ ִ.
  ̷ Ű鿡 .src.rpm ̶ Ȯڰ پ SRPMS
  丮 ִ.  Ű ġ CD ʿ , 
  74¥  CD ̷ ϵ    .  RPMS
  ϴ  CD   ִ.

  4.    纻 ϱ

  CD writer ִ ǻͷκ ׼    ũ
   纻 ־ Ѵ. ࿡  ֽ Ʈ ݿϰ
  ʹٸ  丮  ӽ, Ǵ  ũ, ٸ ǻͿ ִ
  NFS Ʈ ũ, JAZ ũκ ׼   ־ Ѵ.

   CDκ    ְ, FTP    ִ.
   FTP Ϸ Ѵٸ  Ȯ 纻    
   mirror Ű ϴ ̴.

  Mirror  丮  Ʈ ִ 丮 빰
  ϴ   ũƮ̴. Mirror  Ʈ  
  Ʈ  ϵ FTP ̿Ͽ   Ʈ
  µ  Ʈ ִ  . Mirror α׷
   ̿Ͽ   ִ.  Mirror Ű rufus.w3.org
  <http://rufus.w3.org/linux/RPM/mirror.html>  RPM   ִ.

  mirror  mirror.redhat   纻    
  شϴ ʵ Ѵ. default section   
  Ű Ѵ.

  package=updates
         site=ftp.sunsite.auc.dk
         exclude_patt=(alpha/|sparc/)
         remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-5.1/updates
         local_dir=/jaz/redhat-5.1/updates

  package=dist
         site=ftp.sunsite.auc.dk
         exclude_patt=(alpha/|sparc/)
         remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-5.1/i386
         local_dir=/jaz/redhat-5.1/i386

   ɾ Ű RedHat Ʈ ü  ũ
  ٿεϰ  ̴.    Ǹ 뷫 350Mb ڷḦ
  ϰ  ̹Ƿ ݵ ٽ      ̴.

       mirror -pdist mirror.redhat

  ̷ Ǹ  FTP Ʈ   ũ ̷ϰ ȴ.
       ۲ Ƿ  
  ٿεϸ ȴ.   ׵ updates 丮 ִ.
  ׷Ƿ ࿡   ֽ mirror ϰ ʹٸ
  updates 丮 ֽ  ϸ ȴ. ̷ Ϸ 
     ȴ.

       mirror -pupdates mirror.redhat

    1ϸ cron ũƮ ̿Ͽ  ų 
  ִ.      Ʈ  <ftp://ftp.redhat.com/pub>
  κ ƮǴ  迡 ִ  FTP κ  
  ִ.  ſ  FTP Ʈ  Ѵ. RedHat FAQ
  <http://www.redhat.com/support/docs/rhl/RedHat-FAQ/RedHat-
  FAQ-12.html#ss12.1>  .

  5.  Ʈ ݿϱ

  Ʈ ݿϷ  ۵ϴ rpm <http://www.rpm.org> 
  ġǾ ־ ϰ  ӽſ  丮  
  ־ Ѵ. Ʒ   ܰ踦 ľ Ѵ.

  1. Correct the file protection modes.

  2. Replace updated RPMs.

  3. Generate the hdlist file

   updates 丮 ̷ ϰ ִٸ ̷ ܰ踦 ļ
    Ʈ ϴ CD   ִ.
  5.1.   ȣ  ϱ

  ġ ߿  α׷ CDκ  ȴ. ϰԵ FTP
  α׷ Ǵ ϰ 丮 ȣ 带  
  ʴ´.   丮 CD   α׷,  ũƮ, 
  ̺귯  ۹̼ ־ ִ Ȯϴ  ʿϴ.
  ׷ Ϸ Ʒ updatePerm ũƮ   纻
  Ű ȴ.

  ______________________________________________________________________
  #!/bin/bash

  RHVERSION=5.1

  LIST=/tmp/er3hd3w25
  CDDIR=/jaz/redhat-${RHVERSION}

  # Find all directories, and make sure they have +x permission
  find $CDDIR -type d -exec chmod -c 755 {} \;

  # Find all files that are executables, shell or perl scripts
  find $CDDIR -type f | file -f - | grep -v RPM \
     | egrep -i 'executable|perl|bourne|shell' | cut -f1 -d: > $LIST

  # Find shared libraries
  find $CDDIR -name \*.so >> $LIST

  # Make them executable
  while read file
  do
     if [ ! -x $file ] ; then
        chmod -c 755 $file
     fi
  done < $LIST

  /bin/rm $LIST

  exit 0
  ______________________________________________________________________

  5.2.  Ʈ RPM ٲٱ

  updateCD Ҹ ƷǽũƮ updates 丮κ 
   RPMS 丮 ű.  ũƮ updates 丮 
    ֱ  Ǻϱ    ġִ rpm Ʈ
  Ѵ.   Ű ${OLD} 丮 Ű.

  ______________________________________________________________________
  #! /bin/bash
  # This script updates rpms in a RedHat distribution found in $RPMDIR.
  # The old rpms will be placed in $OLDDIR.
  # The new rpms should be located in $UPDDIR.
  # The architechture is $ARCH.

  RHVERSION=5.1
  ARCH=i386

  CDDIR=/jaz/redhat-${RHVERSION}
  RPMDIR=${CDDIR}/${ARCH}/RedHat/RPMS
  UPDDIR=${CDDIR}/updates/${ARCH}
  OLDDIR=${CDDIR}/old

  if [ ! -d $OLDDIR ] ; then
     echo making directory $OLDDIR
     mkdir $OLDDIR
  fi

  allow_null_glob_expansion=1

  for rpm in ${UPDDIR}/*.rpm ; do
    NAME=`rpm --queryformat "%{NAME}" -qp $rpm`
    unset OLDNAME
    for oldrpm in ${RPMDIR}/${NAME}*.rpm ; do
      if [ `rpm --queryformat "%{NAME}" -qp $oldrpm` = "$NAME" ]; then
        OLDNAME=$oldrpm;
        break
      fi
    done
    if [ -z "$OLDNAME" ]; then
      echo $NAME is new
      cp -pv $rpm $RPMDIR
    else
      if [ `basename $rpm` != `basename $OLDNAME` ]; then
        mv $OLDNAME $OLDDIR
        cp -pv $rpm $RPMDIR
      fi
    fi
  done

  # Copy new boot image files to the right place...
  for newfile in ${UPDDIR}/images/* ; do
    file=${CDDIR}$/${ARCH}/images/$(basename ${newfile})
    if [ $newfile -nt $file ] ; then
       cp -pv $newfile $file
    fi
  done

  exit 0
  ______________________________________________________________________

  5.3.  ο hdlist  ϱ

  CDκ ġ  CD ִ ġ α׷  RPM Ű
  밡 ϴ RedHat/base/hdlist Ͽ Ѵ. hdlist
   misc/src/install/genhdlist    ִ.  α׷
  ϳ μ  Ʈ 丮 ̸ Ѱָ鼭 ؾ
  Ѵ. ̰  α׷ ȣϴ updateHdlist ũƮ̴.

  ______________________________________________________________________
  #!/bin/bash

  RHVERSION=5.1
  ARCH=i386

  echo generating hdlist...
  CDDIR=/jaz/redhat-${RHVERSION}
  GENHDDIR=${CDDIR}/${ARCH}/misc/src/install

  chmod u+x ${GENHDDIR}/genhdlist
  chmod 644 ${CDDIR}/${ARCH}/RedHat/base/hdlist
  ${GENHDDIR}/genhdlist ${CDDIR}/${ARCH} || echo "*** GENHDLIST FAILED ***"

  exit 0
  ______________________________________________________________________

  NOTE: RedHat/RPMS 丮 Ʈ ݿ Ŀ  
  纻  ̻   Ʈ ̷ ƴϴ. , װ
   ֽ ̴!   ̷Ϸ õѴٸ Ʈ
  RPM   ٽ ٿε  ̸, Ʈ 
  ̴.

  5.3.1.  RedHat 5.2  ߿ note

   5.2   genhdlist  RedHat/RPMS 丮 RPM
   ƴ   浹 Ų. 5.2 ǿ ls-lR  ls-
  lR.gz  RPM  ƴ  ֱ   Ű ȴ. 
  RPM  ƴ    丮κ ؾ Ѵ.  ſ
   ġ misc/src/install/genhdlist.c  ϰ  ص
  ȴ. Ʒ ġ genhdlist  RPM ƴ  ϵ .

  *** genhdlist.c.orig    Fri Nov 27 12:08:13 1998
  --- genhdlist.c Fri Nov 27 12:08:20 1998
  ***************
  *** 12,23 ****
  --- 12,26 ----

    #define FILENAME_TAG 1000000

  + /* Not used apparently...
  +
    int tags[] =  { RPMTAG_NAME, RPMTAG_VERSION, RPMTAG_RELEASE, RPMTAG_SERIAL,
                  RPMTAG_FILENAMES, RPMTAG_FILESIZES, RPMTAG_GROUP,
                  RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION,
                  RPMTAG_DESCRIPTION, RPMTAG_SUMMARY, RPMTAG_PROVIDES,
                  RPMTAG_SIZE, RPMTAG_OBSOLETES };
    int numTags = sizeof(tags) / sizeof(int);
  + */

    int main(int argc, char ** argv) {
        char buf[300];
  ***************
  *** 26,34 ****
  --- 29,39 ----
        struct dirent * ent;
        int fd, rc, isSource;
        Header h;
  +     /* not used
        int count, type;
        int i;
        void * ptr;
  +     */

        if (argc != 2) {
          fprintf(stderr, "usage: genhdlist <dir>\n");
  ***************
  *** 74,79 ****
  --- 79,85 ----

              rc = rpmReadPackageHeader(fd, , , NULL, NULL);

  +           if (!rc) {
              headerRemoveEntry(h, RPMTAG_POSTIN);
              headerRemoveEntry(h, RPMTAG_POSTUN);
              headerRemoveEntry(h, RPMTAG_PREIN);
  ***************
  *** 110,115 ****
  --- 116,122 ----
              headerWrite(outfd, h, HEADER_MAGIC_YES);
              headerFree(h);
              close(fd);
  +           }
          }

          errno = 0;

  6.  : CD 

   ýۿ  ۵ϴ CD-writer ְ  ȴٰ
  ϹǷ CD  Ϳ  ڼ ٷ ʰڴ. ࿡ 
  ýۿ CD ´ٸ XCDroast <http://www.fh-
  muenchen.de/rz/xcdroast>  پ Ű ġϴ  ִ.
  XCDRoast  Rock Ridge extensions  TRANS.TBL  
  ۵ϵ  ´.

  ݵ CD top 丮 ּ Ʒ ϰ 丮
  ϵ ؾ Ѵ.

       COPYING      RPM-PGP-KEY README       RedHat/

  Ʒ 丮 Բ ִ  .

       doc/         gnome/      misc/        dosutils/    images/

  6.1.    CD 

  (  Ͽ Dawn Endico dawn@math.wayne.edu  Ѵ).
  XCDRoast    ũ   Ƿ 
   mkisofs <ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/> 
  cdrecord
  <http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>
    ٸ  ؾ Ѵ.  <ftp://contrib.redhat.com>  
  Ű ֽ  ϸ ȴ. CD  ̹  
  Ѵ.   500Mb  ǹǷ    ִ Ƽ
  ã  Ʒ ɵ鿡 ࿡ ʿϴٸ redhat.img  н
  ٲش. mount  cdrecord  Ϸ Ʈ  ־ 
   ִ.

  6.1.1.  ũ ̹ ϱ

  ̷ 丮 CD Ʈ 丮  丮 ̵Ѵ.
    redhat-5.2/i386  丮 ̵ϸ ȴ.

       mkisofs -v -r -T -J -V "Red Hat 5.2" -b images/boot.img -c misc/boot/boot.cat -o /tmp/redhat.img .

  6.1.2.  ̹ ׽Ʈϱ

   Ĳ ̶   ũ ̹ ؼ 
  ̹ ׽Ʈ  ִ. ࿡  ۹̼ ϴ  ؾų
  rock ridge extension  ʾҴٸ  ̸ 丮 
  Ʋ  ⼭  Ȯϰ  ̴.
       mount -t iso9660 -o ro,loop=/dev/loop0 /tmp/redhat.img /mnt/cdrom

  ࿡ ߴٸ 𸶿Ʈϴ   ƾ Ѵ.

       umount /mnt/cdrom

  6.1.3.  ũ 

   ̽ ° ӵ ߾ Ѵ. Ʒ  4 CD
   ̴.  ̺ 1̳ 2  ִ.

       cdrecord -v speed=4 dev=0,0 /tmp/redhat.img

  7.  CD ġϱ

  ο CD ġ  켱   ġ ũ  Ѵ.
  ݵ ο,  MS-DOS  ũ ؾ Ѵ. ,
  ƹ ߸ ũ ϸ ġ ̻  ų 
  ִ.

   ýۿ Ʒ  ̿ؼ ġ ũ   ִ.

       dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k

  DOS  9x  ϴ ýۿ RAWRITE.EXE α׷
  ؾ Ѵ.  α׷ dosutils 丮 ִ.

  ġ Ϸ 踦 ˴ٿ Ű   CD  
     õǵ Ѵ. ġ  ڼ
   ù CD doc/HOWTO丮 ִ Installation-HOWTO
  Ǵ Bootdisk-HOWTO  ϱ⸦ ٶ.

  8.    Ͽ

     ֱ  <http://imsb.au.dk/~mok/linux/doc/RedHat-
  CD.sgml>   ִ.

  8.1.   

  Ed Schlunder <zilym@asu.edu>    ftp Ʈ "ls -lNR"
    ̷  ũ, ̸, ۹̼, ɺ ũ 
  ´ Ȯ  ִ fix-rhcd ƿƼ .  ߸
  ۹̼ ls ÿ µ ȴ.  fix-rhcd homepage
  <http://www.ajusd.org/~edward/fix-rhcd/>  ϶.

  8.2.  ؾ  

      е鿡 縦 ǥѴ.

  o  Lars Christensen <larsch@cs.auc.dk>

  o  Thomas Duffy <tbd@cs.brown.edu>

  o  Dawn Endico <dawn@math.wayne.edu>

  o  Seva <seva@null.cc.uic.edu>

  9.  DISCLAIMER

     ´ ̶   , ڵ ϵ
  Ʈ  س    κ ߻ϴ
   սǿ ؼ å  ʴ´.

