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