  TOWNS  Linux  WINDOWS ŃXbvt@CL@
  iuhbj <GAA00714@niftyserve.or.jp>
  1994N1030
  d  z <hriguti@lsidiv.kawasaki-steel.co.jp>
  1994N1030

  TOWNS ŁALinux  Windows Ƃ swap file L@B

  JF F́̕A1994N10ȗAXVĂ܂B݂Ǝ
  قȂꍇ̂ŁAӂB

  1.  ͂߂

  wlr|vhmcnvrƂkinux swap space p@x (Peter
  Anvin <hpa@nmu.edu> ) (d  z <hriguti@lsidiv.kawasaki-
  steel.co.jp> ) B

  LpȏɊӂ܂B

  2.  ݒ@

  Ƃ cnrT ܂ U ōƂsĂBs|nr ł́A
  ܂BcnrR ł͊mFĂ܂񂪁As|nr ߂Ȃ̂ł
  Ԃ񂾂߂ł傤BȂA  kinux version 1.1.12 for elsn
  vmr release 1.2 łB

  @́A

  1.

     rdstoQ ŃXbvt@Cp̋ lr|cnr ܂́Alr
     |cnrTPQ ̋Ƃč쐬AhCuǉ܂B

  2.

     ̃hCu enql`s ܂B̂Ƃ{[x
     "SWAP SPACE" ɂĂB

  3.

     vhmcnvr NāÃhCuɍőeʂŉivXbvt@
     C쐬܂iʂ̃t@CԈďނƂȂ悤
     ɁjB܂ÃhCu̓Xbvt@CȊOɂ͎gpȂŉ
     BXbvt@CȊÕt@C͂kinux ɔj󂳂Ă\
     ܂iԂĂł傤jB

  4.

     kinux NAlogin Ď̃R}hsāAXbvt@C
     ̋NĂB

         ln -s /dev/sd?? /dev/winswap

  sd??  ?? ́̕Afdisk -l ŊmFł܂B

  ܂FXbvt@ĈhCuɌāAdvȃf[^
  ł܂Ȃ悤ɃhCu̖gp̈ςɂɂ͈ȉ̃R}
  hsĂB

         mount -t msdos /dev/winswap /mnt
         dd if=/dev/zero of=/mnt/dummy.fil
         umount /mnt

  5.

     ``}P''̃VFXNvg msinfo ƂOō쐬AsĂ
     B

         # sh msinfo /dev/winswap

   ̂Ƃo͂ "Sector size"  "Total special sectors" ̐
  ĂĂB

  6.

     ȉ̃R}hsĂB

         dd if=/dev/winswap bs=XXX count=YYY | gzip -9 > /etc/winswap.gz

  XXX ̕ɂ́A"Sector size"AYYY ̕ɂ " Total special sectors"
  ̐liljĂB

  7.

     /etc/rc.d/rc.S GfB^ňȉ̂悤ɏCĂB

     o  swapon -a RgAEgB

     o  ̒ɐ}QR[hǉB

     ``}Q''R[h̒ XXXXX ̕ɂ fdisk ŊmFXbvt@
     C{[iswap spacej̃ubNĂB

  8.

     /etc/rc.d/rc.0 GfB^ňȉ̂悤ɏCĂB

     o  umount ̑O``}R''̃R[hǉB

  ŁAkinux vindows ŃXbvt@Cpł悤ɂȂ
  B

  ȂA/dev/winswap  /etc/fstab ɓo^Kv͂܂B܂A
  ƃhCu̓ej󂷂\邽߁AobNAbvƂ
  ȂǂāA\ɒӂčƂĂBAj󂵂Ă܂ꍇA
  ͐ӔC܂̂ŁB

  ̃hLgɑ΂Ă̂ӌ́AGAA00714 iuhbj
                     iGAA00714@niftyserve.or.jpj܂ŁB

  3.  Qlt@C

  3.1.  }PF msinfo  ̃Xg

       #!/bin/sh
       #
       # Extract special sector information from an MS-DOS partition
       #
       PATH=/bin:/usr/bin:/usr/local/bin
       if [ "$#" != "1" ]; then
         echo "Usage: $0 <partition-name>"
         exit 1
       fi
       if [ ! -r $1 ]; then
         echo "$1: Permission denied"
         exit 1
       fi
       DOSVER="`dd 2>/dev/null if=$1 bs=1 count=8 skip=3`"
       SECSIZE=`dd 2>/dev/null if=$1 bs=1 count=2 skip=11 | hexdump -e '1/2 "%u\n"'`
       RESERV=`dd 2>/dev/null if=$1 bs=1 count=2 skip=14 | hexdump -e '1/2 "%u\n"'`
       FATS=`dd 2>/dev/null if=$1 bs=1 count=1 skip=16 | hexdump -e '1/1 "%u\n"'`
       ROOTDIR=`dd 2>/dev/null if=$1 bs=1 count=2 skip=17 | hexdump -e '1/2 "%u\n"'`
       FATSIZE=`dd 2>/dev/null if=$1 bs=1 count=2 skip=22 | hexdump -e '1/2 "%u\n"'`
       LABEL="`dd 2>/dev/null if=$1 bs=1 count=11 skip=43`"
       FILESYS="`dd 2>/dev/null if=$1 bs=1 count=8 skip=54`"
       let FATSEC=$FATSIZE*$FATS
       let ENTPERSEC=$SECSIZE/32
       let ROOTSEC=$ROOTDIR/$ENTPERSEC
       let EXTRA=$ROOTDIR%$ENTPERSEC
       if [ $EXTRA != 0 ]; then let ROOTSEC=$ROOTSEC+1; fi
       let SPECIAL=$RESERV+$FATSEC+$ROOTSEC
       echo "Formatting DOS version:      $DOSVER"
       echo "Filesystem:                  $FILESYS"
       echo "Volume label:                $LABEL"
       echo "Sector size:                 $SECSIZE"
       echo "Reserved sectors:            $RESERV"
       echo "FAT sectors:                 $FATSEC (${FATS}x${FATSIZE})"
       echo "Root directory sectors:      $ROOTSEC"
       echo "Total special sectors:       $SPECIAL"

  3.2.  }QF /etc/rc.d/rc.S  ɒǉ镔

  #
  # Verify and initialize swap space
  #
  echo -n 'Verifying swap space... '
  if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" \
     = 'SWAP-SPACE' ]; then
    echo 'Linux signature found'
    /sbin/swapon /dev/winswap
  elif [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=11 skip=43`" \
     = 'SWAP SPACE ' ]; then
    echo 'DOS signature found'
    /sbin/mkswap /dev/winswap XXXXX
    /sbin/swapon /dev/winswap
  else
    echo 'No signature found'
    echo 'ERROR: Will not swap'
  fi

  3.3.  }RF /etc/rc.d/rc.0  ɒǉ镔

       #
       # Terminate swapping and restore DOS/Windows swap info
       #
       /sbin/swapoff /dev/winswap
       if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" \
          = 'SWAP-SPACE' ]; then
         echo 'Restoring DOS/Windows swap info'
         /bin/zcat /etc/winswap.gz | /bin/dd of=/dev/winswap 2>/dev/null
       else
         echo 'ERROR: /dev/winswap lacks swap signature, skipping restore'
       fi

