I wish to create a bootable DOS 3.3 installation floppy disk (3.5″, 1.44MB, 2HD, Sony branded) for my AST Premium Exec 386SX/20 laptop.
I have bought a new USB floppy disk drive and connected it to an Ubuntu virtual machine and I'm able to mount the drive and read the contents of the disk (although it takes a long time, over 1 minute just to get the root file listing).
I have attempted to use the following command to overwrite the diskette with an image file "Dos3.3.img" from https://www.allbootdisks.com/download/dos.html.
root@ubuntu64:~# dd conv=sync bs=512 if=/root/386_stuff/Dos3.3.img of=/dev/sdb ; sync
dd: error writing '/dev/sdb': Input/output error
97+0 records in
96+0 records out
49152 bytes (49 kB, 48 KiB) copied, 18.3361 s, 2.7 kB/s
root@ubuntu64:~#
The image is 1.44MB in size (e.g. a complete disk's worth), but it clearly fails with an IO error after only 96 sectors transferred. I've tried this a few times with different images (a "NEC" brand boot image from some other site had a similar failure though).
I believe the disks are new old-stock, they came shrink wrapped in their original packaging. The USB floppy drive is a generic thing with a TEAC chipset (according to dmesg
).
I cannot tell if my method is faulty, or if it's the diskettes or the drive. Is there a better, more robust way to create a bootable DOS 3.3 floppy?
Supplemental:
Output from lsusb -v
relating to the floppy drive connected to the linux virtual...
Bus 001 Device 004: ID 0644:0000 TEAC Corp. Floppy
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0644 TEAC Corp.
idProduct 0x0000 Floppy
bcdDevice 2.00
iManufacturer 1 TEACV0.0
iProduct 2 TEACV0.0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0027
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 4 Floppy (UFI)
bInterfaceProtocol 0 Control/Bulk/Interrupt
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 127
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0000
(Bus Powered)
The output from ufiformat -v -i /dev/sdb
...
root@ubuntu64:~/386_stuff/freedos_installation_media/144m# ufiformat -v -i /dev/sdb
inquire on device=/dev/sdb
vendor: TEAC
product: USB UF000x
write protect: off
media type: 2HD
status block size kb
formatted 2880 512 1440
formattable 2400 512 1200
formattable 1232 1024 1232
formattable 2880 512 1440
dd if=/dev/zero of=/dev/sdb bs=512
. I don't know why that should make a difference though. And the 386 laptop DOES boot successfully from that diskette! I guess that's progress, but this process feels a bit flimsy to me.lsusb -v
is usually more detailed thatdmesg
.)dd
to simply use the entire disk for the actual DOS3.3 image verbatim without errors. I'll try thelsusb -v
tip shortly...dd conv=sync
is a terrible idea here. Ifdd
happens to get a partial read, it will corrupt your copy. There is no need for that option here. In fact, there's no need to usedd
at all here, and I recommend you don't. Just usecat
, orpv
if you like a progress bar.