CompuServe Thread

#Hard Drive Problems

6 messages in this thread
#112944From: Bruce PowellJul 15, 1990 12:55 AM
Don, If anyone tells you that they hae a complete handle on the Amiga file system, listem closely. Either the man is VERY good or he is VERY wrong. I hae programed on the Amiga for several years and I am still leary of messing with my drives. I am not very happy about having to reformat my DH0:, but if that is what it takes. Lucky thing I have a backup that is only a few days old! Thanks for the help!!! I have leaqrned alot. <<<BP>>>
#112977From: Don Curtis/SYSOPJul 15, 1990 3:34 AM
Bruce, I know enought about the file system to repair some errors, such as the "key xxx already in use" or how to make an invalidated filesystem valid no matter what's wrong with it. I've moved pointers around, etc. But I do agree with you…it's not an easy task, and I'm certainly no "guru" (why did we start to use guru rather than "maven"?) on the Amiga filesystem. Don
#112984From: Roger HandJul 15, 1990 6:03 AM
In any case you're more of a maven than I am! I've been fiddling around with DiskX lately to get rid of file/disk corruption that results when you reboot in the middle of disk writing, and I was fairly successful. But most of what I learned came from brute force/trial and error, and there's GOT to be a better way! Can you recommend a book or magazine article or text file on CIS that explains the ins and outs of the FFS? Also, could you explain how to find out at which key the file header block list is continued? Thanks in advance for your help, – Roger
#113131From: Don Curtis/SYSOPJul 15, 1990 10:15 PM
Roger, The book I used was the AmigaDOS manual, published by Bantam books, written by Commodore. There is no file header block list per-se. What there is, is the root block since all filenames start at the root block of a filesystem. The root block contains a list of header blocks for files/directories attached directly to the root block of the filesystem. The file or directory name is run thru a hashing algorithm and the result is an offset within the root block. Located at that offset is the key number of the block that contains a header block. That header block can be either a file header, or a directory header. If it's a file header, it contains pointers to what blocks the file itself is using. If it's a directory header, it then acts like the root block. It contains pointers (the key numbers) to files and/or directories attached directly to that directory. Again a file or directory name would be hashed, and offset generated and a jump to the keynumber at that offset would be another header block…again, it could be either a file or directory block. Let's take the filename: df0:junk/downloads/files/george The filesystem first "moves" to df0: and grabs the root block. It then hashes the name "junk" and jumps to the header found at the hash generated offset in the root block. It then hashes the name "downloads" and jumps to the header found at the hash generated offset in the "junk" directory block. The name "files" is now hashed, the offset located within the "downloads" directory block and another jump is made. Finally, "george" is hashed, the offset in the "files" directory is used to locate the header block of the file "george". The system then reads the pointers to the blocks containing "george" from that header, and starts to read them in. The above is a simplification of what goes on. There are extension blocks for long files, extension blocks for hash offset collisions and so forth. But it should give you a bit of a clue as to what's going on. Don
#112996From: Mike SchillerJul 15, 1990 10:32 AM
Don: "We" probably started using Guru, because it's the commonly accepted term for it. The Amiga's use of the word Guru is the one that's no in keeping with the rest of computerdom. Personally, I'd prefer maven as well. -Mike Schiller In sunny Fort Lauderdale
#113906From: Nelson IngersollJul 20, 1990 11:11 PM
If I recall correctly, guru is Hindi for 'one who illuminates the path'. Leave it to Western culture to twist that into meaning 'one who knows all'. – Nelson … (Byte all you want, we'll make more.)