Howto connect a very old RLL HDD? Cylinders, Heads etc.
I've got here a very old HDD I should have a look into. It's from a 1994 DOS laptop, possibly from the era when you had to enter the nos. of cylinders and heads in BIOS… specifically a 344 MB Conner CFN340A drive.
I have a working USB-to-IDE/SATA adaptor which plugs onto this drive, but as can be seen from the following dmesg output, my Linux can't correctly identify and connect to that old drive (“Very big device”, ha!). I believe that it's basically still intact but just doesn't give the needed infos.
How could I get Linux to talk to this drive? I'm using Linux Mint Debian Ed. x64 Mate (and loving it!), but would boot any suitable live distro for this. See below —
a) dmesg output (followed by a lot of similar error lines I left out here)
b) drive info as found in http://stason.org/TULARC/pc/hard-dri...SL-IDE-AT.html and
Thank you! Hans
[ 3908.320494] usb 1-11: new high-speed USB device number 6 using xhci_hcd
[ 3908.337211] usb 1-11: New USB device found, idVendor=152d, idProduct=2338
[ 3908.337213] usb 1-11: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[ 3908.337214] usb 1-11: Product: USB to ATA/ATAPI bridge
[ 3908.337215] usb 1-11: Manufacturer: JMicron
[ 3908.337215] usb 1-11: SerialNumber: 142014524147
[ 3908.337790] usb-storage 1-11:1.0: USB Mass Storage device detected
[ 3908.337839] scsi9 : usb-storage 1-11:1.0
[ 3909.336782] scsi 9:0:0:0: Direct-Access Conner P eripherals 340MB PQ: 0 ANSI: 5
[ 3909.337061] sd 9:0:0:0: Attached scsi generic sg4 type 0
[ 3909.337208] sd 9:0:0:0: [sdd] Very big device. Trying to use READ CAPACITY(16).
[ 3909.337687] sd 9:0:0:0: [sdd] Using 0xffffffff as device size
[ 3909.337691] sd 9:0:0:0: [sdd] 4294967296 512-byte logical blocks: (2.19 TB/2.00 TiB)
[ 3909.337961] sd 9:0:0:0: [sdd] Write Protect is off
[ 3909.337963] sd 9:0:0:0: [sdd] Mode Sense: 28 00 00 00
[ 3909.338238] sd 9:0:0:0: [sdd] No Caching mode page found
[ 3909.338239] sd 9:0:0:0: [sdd] Assuming drive cache: write through
[ 3909.338488] sd 9:0:0:0: [sdd] Very big device. Trying to use READ CAPACITY(16).
[ 3909.338921] sd 9:0:0:0: [sdd] Using 0xffffffff as device size
[ 3909.339458] sd 9:0:0:0: [sdd] No Caching mode page found
[ 3909.339459] sd 9:0:0:0: [sdd] Assuming drive cache: write through
[ 3909.339897] sd 9:0:0:0: [sdd] Invalid command failure
[ 3909.339899] sd 9:0:0:0: [sdd]
[ 3909.339900] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 3909.339901] sd 9:0:0:0: [sdd]
[ 3909.339902] Sense Key : Illegal Request [current]
[ 3909.339903] sd 9:0:0:0: [sdd]
[ 3909.339904] Add. Sense: Invalid command operation code
[ 3909.339905] sd 9:0:0:0: [sdd] CDB:
[ 3909.339906] Read(16): 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[ 3909.339910] blk_update_request: 153 callbacks suppressed
[ 3909.339911] end_request: critical target error, dev sdd, sector 0
[ 3909.339912] quiet_error: 153 callbacks suppressed
[ 3909.339913] Buffer I/O error on device sdd, logical block 0
[ 3909.340504] sd 9:0:0:0: [sdd] Invalid command failure
[ 3909.340505] sd 9:0:0:0: [sdd]
[ 3909.340506] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Hard Drive: CONNER: CFN-340A 344MB 2.5"/SSL IDE / AT
C F N - 3 4 0 A CONNER
NO MORE PRODUCED Native| Translation
Form 2.5"/SUPERSLIMLINE Cylinders 1598| 667| |
Capacity form/unform 344/ MB Heads 6| 16| |
Seek time / track 13.0/ 3.0 ms Sector/track | 63| |
Controller IDE / AT Precompensation
Cache/Buffer 32 KB Landing Zone
Data transfer rate 3.000 MB/S int Bytes/Sector 512
8.000 MB/S ext
Recording method RLL 1/7 operating | non-operating
Supply voltage 5 V Temperature *C 5 55 | -40 60
Power: sleep 0.2 W Humidity % 5 90 | 5 90
standby 0.2 W Altitude km -0.061 3.048| -0.061 4.500
idle 0.9 W Shock g 10 | 200
seek 1.1 W Rotation RPM 4000
read/write 1.4 W Acoustic dBA 34
spin-up W ECC Bit
MTBF h 150000
Lift/Lock/Park YES Certificates
CONNER CFN-170A/250A/340A JUMPER CONFIGURATION
|+-+ |XX J1
|| | |XX
|| | |XX
|| | |XX I
|+-+ |XX N
| |XX T
| |XX E
| |XX R
| |XX F
| |XX A
| |X* C
| |XX E
CONNER CFN-170A/250A/340A JUMPER CONFIGURATION
C/D Master/Slave Configuration
CLOSED Single Drive
CLOSED Master Drive
OPEN Slave Drive
A/C Master/Slave Protocol
OPEN NON CAM
Choose NON CAM for Compatibility with older CONNER Drives.
Seems to me it is a pretty standard IDE drive, RLL was often used for these drives.
* Have you checked the jumper setting? These old drives were always manually jumpered - single master, slave, master w. slave present.
* You should be able to input the cyl/head in BIOS, does that not work?
This is not an "RLL drive". It may store data using Run Length Limited encoding, but it is most certainly an old IDE drive.
USB-to-IDE converters rely on the drive to report its size. Unfortunately, this drive does not support autodetection. You could try overriding the hard drive parameters using the kernel command line if usbstore is compiled into the kernel, or specify module load parameters if it isn't. I'm actually not sure either would work for a usbstor device.
Your best bet would be to locate a motherboard with an IDE controller and enter the hard drive parameters into the BIOS setup manually. The parameters for this particular drive can be found here.
(An "RLL drive" is a hard drive using the a very old controller interface that's totally incompatible with modern (E)IDE/ATA controllers. It was electrically compatible with MFM drives, and in fact many MFM drives could be low-level reformatted as RLL drives, yielding a 50% increase in capacity.)
But this is an idea as I might try it on an similarly old DOS PC I still have sitting ready in the attic for some historical purposes… only then I would need to find a suitable IDE cable from the larger 3,5" drive connectors to this smaller 2,5" drive connector.
But thank you very much for your help!
Well, I'll go for an improvised open setup with a medium old mainboard. I'll just have to hunt for such a cable or adapter (or make one) which will take some time, have never seen one. In the meantime we can close this as SOLVED. (How do I do this here? Ah, found it.)
Again, thanks very much!
Just to relate the happy end: In a hardware store I found a suitable adaptor (IDE 40 pin 2.54 mm + Molex Power to IDE 44 pin 2.00 mm, part of a mounting kit for 2.5" drives). Using an open benchtop setup with a discarded Asus A8V mainboard having both USB and IDE (PATA) ports, I connected the Conner drive with that adaptor and booted Finnix from an USB key. The nearly 20 years old drive came up fine, I did not have to enter any drive data. So I could simply mount it and copy the historical files to another USB key — problem solved. Thank you all, have a nice day!
Although the problem has been solved, I just wanted to share my experience with reading a 20 MB Conner laptop drive with a USB adapter.
Looking at a hexdump of the data revealed some weird aliasing, e.g. sectors 0 and 1 were identical copies of the MBR. Several sectors after sector N were copies of sector N until M was reached when the aliasing pattern repeated. There was another larger pattern of aliasing too.
This situation occurs when the USB adapter speaks LBA to the drive and the drive interprets it as CHS, both ignoring the CHS/LBA select bit. It turns out that N was the number of sectors per track. Examining the MBR partition table revealed the most likely CHS geometry.
Once I had that, I needed to map the LBA addresses that the adapter sent to the drive to CHS addresses that the drive interpreted. Keep in mind this is not at all like your typical CHS <=> LBA conversion math. This involved researching the IDE register layout and seeing how the registers for specifying CHS and LBA addresses overlap, referencing http://www.nondot.org/sabre/os/artic...andDiscDrives/. Finally, I wrote a bash script to run through all the LBAs I wanted sequentially, compute the CHS addresses, map those to aliased LBAs the adapter would submit, and "dd" each track one-by-one to an image file.
I'm running into the same problem. Sounds like an ingenious solution. You don't have that script handy do you?
|All times are GMT -5. The time now is 12:17 PM.|