From: CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 13-APR-1991 07:32:32.71 To: ARISIA::EVERHART CC: Subj: Corrupt System Disk From: RELAY-INFO-VAX@CRVAX.SRI.COM@SMTP@CRDGW2 To: Everhart@Arisia@MRGATE Received: by crdgw1.ge.com (5.57/GE 1.97) id AA13103; Sat, 13 Apr 91 06:06:34 EDT Received: From SOL1.GPS.CALTECH.EDU by CRVAX.SRI.COM with TCP; Sat, 13 APR 91 02:50:30 PST Received: by SOL1.GPS.CALTECH.EDU (MX V2.2) id 14519; Sat, 13 Apr 1991 01:48:48 PDT Date: Sat, 13 Apr 1991 01:48:48 PDT From: Carl J Lydick To: david@memex.co.uk Cc: info-vax@SRI.COM Message-Id: <009470ba.2288dd80.14519@SOL1.GPS.CALTECH.EDU> Subject: Corrupt System Disk > I have a MicroVAX II running VMS 5.3-1, with two RD53s and I've got problems! > I believe that the system disk is corrupt: > $ show error > currently returns the message: > Device Error Count > Dua0: 28 > although the error count has been as high as 120 ! > On occasions I have had problems rebooting after a shutdown, (normally > errors which indicate that a file can't be read) resulting in having to > restore the system disk. > Now various executables won't work (e.g. AUTHORIZE, NCP, anything with > SMG routines) > I have tried: > $ analyze/disk dua0:/read > which for a number of files returns messages of the format: > %VERIFY-W-READFILE file (413,2,1) error reading VBN 2698 > -SYSTEM-F-FORCEDERROR, forced error flagged in last sector read You can get the filenames from the file id's by using the LIB$FID_TO_NAME RTL function. An example of how to use it from a C program follows. #include descrip #include fiddef #define $DESCRIPTOR_D(name) struct dsc$descriptor_s name = \ { 0, DSC$K_DTYPE_T, DSC$K_CLASS_D, 0 } test() { $DESCRIPTOR(devnam, "DIA0"); $DESCRIPTOR_D(file); struct fiddef fid; fid.fid$w_num = 6240; fid.fid$w_seq = 9; fid.fid$w_rvn = 0; LIB$FID_TO_NAME(&devnam ,&fid ,&file); LIB$PUT_OUTPUT(&file); } > To locate the bad blocks I have tried: > $ analyze/media dua0: > which informs me that: > %BAD-F-DEVRCT, unable to analyze DUA0:, due to revector caching > What does that mean? Can I get around it? It means that DUA0 is an MSCP device, and as such presents an apparently perfect medium to VMS. This means that ANALYZE/MEDIA knows that it will never see what looks like a bad block, so it won't even try. The disk is just too smart for its own good (or at least for your own good). You'd have to run some sort of disk diagnostic code to ask the disk about its bad blocks. If you've got a diagnostic tape, now would be a good time to learn how to use it. > Why should this suddenly happen to the system disk after years of no > problems? What could cause this? Disks have finite lifetimes. The format information on a disk has a finite lifetime. S**t happens. Among the possible causes of your problem: 1) You had a power failure at just the wrong time and the disk drive managed to write corrupt data while it was losing power (unlikely); 2) You've had data migration on the disk to the point where some of the sectors are no longer usable (possible); 3) Your disk is old enough that the hardware is starting to fail (likely). > Is there any way of initialising/reformatting the system disk from the > boot prompt (>>>) ? If you have the right tape, yes. To initialize the disk, just use STANDALONE BACKUP. To reformat the disk, boot from the diagnostic tape and run the disk formatting diagnostic.