6

I am trying to get text files from an old 386SX computer running PCDOS 5.0. I believe the file system is FAT16.

The hard drive specifications are:

Conner Peripherals MODEL (CFS SERIES) CP3104 
100 MB
CYL      776
HDS        8
SECT      33
WPCOMP     0
LZONE    776
Type     IDE

Its formatted capacity 104.9 MB and it works fine in the original machine. See pic below. The floppy drive is broken so I put the hard drive in a USB enclosure.

Windows says the drive is unformatted and wants to format it, so I tried Linux.

lsusb:

Bus 003 Device 007: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge

usb-devices:

T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  7 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=152d ProdID=2338 Rev=01.00
S:  Manufacturer=JMicron
S:  Product=USB to ATA/ATAPI Bridge
S:  SerialNumber=220000000000
C:  #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=2mA
I:  If#=0x0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

dmesg | grep -i usb:

[  940.875536] usb 3-1: USB disconnect, device number 2
[  973.289744] usb 3-1: new high-speed USB device number 7 using xhci_hcd
[  973.440121] usb 3-1: New USB device found, idVendor=152d, idProduct=2338, bcdDevice= 1.00
[  973.440125] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[  973.440127] usb 3-1: Product: USB to ATA/ATAPI Bridge
[  973.440128] usb 3-1: Manufacturer: JMicron
[  973.440130] usb 3-1: SerialNumber: 220000000000
[  973.442645] usb-storage 3-1:1.0: USB Mass Storage device detected
[  973.443011] scsi host0: usb-storage 3-1:1.0

dmesg | grep -i sd:

[  974.451623] sd 0:0:0:0: Attached scsi generic sg0 type 0
[  974.452194] sd 0:0:0:0: [sda] Very big device. Trying to use READ CAPACITY(16).
[  974.452766] sd 0:0:0:0: [sda] Using 0xffffffff as device size
[  974.452772] sd 0:0:0:0: [sda] 4294967296 512-byte logical blocks: (2.20 TB/2.00 TiB)
[  974.453266] sd 0:0:0:0: [sda] Write Protect is off
[  974.453269] sd 0:0:0:0: [sda] Mode Sense: 00 38 00 00
[  974.453823] sd 0:0:0:0: [sda] Asking for cache data failed
[  974.453829] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  974.478116] sd 0:0:0:0: [sda] Very big device. Trying to use READ CAPACITY(16).
[  974.478601] sd 0:0:0:0: [sda] Using 0xffffffff as device size
[  974.480070] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[  974.480073] sd 0:0:0:0: [sda] tag#0 Sense Key : Illegal Request [current] 
[  974.480074] sd 0:0:0:0: [sda] tag#0 Add. Sense: Invalid command operation code
[  974.480076] sd 0:0:0:0: [sda] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[  974.480078] blk_update_request: critical target error, dev sda, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  974.480082] Buffer I/O error on dev sda, logical block 0, async page read
[  974.480576] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[  974.480577] sd 0:0:0:0: [sda] tag#0 Sense Key : Illegal Request [current] 
[  974.480578] sd 0:0:0:0: [sda] tag#0 Add. Sense: Invalid command operation code
[  974.480579] sd 0:0:0:0: [sda] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00
[  974.480580] blk_update_request: critical target error, dev sda, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[  974.480582] Buffer I/O error on dev sda, logical block 0, async page read
[  974.481158] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[  974.481160] sd 0:0:0:0: [sda] tag#0 Sense Key : Illegal Request [current] 
[  974.481161] sd 0:0:0:0: [sda] tag#0 Add. Sense: Invalid command operation code
[  974.481162] sd 0:0:0:0: [sda] tag#0 CDB: Read(16) 88 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00

It seems the drive is sda but I can't seem to mount it. How can this be done without a recognized partition?

screen capture disk parameters

8
  • 3
    @ArthurKalliokoski sda vs. hda is determined by the driver that picked it up. hda was for the old PATA driver. Those names haven't been used since PATA support was rewritten on top of the SCSI infrastructure to match the SATA support and it has never been used for drives connected over USB bridges as far as I can remember. (That's what the s in sda is. The SCSI layer that SATA, PATA, and USB all go through now.)
    – ssokolow
    Feb 10, 2023 at 20:43
  • 2
    Your problem seems to be the USB enclosure identifiying the disk properly. From the Linux log we can see that READ CAPACITY returns a huge number (and that is produced by the USB adapter in the enclosure, not the driver in Linux). Maybe try another adapter. Linux can't fix broken hardware.
    – tofro
    Feb 10, 2023 at 20:47
  • 3
    It wouldn't surprise me that USB enclosures are as mercurial as enclosure-less USB converter cables. If I didn't have access to a closet full of Windows XP-era machines with onboard PATA controllers (spare parts for my retro-hobby corner), the first thing I'd probably try is using one of those PATA-SATA converters that advertise being able to operate in either direction and seeing if the motherboard's SATA controller has better luck.
    – ssokolow
    Feb 10, 2023 at 20:49
  • What kind of diagnostics are running there, by the way? Feb 11, 2023 at 10:37
  • 1
    Is replacing the floppy drive an option? Feb 11, 2023 at 21:47

3 Answers 3

11

The USB enclosure is intended for much newer drives. It can't understand such an old drive with no logical block addressing (LBA) support.

The drive needs to be connected directly to motherboard IDE or PCI IDE adapter for better compatibility.

You can transfer files with many file transfer programs and cables, or network, and since your floppy drive is broken, there are a few programs that can be uploaded through serial cable between two computers.

7
  • IIRC laplink and interlink was native to MS-DOS so there is a chance the old 386 has it on the drive already inside MS-DOS commands folder ... without the need to download anything
    – Spektre
    Feb 11, 2023 at 21:10
  • 2
    @Spektre LapLink is commercial software that did not come with MS-DOS. And it is PC-DOS 5.0 instead of MS-DOS, and InterLink came with MS-DOS 6 or later.
    – Justme
    Feb 11, 2023 at 21:25
  • MS-DOS Kermit might work: there are versions available for download and a PDF with a BASIC bootstrap program (ch. 7, p. 191) so you can enjoy entering a program just like in the old days :-)
    – ErikF
    Feb 12, 2023 at 0:42
  • 1
    Here are many ways to bootstrap Kermit on DOS using a serial (RS-232) cable: retrocomputing.stackexchange.com/a/9762 . As soon as you have Kermit on DOS, and C-Kermit on Linux, you can send and receive files conveniently over the serial cable.
    – pts
    Feb 14, 2023 at 0:27
  • 1
    @pts It appears equivalent to the (included with MS-DOS) INTERLNK/INTERSVR, including the bootstrapped client transfer.
    – Sneftel
    Feb 21, 2023 at 13:41
8

I never got the USB connection to work, those who thought it was at fault were correct. I ultimately found an old tower running Windows 10 that had an unused EIDE connection, plugged the 40 wire IDE cable in and it was recognized. Robocopy and Copy would only copy the smaller files and that took hours. With Gparted the whole drive was copied in 4 minutes. It then turned out that in the 90's Conner drives were small and expensive and slow relative to the CPU so data was compressed on the fly as it was stored. The stuff of interest is on a 100mb file STACKVOL.DSK and current efforts are centered on trying to unstack it.

2
  • 2
    If you have the disk image, you can mount it (or a backup) in a virtual machine and run it. Give the virtual machine a second drive large enough to copy the Stacker compressed files there, unless you find a tool to mount Stacker compressed volumes.
    – Justme
    Feb 17, 2023 at 2:01
  • Glad you got it working. Those old Conner drives can be difficult. You can mark your response here as the answer, so it might help people in the future
    – scruss
    Feb 18, 2023 at 14:29
0

In practice: If you are an enthusiast that tends to end up in that situation frequently, building a dedicated "disk handling" machine can be a wise thing to do. Find the most compact and modern board (usually, that will mean a P3 or P4 era board) that still has a true (two channels supported!) floppy controller and a real IDE controller and put it in a case where the side panels are easy to take off. Boards that have real IDE, and also SATA, are optimal - you can put your OS disk on the SATA controller and have less chance of a bad IDE device hanging up the whole machine.

Set up with 32-bit Debian Linux, optionally also an actual DOS or old Windows system. Optimally, ALSO with a CD drive - some very early IDE drives that use automatic geometry translation tricks can be REALLY recalcitrant and might need trying several live CDs with older kernels....

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .