How does Microport System V/AT handle bad blocks?

Bob Thrush rd at tarpit.UUCP
Sun Dec 18 08:28:21 AEST 1988


About 3 months ago, the 2nd drive on this System V/AT 2.3.1 system died.
It was replaced, the entire drive was formatted, one partition was
created with /etc/fdisk and 2 file systems were made.  In the past 
month, I have been noticing intermittent "HD I/O Errors ..." often 
followed by serious file system problems on the replacement drive.  
I have searched the printed manuals and man pages and have not 
found any documentation of this error.

Here are a few samples:

HD I/O Error Fun: 30 Cyl: 329 Hd: 5 Sec:  9 Status: 51 Estat: 10 Drstat: A5
HD I/O Error Fun: 20 Cyl: 346 Hd: 3 Sec: 12 Status: 59 Estat: 10 Drstat: B3
HD I/O Error Fun: 30 Cyl: 197 Hd: 4 Sec: 11 Status: 51 Estat: 10 Drstat: A4
HD I/O Error Fun: 30 Cyl: 346 Hd: 2 Sec:  7 Status: 51 Estat: 10 Drstat: B2

Exactly what do these messages mean?  Furthermore, is there a way
to have the messages logged to a file?  If (as I expect) they indicate
disk errors, does System V/AT gracefully switch to alternate areas
in the face of disk write errors?  

How does the bad block mechanism work?  If bad block mapping is not 
done automatically, how do I translate the above into a badblock update?
How many bad blocks are allowed?  If I have multiple System5 partitions,
how do I enter the initial bad block information for the 2nd and
subsequent partitions?

I would appreciate any help regarding this problem.  Especially
in understanding the bad block mechanism and the meaning of the
HD I/O Errors.  If any information is dependent on a particular
release of System V/AT, please be specific.  I will summarize all
email responses.

For those who wish to read on, I have attached relevant info from
/etc/fdisk, /etc/divvy, and /etc/showbad.

**********************************************************
/etc/fdisk 1 yields:

Drive parameters from fixed disk unit 1
Cylinders       Tracks/Cylinder    Landing Zone         Write Precomp
  982              7                    982                -1

Display Partition Information

Partition       Status  Type            Start   End     Size    Blocks
   4            N       unknown         0       0       0       0
   3            N       unknown         0       0       0       0
   2            N       unknown         0       0       0       0
   1            A       System5         1       981     981     116739

**********************************************************
/etc/divvy -d 1 yields:

 CONTENTS OF PARTITION END RECORD FOR UNIT #1

                 Drive Table
                 ----- -----
         Number of cylinders:  982
         Number of heads/cylinder:  7
         Landing zone:  982
         Write precomp:  -1
         Sectors/track:  17
         Sector size:  512
         Number of alternate cylinders:  0
         Actual sectors/cylinder:  119
         DOS disk control byte:  0
         DOS compatible null 0:  0
         DOS compatible null 1:  0
         DOS compatible null 2:  0
         DOS compatible null 3:  0
         DOS compatible null 4:  0
         DOS compatible null 5:  0
         Slice table pointer:  0

                 Slice Table
                 ----- -----
Slice 0 ROOT -- first sector:  119, number of sectors:  40000
Slice 1 SWAP -- first sector:  40119, number of sectors:  0
Slice 2 USR -- first sector:  115838, number of sectors:  0
Slice 3 TMP -- first sector:  40119, number of sectors:  75719
Slice 4 Reserved -- first sector:  26000, number of sectors:  0
Slice 5 DOS partition -- first sector: 0, number of sectors: 0
Slice 6 UNIX partition #1 -- first sector: 119, number of sectors: 116739
Slice 7 UNIX partition #2 -- first sector: 0, number of sectors: 0
Slice 8 UNIX partition #3 -- first sector: 0, number of sectors: 0
Slice 9 UNIX partition #4 -- first sector: 0, number of sectors: 0
Slice 10 Entire disk -- first sector: 0, number of sectors: 116858
Slice 11 Last track active pt -- first sector: 116841, number of sectors: 17

             Minor Device Table
             ----- ------ -----
  Note that the Winchester driver ONLY uses the information
  stored in the minor device table of the partition end
  record of the primary drive (unit 0).

    i1010minor[0] (unit 0, slice 0):  0
    i1010minor[1] (unit 0, slice 1):  1
    i1010minor[2] (unit 0, slice 2):  2
    i1010minor[3] (unit 0, slice 3):  3
    i1010minor[4] (unit 0, slice 4):  4
    i1010minor[5] (unit 0, slice 5):  5
    i1010minor[6] (unit 0, slice 6):  6
    i1010minor[7] (unit 0, slice 7):  7
    i1010minor[8] (unit 0, slice 8):  8
    i1010minor[9] (unit 0, slice 9):  9
    i1010minor[10] (unit 0, slice 10):  10
    i1010minor[11] (unit 0, slice 11):  11
    i1010minor[12] (reserved):  0
    i1010minor[13] (reserved):  0
    i1010minor[14] (reserved):  0
    i1010minor[15] (reserved):  0
    i1010minor[16] (reserved):  0
    i1010minor[17] (reserved):  0
    i1010minor[18] (reserved):  0
    i1010minor[19] (reserved):  0
    i1010minor[20] (unit 1, slice 0):  1040
    i1010minor[21] (unit 1, slice 1):  1041
    i1010minor[22] (unit 1, slice 2):  1042
    i1010minor[23] (unit 1, slice 3):  1043
    i1010minor[24] (unit 1, slice 4):  1044
    i1010minor[25] (unit 1, slice 5):  1045
    i1010minor[26] (unit 1, slice 6):  1046
    i1010minor[27] (unit 1, slice 7):  1047
    i1010minor[28] (unit 1, slice 8):  1048
    i1010minor[29] (unit 1, slice 9):  1049
    i1010minor[30] (unit 1, slice 10):  1050
    i1010minor[31] (unit 1, slice 11):  1051

**********************************************************
/etc/showbad 1 yields (a lot of bad blocks):

                Bad Track Table - Unit 1 
    Bad Cylinder    Bad Head     Alt. Cylinder      Alt. Head

        28              3               974             0
        33              1               974             1
        40              1               974             2
        41              1               974             3
        63              1               974             4
        77              1               974             5
        119             0               974             6
        122             1               975             0
        123             1               975             1
        124             1               975             2
        141             0               975             3
        211             1               975             4
        230             1               975             5
        474             4               975             6
        643             4               976             0
        700             3               976             1
        719             3               976             2
        735             3               976             3
        736             3               976             4
        740             3               976             5
        792             4               976             6
        794             4               978             1
        795             4               977             0
        800             1               977             1
        831             3               977             2
        843             3               977             3
        849             3               977             4
        859             3               977             5
        874             3               977             6
        968             3               978             0
**********************************************************

Thanks, 
-- 
Bob Thrush                 UUCP: {rtmvax,ucf-cs}!tarpit!rd
Automation Intelligence,   1200 W. Colonial Drive, Orlando, Florida 32804



More information about the Comp.unix.microport mailing list