Page 1 of 1

ADFS 'Dir Full' error when it's not full problem

Posted: Tue Jan 14, 2020 9:03 pm
by rharper
I have a CF card IDE hard disc on a BBC Master with files I want to copy to another Master and a BeebSCSI on a Model B. So I copied the files across my Econet to the server with TreeCopy.
I have copied most of them back to the other Master but now that will not make any more directories in the root, $, Directory giving a 'Dir Full' error but will make further subdirectories in subdirectories.
The root directory has 19 files+directories.
ADFS Explorer gives the same error.
History: I bought the original Master 12-15 years ago. The CF card has a Harddisc directory with an HDinit. The CFcard will not work with ADFS 1.53 in the second Master which has (a different?) ADFS 1.53 or with ADFS Explorer (not recognised at all) and the CF card from the second master (or an Electron) will not work with the original ADFS 1.53.
The original CF card has a 'Work' directory with various ROMs under development so an owner with that skill.
It has 250Mb of files in several main top level directories with many subdirectories nested to many, often 6 levels, almost full of directories. Possibly over 1000 directories and many 10,000's files if not 100,000's.
I wonder if the space for cataloguing the files/directories in the second Master is somehow full and the owner of the original Master modified ADFS 1.53 to accommodate more than normally allowed by ADFS hence generating the CF card incompatibility.
I have moved one small top level directory into a subdirectory. That allows just one new top level directory to be created before 'Dir Full'.
However, what I need is a way to 'fix' a $ directory with 19 entries so that it can have more and it would be nice to know why this has happened.
Any help appreciated.
Ray

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Tue Jan 14, 2020 10:31 pm
by flaxcottage
ADFS only allows 47 (77 on the Archimedes RISCOS 3.x I believe) entries in a directory, including the root directory. An entry can be a file or a directory.

NETFS allows 255 entries in a directory and so copying from Econet to ADFS can result in a directory full message on the ADFS disk.

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Tue Jan 14, 2020 10:36 pm
by BeebMaster
Without seeing any printouts or FS map information, I can only think of three ideas:

1. The copy program is getting confused during the copy and might not be trying to create the latest entry in the correct destination directory, and where it is trying to create might be full. Treecopy doesn't always work 100% reliably with the Level 3 file server, so try Acorn's Logcopy or SJ's Multicopy instead.

2. The directory object has become corrupt and it is only displaying 19 entries where in fact ADFS thinks there are 47 entries in it. I think there's an ADFS file structure checker somewhere about (I was looking for it the other day but didn't fnd it) which might help with this.

3. 19 is the default number of entries in a directory created in the L3 Econet file server. It should extend to 255 or 254, but possibly if the file server disc structure is very complex it might not be able to extend. If this has happened and the copier has got confused and is in Net instead of ADFS it's possible this could happen.

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Tue Jan 14, 2020 10:45 pm
by jgharston
It does look like the root directory has got an error in it that looks like there are 47 entries, but only 19 of them are "real" entries.

Depending on your skill and confidence, what I would do ir rename everything in the root directory into a single directory, then use a disk editor to zero everything in the root directory sectors other than that one subdirectory and the parent link and the two "Hugo" markers.

If you have a disk editor and post screenshots of sectors 2,3,4,5,6 we can probably diagnose your problem.

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Tue Jan 14, 2020 10:45 pm
by geraldholdsworth
The end of the directory entries is marked with a 00 as the first byte (of the tail). So maybe this has been written accidentally - it's all I can think of.

If you like, I can take a look at the structure and see what is going on - if you send me the ADF. Or you could run it through Disc Image (written by me)...see what that makes of it (there is an Windows executable inside the ZIP archive which is the application). The version online has a bug in it, but should still display the contents OK.

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Tue Jan 14, 2020 10:57 pm
by rharper
The file-server is a Level4FS on an A4000.
JGH:
In the morning I will see if I can find a disk editor and show the sector information.
Gerald:
I have downloaded discimage and may investigate that tomorrow.
Thanks,
Ray

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Tue Jan 14, 2020 11:08 pm
by BeebMaster
If you already have a disc image of the original CF card then it should be possible to rename it scsi0.dat and put it in a directory called BeebSCSI0 on a micro SD card and it will work with the BeebSCSI board, see what that makes of it.

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Wed Jan 15, 2020 12:32 pm
by rharper
I tried Restoring the CF card backup under ADFS Explorer to a new CF card but it still gave 'Dir Full' error.
Here is the ADFS Editor screen.
I guess that first 47 could be the problem.
Ray

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Wed Jan 15, 2020 1:10 pm
by rharper
Here are the other sectors.
Reading more instructions these are the 'bottom halves', if the top halves are needed let me know.
Where there was only zero's I have only attached a small image.
Ray

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Wed Jan 15, 2020 1:22 pm
by flaxcottage
Can you show a screen shot of the $ directory listing? This will show whether you have used up your object allowance for the directory.

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Wed Jan 15, 2020 2:52 pm
by rharper
Panic over I think.
I opened 2 instances of ADFS Explorer. Opened the backup image in one and created a new 512Mb image in the other then individually copied the 19 files & directories across to the new image, drag & drop, and checked I could create a new top level directory in the new image.
Closed the Explorers then opened one again with the CF card attached and Restored the new image.
This appears to work OK in the Master. Created a new directory to check.
It was interesting to find the ADFS-edit amongst the utilities on the disc but I think the learning curve to use it is not worth the effort now I have a solution and hopefully will never need to use the editor in the future.
Thanks for all of the suggestions.
Ray :D

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Wed Jan 15, 2020 2:55 pm
by rharper
BeebMaster wrote:
Tue Jan 14, 2020 11:08 pm
If you already have a disc image of the original CF card then it should be possible to rename it scsi0.dat and put it in a directory called BeebSCSI0 on a micro SD card and it will work with the BeebSCSI board, see what that makes of it.
Thanks for that suggestion. I will try it with an image of the CF card on the Master when I have copied the final directory from the server. It would be great if it works since the Econet copying takes days even with a second processor.
Ray

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Wed Jan 15, 2020 4:20 pm
by geraldholdsworth
Glad you got it sorted.

I have written (well, part written, part collated) a guide on disc formats. Mostly as an aide memoir for myself, but also so that all the information is in one place and makes some sort of sense (well, more sense than the PRMs).

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Wed Jan 15, 2020 7:59 pm
by flaxcottage
Good one. =D>

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Fri Jan 17, 2020 2:21 pm
by rharper
rharper wrote:
Wed Jan 15, 2020 2:55 pm
BeebMaster wrote:
Tue Jan 14, 2020 11:08 pm
If you already have a disc image of the original CF card then it should be possible to rename it scsi0.dat and put it in a directory called BeebSCSI0 on a micro SD card and it will work with the BeebSCSI board, see what that makes of it.
Thanks for that suggestion. I will try it with an image of the CF card on the Master when I have copied the final directory from the server. It would be great if it works since the Econet copying takes days even with a second processor.
Ray
Excellent suggestion. The Full Backup image of the CF card under ADFS Explorer worked straight off after copying to the SD card and renaming it to scsi0.dat.
Saved me at least 2 days of copying over the Econet.
ADFS Explorer will open the .dat files from the BeebSCSI so dragging files/directories across from ADFS disc images is an easy way to add files to a BeebSCSI system.
Thanks,
Ray :D

Re: ADFS 'Dir Full' error when it's not full problem

Posted: Sun Jan 19, 2020 12:33 pm
by BeebMaster
It can be a bit painful copying masses of files over Econet, especially using the L3 server as it has to allocate space sector by sector as it goes along. I don't think there's a way (like using ADFS Explorer for example) of "dropping" files onto a L3 partition on a disc image. JGH's AFSFiler will allow you to copy off all the files to somewhere else, but putting them back is more of a challenge!

You might get a bit of a performance boost by adjusting the Econet clock speed, or if using L3 server and BeebSCSI, format the card to exFAT and use the fastest 6502 PiTubeDirect setting, it does make a difference.

Last night I finally made the effort to finish off the clean-up of my L3 file server disc images which suffered from the great compact flash blanking episode of 2013, and many subsequent disc corruptions. I got all the files copied off in about July 2018, using AFSFiler, including 135,000+ Teletext pages and I've since (very intermittently) been rebuilding it on my PC into a more workable directory structure. (Previously at the time of the Teletext capture the directories could get up to 10 or more levels deep, as my "grabber" just made a sub-directory in the current magazine directory every time it was getting full). It's done now so I think I can start copying the files back to a new L3 setup on BeebSCSI.