English Amiga Board


Go Back   English Amiga Board > Support > support.Other

 
 
Thread Tools
Old 10 November 2013, 22:45   #61
thomas
Registered User
 
thomas's Avatar
 
Join Date: Jan 2002
Location: Germany
Posts: 6,987
I wonder how HDToolbox can determine the harddisk's size if the driver supports neither GET GEOMETRY nor READ CAPACITY.

Please run the program from this post: http://eab.abime.net/showpost.php?p=703586&postcount=5
It outputs more details about the SCSI error. Perhaps I made a mistake in the Direct SCSI code.
thomas is offline  
Old 10 November 2013, 23:01   #62
Sim085
Registered User
 
Join Date: Apr 2009
Location: N/A
Posts: 962
Quote:
Originally Posted by thomas View Post
I wonder how HDToolbox can determine the harddisk's size if the driver supports neither GET GEOMETRY nor READ CAPACITY.
Hi thomas, great news. I guess most of my trouble with RDBrecov was related to the hardware (IVS GrandSlam > SCSI to IDE > IDE to CF) rather then the CF card itself. On Friday I got the IDE cable and 3.1 ROM chips for the A1200. After the last test I decided to try RDBrecov from the A1200 with the following command:

> RDBrecov scsi.device 0

This seems to have worked. I have attached the result. Is this the result I am looking for? or these results still do not make sense?
Attached Thumbnails
Click image for larger version

Name:	2013-11-10 22.52.58.jpg
Views:	197
Size:	487.4 KB
ID:	37760  
Sim085 is offline  
Old 11 November 2013, 11:12   #63
thomas
Registered User
 
thomas's Avatar
 
Join Date: Jan 2002
Location: Germany
Posts: 6,987
The problem is that it didn't find any valid partition. Those "possible" partitions are just blocks with 444f5301 in the beginning. But after verifying that a valid root block is in the middle of the partition, they all failed the check.

This is how a successful run would look like:

Code:
3> rdbrecov scsi.device 0 cs 256
Trying to open scsi.device unit 0
SectorSize   = 512
CylSectors   = 8        (overridden by parameter: 256)
Cylinders    = 7999
Allocated partition table for 100 entries.
Possible FFS Bootblock found at cylinder     2: DosType=444F5303
Possible FFS Bootblock found at cylinder   808: DosType=444F5303
Possible FFS Bootblock found at cylinder  2410: DosType=444F5305
Reading cylinder  7999
Checking FFS partitions
FFS Bootblock found at cylinder     2: Size =  806 cyls DosType=444f5303 Name="Workbench"  BlockSize=512 
FFS Bootblock found at cylinder   808: Size = 1602 cyls DosType=444f5303 Name="Work"       BlockSize=1024
FFS Bootblock found at cylinder  2410: Size = 5589 cyls DosType=444f5305 Name="Spare"      BlockSize=2048
Complete.
3>
You see start cylinder, size, identifier, name and block size. These are the values you need to recreate your partitions.

Now every further attempt with RDBrecov will be very time consuming. That's because RDBrecov is not designed for FFS. It works best with file systems which save partition size in the beginning of the partition.

The next step is to use the DEEPFFS switch:

rdbrecov scsi.device 0 DEEPFFS

This will make it check every cylinder between the "possible" FFS partitions for a valid root block. Like already mentioned this will take a lot of time.

I am a bit concerned about the different sizes reported. On the SCSI controller HDToolbox reported 992 cylinders of 4034 sectors each, resulting in 4001728 sectors on the entire drive.

Now on the A1200 it says 250110 cylinders with 16 sectors each. This results in 4001760 sectors, 32 more than before.
thomas is offline  
Old 11 November 2013, 18:56   #64
thomas
Registered User
 
thomas's Avatar
 
Join Date: Jan 2002
Location: Germany
Posts: 6,987
I quickly put together another program which tries to find FFS partitions only. Should be faster than RDBRecov in DEEPFFS mode, but the information given is less useful.

It outputs something like this:
Code:
4> findffspart scsi.device 0
Trying to open scsi.device unit 0
SectorSize   = 512
TotalSectors = 2047752
possible partition start at sector 512; dos type = 0x444F5303
FFS root block in sector 103680; name = "Workbench"; block size = 512
possible partition start at sector 206848; dos type = 0x444F5303
FFS root block in sector 411904; name = "Work"; block size = 1024
possible partition start at sector 616960; dos type = 0x444F5305
FFS root block in sector 1332352; name = "Spare"; block size = 2048
2048000 / 2047752
4>
Attached Files
File Type: lha findffspart.lha (4.2 KB, 115 views)
thomas is offline  
Old 11 November 2013, 21:28   #65
Sim085
Registered User
 
Join Date: Apr 2009
Location: N/A
Posts: 962
Hi thomas, thanks again for all the help. I ran the RDBRecov with DEEPFFS. I attached the results. Should I try to create a partition with lowCyl 63 and highCyl 125055 (63 + 124992)?

Quote:
Originally Posted by thomas View Post
I quickly put together another program which tries to find FFS partitions only. Should be faster than RDBRecov in DEEPFFS mode, but the information given is less useful.
I'll try that other program too.
Attached Thumbnails
Click image for larger version

Name:	2013-11-11 20.45.14.jpg
Views:	190
Size:	490.1 KB
ID:	37781  
Sim085 is offline  
Old 11 November 2013, 22:26   #66
thomas
Registered User
 
thomas's Avatar
 
Join Date: Jan 2002
Location: Germany
Posts: 6,987
It's obvious that you often repartitioned this harddrive in the past and there are a lot of zombie root blocks left from previous times. All found partitions begin at cylinder 63, so only one of them can be the right one. You have to choose.

I'm a bit wondering about your question. Your initial post says that you created one partition called "System" and another one called "Documents". Now we see three candidates called "System" and one called "DH0{976MB}" and you ask whether you shall create of all choices the one which is not called "System". I don't know what I should reply to this. You have to decide which of the four candidates looks most promising, i.e. which of them you created last.

The "Documents" partition seems to have disappeared completely. Perhaps the new program can find it.
thomas is offline  
Old 12 November 2013, 10:37   #67
Sim085
Registered User
 
Join Date: Apr 2009
Location: N/A
Posts: 962
Quote:
Originally Posted by thomas View Post
I'm a bit wondering about your question. Your initial post says that you created one partition called "System" and another one called "Documents". Now we see three candidates called "System" and one called "DH0{976MB}" and you ask whether you shall create of all choices the one which is not called "System". I don't know what I should reply to this. You have to decide which of the four candidates looks most promising, i.e. which of them you created last.
I tried them all from WinUAE on the image file I had created from the CF card. They all give me the same error; "Not a DOS disk in device HDA". Here is the mount file I used:

Code:
Unit			= 3
Device		= uaehf.device
FileSystem		= L:FastFileSystem
Flags			= 0
Surfaces		= 1
SectorsPerTrack	= 16
SectorSize		= 512
Mask			= 0x7ffffffe
MaxTransfer	= 0x20000
Reserved		= 2
Interleave		= 0
LowCyl		= 63
HighCyl		= 125055
Buffers		= 30
BufMemType	= 0
StackSize		= 1000
Priority		= 10
GlobVec		= -1
DosType		= 0x444F5301
Mount		= 1
I got the HighCyl by adding 124992 (partition size displayed on screen) together with 63 (where bootblock was found). I did this for all four entries and all gave me the same error.
Sim085 is offline  
Old 12 November 2013, 11:30   #68
thomas
Registered User
 
thomas's Avatar
 
Join Date: Jan 2002
Location: Germany
Posts: 6,987
Quote:
Originally Posted by Sim085 View Post
I tried them all from WinUAE on the image file I had created from the CF card.
Did you run RDBrecov in WinUAE, too? As you might remember from the first page of this thread, WinUAE sees a different size of the card than the real Amiga, therefore the image made by WinUAE does not match the real card.

So if you want to mount the partitions on the image file, you have to run RDBrecov on the image file, too. Otherwise the values won't match.


Quote:
I got the HighCyl by adding 124992 (partition size displayed on screen) together with 63 (where bootblock was found). I did this for all four entries and all gave me the same error.
That's one too high. The HighCyl value should point to the last cylinder of the partition, not to the first cylinder of the next partition.

Example: if you want to use 10 cylinders beginning at cylinder 1, you use LowCyl=1, HighCyl=10. But if you add 10 to 1 you get 11, one too much.
thomas is offline  
Old 13 November 2013, 10:01   #69
mark_k
Registered User
 
Join Date: Aug 2004
Location:
Posts: 3,336
Quote:
Originally Posted by thomas View Post
I wonder how HDToolbox can determine the harddisk's size if the driver supports neither GET GEOMETRY nor READ CAPACITY.
READ CAPACITY is a SCSI command, not a device driver command. So (I assume) HDToolBox uses HD_SCSICMD to issue a READ CAPACITY command to the drive.
mark_k is online now  
Old 13 November 2013, 11:46   #70
thomas
Registered User
 
thomas's Avatar
 
Join Date: Jan 2002
Location: Germany
Posts: 6,987
Sure it does. There is no other way to issue Read Capacity. But if HD_SCSICMD returns 45, then Read Capacity didn't work, did it?
thomas is offline  
Old 14 November 2013, 20:31   #71
Sim085
Registered User
 
Join Date: Apr 2009
Location: N/A
Posts: 962
Quote:
Originally Posted by thomas View Post
Did you run RDBrecov in WinUAE, too? As you might remember from the first page of this thread, WinUAE sees a different size of the card than the real Amiga, therefore the image made by WinUAE does not match the real card.
GREAT NEWS! Managed to get my files back

I tried the latest version of RDBrecov in WinUAE and this worked like a charm (see first attachment). Note that this says CylSectors 4033. I then went to HDToolBox. Selected "Change Drive Type", then "Define New" and finally "Read Configuration". Here I noticed that "Blocks per Track" and "Blocks per Cylinder" is 4034!! (see second screenshot). I do not know why HDToolBox put 1 extra here. I changed this to 4033. I then went to Partition Drive. Enter the values returned by RDBrecov and I got my files back!

So in short the problem seems to have been that HDToolBox was recognized "Blocks per Track" and "Blocks per Cylinder" is 4034 rather than 4033 as RDBrecov. Luckily RDBrecov returned the correct value.

A big thank you to you thomas and mark_k for all the help!! I really would have given up if it was not for all your help!

Really big thanks
Attached Thumbnails
Click image for larger version

Name:	RDBrecov WinUAE.png
Views:	200
Size:	28.0 KB
ID:	37826   Click image for larger version

Name:	HDToolBox.png
Views:	172
Size:	9.9 KB
ID:	37827  
Sim085 is offline  
Old 22 January 2023, 21:08   #72
jdryyz
Registered User
 
jdryyz's Avatar
 
Join Date: Jul 2014
Location: USA
Posts: 139
Sorry for the necro post but I'm glad I found this thread. Thanks to Thomas' "RDBRecov" program, I just got my SD working again. I also have a nice 32gb image file backup just in case.
jdryyz is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Can I recover my Cf? Retrofan support.Hardware 2 11 February 2013 11:40
Best way to move files to my A1200's CF card? RMK Retrogaming General Discussion 11 24 January 2011 20:23
Recover a Harddiskdrive cosmicfrog support.Hardware 6 03 July 2010 19:33
I need to recover stuff from old Amiga floppys... zardoz New to Emulation or Amiga scene 4 01 November 2004 21:19
Recover memory Tony Landais Coders. General 6 07 May 2003 15:21

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 17:29.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.22580 seconds with 16 queries