First post, by doshea
- Rank
- Oldbie
I'm working on a DOS server based on mTCP and a Linux FUSE client which can talk to it and expose the DOS system's filesystem to Linux.
I've got various, shifting goals:
- Back up DOS systems using rsync-based tools like rsnapshot or dirvish, and in some cases Git
- Back up the contents of compressed volumes (that nobody understands the format of) as above
- Compare and synchronise what is on a DOS system against a backup or a mounted disk image using rsync
- Use Git to manage the source code for the server I'm working on (the Git repo's .git directory wouldn't live on the DOS filesystem, instead I'd mount the DOS filesystem inside the Git repo)
- Use DOS as a development environment because it's fun
I could certainly back up an emulated DOS system using rsync or similar by just mounting the disk image, but can't do the same for some compressed volume files.
I spent some time looking at/for existing network file systems, but nothing seemed to be suitable:
- SMB/CIFS: Linux's smbclient and mount -t cifs don't seem to want to talk to Microsoft Workgroup Add-on for MS-DOS. It looks like this broke somewhere between Samba versions 1 and 2, which I think was last century. I don't want to maintain a fork of Samba again, I did that at work once and it just changes too much without explanation. I don't think they'd accept patches because even support for plain text authentication is deprecated - I think they want to move away from supporting my use case, not toward it, which I think makes sense.
- NetWare Lite: ncpfs was removed from the Linux kernel some time ago.
- NFS: I could find an NFS version 2 server for DOS, but the Linux kernel no longer supports NFS version 2.
- FTP: I could run an mTCP FTP server and get a Linux FUSE client to mount it, but whereas FAT stores time stamps accurate to 2 seconds, an FTP directory listing might just say "Sep 22 2024" without telling you the time at all, and FTP isn't a great match for a filesystem - it doesn't support random access to files.
So I have an interesting project to work on now, and I think I have read-only mounts working well enough with an emulated machine that I get the same results rsyncing from my FUSE-mounted filesystem vs. using the Linux kernel's "msdos" filesystem.
It should be possible to make clients for FreeBSD, macOS and Windows too - I believe they all have (probably not identical) FUSE implementations.
Would anyone else find this useful? What would you want to use it for?