Transferring files between Windows 3.11 for Workgroups and Ubuntu Linux 20.04

I have an interest in vintage computers, and enjoy making them functional again to explore their operating systems and how they worked. I’m not a purist though, and the first thing I do is replace the noisy failing hard drive with some form of SD card with adaptor or similar for solid state for easy backing up etc.

Part of the difficulty in starting fresh with an empty drive on these older machines is actually getting an operating system installed in 2020. Most floppies I have are failing now, and finding new working floppies is getting hard, as well as the wear and tear of constantly imaging whole floppies with installation media etc. I try to keep this part to a minimum for the base OS, and then use alternate means to transfer files.

My usual go to is to get the machine network connected in some way, usually using an ancient ethernet card or device. You would assume that from here it’s all smooth sailing, however this can sometimes multiply the problems as in these times, communication protocols have moved on making it hard to interlink with them.

I really should probably just bite the bullet and set up a small FTP server on the network using a Raspberry Pi or something similar, but I haven’t done that yet, plus sometimes FTP transfers start to bring in other problems in the way you transfer etc.

For a recent resurrection of a 486 DX2 66mhz machine I managed to work my way through installing MSDOS 6.22, followed by Windows for Workgroups 3.11 on top of that. I then made sure to install the network card drivers in Windows 3.11 as well as the TCP32b driver and added the tcp/ip protocol to the network card in the network control panel (removing IPX/SPX protocol while I was there). I made sure to enter manual IP settings for my network, or you could hope that DHCP will work (I never trust DHCP on old machines, things can get screwy when troubleshooting). Windows will want to reboot after that, and you should be all set to transfer files via Windows shares via TCP/IP.

I assumed it would be as easy as firing up file sharing, and accessing windows drives on the network to transfer the hundreds of MB of games and utilities I’m keen on putting on there, but since Windows XP, the windows file sharing protocols have been updated, and older insecure protocols like those used in Windows 3.11 no longer work.

This is where I usually would use Ubuntu Linux which is my main operating system to open Samba sharing to do this job, but it it, too, has moved on, and by default on Ubuntu 20.04 the version of Samba no longer will talk easily to Windows 3.11.

After much head scratching and walking between the laptop and the 486, I figured out that I had to allow Samba to speak the correct version of the SMB protocol. By default it will only speak much later versions, whereas we need to enable SMB v1 for poor old Windows 3.11 to connect and talk.

Whether you are hosting the share on the Linux machine, or accessing the shares to push the files onto the Windows 3.11 machine as a client, the Samba config will affect it all.

In your /etc/samba/smb.conf file in the [global] area, I’ve put:

netbios name = samsung
lanman auth = yes
client lanman auth = yes
ntlm auth = yes
client min protocol = CORE

This allowed my laptop running linux to use the GUI tools in Ubuntu 20.04 to access the old Windows share.

netbios name is optional, but I gave it a simple under 8 character name as my laptop’s hostname is longer and I thought that may affect things.

lanman auth looks like it’s no longer working, but I put it anyway, along with client lanman auth.

ntlm auth is probably not needed but is in my config for other things.

client min protocol = CORE is what does the magic, lowering the minimum version of SMB protocol to old fashioned basics for the windows machine.

Make sure you restart Samba and the NMBD daemons or simply reboot your Linux machine and you can then follow on here:

On my 486, I then went to the file manager, created a folder named “shared” and used the menus to share it with no password. I found the password was messy as there didn’t seem to be a username associated with it, and I couldn’t connect no matter what I did. You may have windows want you to “log on” which for me I’d set up simple username and password during installation, which is part of enabling network sharing in Windows 3.11.

On my Ubuntu laptop I then opened the file browser, and pressed the “+ other locations” button on the lower left. In this window I went to the bottom of the window, where the “Connect to server” area is and entered “smb://486dos/shared” where 486dos is the name I gave my windows machine while setting it up, and shared is the name I gave to the shared folder I was sharing in Windows 3.11.

By magic, you should find that you can now transfer files to the old machine! *

* It’s not super straight forward however. There are a few quirks:

I found transferring lots of things at once would pop up some errors about overwriting files. This could be some kind of bug. I found it better to transfer single zip files and unzip them on the older machine rather than copy folders containing multiple files. Also remember you’re using a machine restricted to 8 character file names, so make sure this is the case. Try to avoid fancy characters also.

I recommend finding the last working version of Winzip for Windows 3.11 and install it, so the process will be, move the zip file to the windows network share, unzip it there into the final location.

So far so good, and happy I can now transfer the files to the massive 8GB SD card working as an IDE drive in the machine. Which was another headache I’ll put in another post.

One thought on “Transferring files between Windows 3.11 for Workgroups and Ubuntu Linux 20.04”

Leave a Reply

Your email address will not be published. Required fields are marked *