Linuxers,

        Thank you for your time and and any help you can offer.  Does
anybody know how to correct an unreliable scsi disk?  Has anyone had
similar experience?  How was it solved?

        In February, I purchased a 9 G SCSI hard disk and Ultra Wide
SCSI 2 controller.  I upgraded to linux 2.2 and have found the system
too unreliable for its intended purpose, CDROM generation.

        I can duplicate the problem by simply copying a 300K file repeatedly
to fill the partition, and then comparing each copy to the original.  When
a bash script is used, ~3 out of ~7500 comparisons fail.  When perl is
used, ~6 out of ~7500 comparisons fail.

                        ---- discoveries ----
        o If the file copy step is skipped, (the same disk image files
                are compared again, the frequency of comparison failures
                remains the same, but the specific files that fail differs.
                (I believe this implies, that reads during comparison are
                failing.  I believe this implies that writes during copy
                are error-free.)
        o Using fdisk(8), I have tried setting the end of partition 4 at
                1106 cylinders and at 1023 cylinders.  There appears to be
                no effect.  After writing the partition table, I power
                cycled the computer.  After recreating the file system
                with mke2fs(8), I power cycled the computer.
        o badblocks(8) write-mode test found no bad blocks.
        o Though not as easily or thoroughly tested, all other partitions
                appear to be reliable.
                        ---- discoveries ----
                

                        ---- duplication algorithm ----
#! /usr/bin/perl


# Set the following to 0 to use the same disk file images.
if (1) {
#
# Clear memory
#
for ($f = 0; $f < 8; $f++) {
  system("rm buffer/suspect.$f*");
}



#
# Fill the disk
#
for ($a = 0; $a < 8; $a++) {
  for ($b = 0; $b < 10; $b++) {
    for ($c = 0; $c < 10; $c++) {
      for ($d = 0; $d < 10; $d++) {
        system("cp random300K.bin buffer/suspect.$a$b$c$d");
      }
    }
  }
}
}


#
# Verify the copy
#
@bad = ();
for ($a = 0; $a < 6; $a++) {
  for ($b = 0; $b < 10; $b++) {
    for ($c = 0; $c < 10; $c++) {
      for ($d = 0; $d < 10; $d++) {
        if ("$a$b$c$d" < 5813) {
          if (system("cmp -s random300K.bin buffer/suspect.$a$b$c$d")) {
            push @bad, "$a$b$c$d";
            print "Bad block: $a$b$c$d\n";
          }
        }
      }
    }
  }
}



#
# Record the bad blocks
#
$count = scalar(@bad);
system("echo $count >> /mnt/scsi_000p2/tmp/count");



#
# Mark bad blocks
#
foreach $b (@bad) {
  
local($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)
 = stat("buffer/suspect.$b");
  print "Renaming buffer/suspect.$b -> /mnt/scsi_000p4/bad_blocks/$ino\n";
  rename "buffer/suspect.$b","/mnt/scsi_000p4/bad_blocks/$ino";
}
                        ---- duplication algorithm ----

                        ---- partition table ----
Disk /dev/sda: 255 heads, 63 sectors, 1106 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/sda1            1        1      368  2955928+   6  DOS 16-bit >=32M
/dev/sda2   *      369      369      736  2955960   83  Linux native
/dev/sda3          737      737      744    64260   82  Linux swap
/dev/sda4          745      745     1023  2241067+  83  Linux native
                        ---- partition table ----

                        ---- platform ----
Platform:       Dell Dimension XPS 133c
CPU:            Pentium 133MHz, 256K cache
OS:             linux-2.2.1
scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.1.10/3.2.4
       <Adaptec AHA-294X Ultra2 SCSI host adapter>
scsi1 : SCSI host adapter emulation for IDE ATAPI devices
scsi : 2 hosts.
  Vendor: SEAGATE   Model: ST39173LW         Rev: 6246
  Type:   Direct-Access                      ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
  Vendor: HP        Model: CD-Writer+ 8100   Rev: 1.0g
  Type:   CD-ROM                             ANSI SCSI revision: 02
                        ---- platform ----

-- 
                                        Dr. Robert J. Meier
                                        1-248-650-9488
                                        [EMAIL PROTECTED]

Reply via email to