Amiga.org
Amiga computer related discussion => Amiga Software Issues and Discussion => Topic started by: motorollin on March 15, 2009, 12:33:19 PM
-
I've got an A1200 with 3.1 with a Blizzard 1230 and a 4GB compact flash card. It has a small FFS Workbench partition and a FFS Work partition which doesn't cross the 4GB barrier. I was using it just now and I got a checksum error on the Work partition when I tried to save a file in Ed. It didn't seem to be validating as there was no disk activity. I rebooted, and got the kickstart screen. Went in to early startup and there were no partitions showing. I booted from a Workbench floppy and the ran HDToolBox. The drive was visible, but the only option available was to change the drive type.
Why would this happen if the partitions don't cross the 4GB barrier? What can I do to get the partitions back?
--
moto
-
Why would this happen if the partitions don't cross the 4GB barrier?
How can you be so sure that it didn't cross the border ? Did you run Check4GB ?
The limit we are talking about is 4,294,967,296 Bytes. It's difficult to tell if you cross it if all programs only show rounded kb, mb or gb. And it's even more difficult because some programs calculate with 1000 bytes per kb and other programs with 1024 bytes per kb.
Although a CF card labelled as 4GB usually has 4,000,000,000 bytes or less.
What can I do to get the partitions back?
This one could probably help you: http://aminet.net/package/disk/salv/RDBrecov
Bye,
Thomas
-
Thomas wrote:
How can you be so sure that it didn't cross the border ? Did you run Check4GB ?
No, but I left some space unused at the end of the drive so I didn't quite use the whole 4GB. That should avoid problems shouldn't it?
Thomas wrote:
What can I do to get the partitions back?
This one could probably help you: http://aminet.net/package/disk/salv/RDBrecov
Ahh, brilliant. I had a look at RDBSalv but apparently it's useless without a (no longer available) keyfile. I'm just backing up a Workbench floppy so I can install the PCMCIA CF drivers on it from my EasyADF floppy, then I should be able to get RDBrecov copied over and give it a try.
--
moto
-
Ok, I followed the instructions in the RDBRecov guide and used HDToolBox to get the cylinders (3019) and blocks per cylinder (8064) values. The manual also asks for bytes per block, but this information was not shown in HDToolBox so I guessed 512. I ran RDBRecov like this:
> rdbrecov scsi.device 0 s 512 c 3019 cs 8064
and this is the result:
Trying to open scsi.device unit 0
Sectorsize = 0 (overridden by parameter: 512)
Cylinders = -1 (overridden by parameter: 3019)
CylSectors = 0 (overridden by parameter 8064)
Allocated partition table for 100 entries.
device does not support NSD or TD64 for harddisks >4GB
and that it. Anything else I can do? :-?
--
moto
-
Ok, have just run RDB-Salv and it got 31% of the way along and started reporting "Error: read error 3 while reading block 7831100 to 7831199", many times with different block numbers each time. I noticed in the background that it had found my Workbench and Work partitions so I cancelled the scan.
The Workbench partition was reported as 511MB and the Work partition as 2048MB. Can I safely create partitions on the drive of those sizes? If those values are wrong, will anything be lost? Can I just try again?
--
moto
-
The Workbench partition was reported as 511MB and the Work partition as 2048MB. Can I safely create partitions on the drive of those sizes? If those values are wrong, will anything be lost? Can I just try again?
Should be safe. The worst case is that FFS finds something it understands on the wrong partitions and tries to validate it. Only then it could change something. But I think nothing that DiskSalv couldn't repair.
However, if you have the possibility to connect the CF card to a PC your could use WinUAE to create an image of it so that you have a backup for the case that all goes wrong.
Note that megabyte sizes are not enough information to recreate the partitions. Only if RDBSalv told you the number of blocks per cylinder, the first and the last cylinder, you can enter these information into HDToolbox and get back your partitions. If you don't have these information, you've got a problem.
I followed the instructions in the RDBRecov guide and used HDToolBox to get the cylinders (3019) and blocks per cylinder (8064) values.
How big is the CF card ? These value result in 12 GB.
device does not support NSD or TD64 for harddisks >4GB
and that it. Anything else I can do?
Please try C 1040 and CS 8064. This will stay below 4GB.
If nothing else helps please follow these steps:
1. run rdbrecov like this:
rdbrecov scsi.device 0 s 512 c 8388608 cs 1
2. when it says for the first time "possible ffs partition found in cylinder nn", press Ctrl-C. Divide nn by 2 and use the result as the new CS value. Divide 8388608 by the new CS value and use the result as new C value.
If this fails to find your partitions, too, use the call from 1. and let it run 'till the end.
In any case, please post the output from each run here.
-
Thomas wrote:
Note that megabyte sizes are not enough information to recreate the partitions. Only if RDBSalv told you the number of blocks per cylinder, the first and the last cylinder, you can enter these information into HDToolbox and get back your partitions. If you don't have these information, you've got a problem.
RDBSalv doesn't give this info as it is not registered :-( If anyone has a registered copy and would like to help me, please go ahead...!
Thomas wrote:
I followed the instructions in the RDBRecov guide and used HDToolBox to get the cylinders (3019) and blocks per cylinder (8064) values.
How big is the CF card ? These value result in 12 GB.
It's 4GB. Perhaps the geometry info is corrupt :-?
Thomas wrote:
Please try C 1040 and CS 8064. This will stay below 4GB.
This resulted in:
Allocated partition table for 100 entries.
Reading cylinder 972
TD_READ (1) Error = 3
Thomas wrote:
1. run rdbrecov like this:
rdbrecov scsi.device 0 s 512 c 8388608 cs 1
This resulted in the same output I first posted from RDBRecov.
Thomas wrote:
If this fails to find your partitions, too, use the call from 1. and let it run 'till the end.
Could you explain what you mean? I don't understand.
--
moto
-
motorollin wrote:
This resulted in:
Allocated partition table for 100 entries.
Reading cylinder 972
TD_READ (1) Error = 3
972 cylinders with 8064 blocks of 512 byts each, this is 3.7 GB.
Thomas wrote:
1. run rdbrecov like this:
rdbrecov scsi.device 0 s 512 c 8388608 cs 1
This resulted in the same output I first posted from RDBRecov.[/quote]
You found a bug :-)
Sorry, please try
rdbrecov scsi.device 0 s 512 c 8388607 cs 1
Obviously if the last cylinder fills the 4 GB exactly, it refuses to use the less-than-4GB commands which it actually should use.
Thomas wrote:
If this fails to find your partitions, too, use the call from 1. and let it run 'till the end.
Could you explain what you mean? I don't understand.
RDBRecov tries to optimise its speed by only reading the first few block of each cylinder. But as cylinders are only a logical thing, it cannot determine how many blocks a cylinder has. Therefore the CS parameter. To recreate the partitions, the number of blocks per logical cylinder must be exactly the same as when the partitions were first created. Unfortunately it is no easy to find this out. Different versions of HDToolbox use different values. Not to mention HDInsttools or other programs.
By using CylSize = 1 you tell it to read every single block of the disk. This could need *very* long. But it will probably find all partitions.
Bye,
Thomas
-
Thanks Thomas. I will try your suggestions out of curiosity. But first, somebody on EAB helped me out with a full copy of RDBSalv. This successfully found and mounted my partitions, so I can back up my data before experimenting with RDBRecov.
--
moto
-
Well this is really weird. I powered the Amiga on just now to attempt a backup, and it booted. Both partitions are visible and accessible. Is it possible that scanning the disk with RDBSalv or mounting the partitions somehow righted the problem? I definitely didn't write anything back to the disk after scanning for partitions.
--
moto
-
Perhaps the flash memory failed because it was getting hot and now that it's cooled down it works again ?
I'd definitely make a backup ASAP.
Bye,
Thomas
-
Hmmm, maybe. I'm backing up now. Will have to to it in 'shifts' though, as I can't get anything other than a 128MB card to work in my PCMCIA adapter. I even plugged it via USB in to a Linux machine and created a MBR and a FAT16 partition, but it still won't see it on the Amiga :-(
--
moto
-
Probably the usual removable vs. fixed disk problem. Only cards which are marked as fixed disk work with the Amiga.
Bye,
Thomas
-
Just checked in diskpart and my Lexar Platinum II 80x 2GB card is indeed set to removeable. Do I need a tool specific to this card to change it, or is there a generic tool I can use?
--
moto
-
This has been discussed very often recently. See one of the other threads: http://www.amiga.org/search.php?query=card+removable&mid=6&action=showall&andor=AND
Bye,
Thomas
-
I had looked at those posts, but they only mention Sandisk cards. I was wondering whether there is a more generic tool which could work on any brand of card.
--
moto