Giter VIP home page Giter VIP logo

Comments (3)

danmons avatar danmons commented on July 30, 2024

At a file system level (ignoring EtherDFS for a moment), I see the "~" notation for files if I use -t msdos instead of -t vfat on a file system. Here's a from-scratch example:

# lvcreate --name dos --size 1G vg0
  Logical volume "dos" created.

# mkfs.msdos /dev/vg0/dos
mkfs.fat 4.2 (2021-01-31)

# mkdir -pv /mnt/dos

# mount -t msdos /dev/vg0/dos /mnt/dos
# touch 'this is a long filename.txt'
# cp this\ is\ a\ long\ filename.txt /mnt/dos
cp: cannot create regular file '/mnt/dos/this is a long filename.txt': Invalid argument

# umount /mnt/dos
# mount -t vfat /dev/vg0/dos /mnt/dos
# cp this\ is\ a\ long\ filename.txt /mnt/dos
# find /mnt/dos
/mnt/dos
/mnt/dos/this is a long filename.txt

# umount /mnt/dos
# mount -t msdos /dev/vg0/dos /mnt/dos
# find /mnt/dos
/mnt/dos
/mnt/dos/thisis~1.txt

So this is all working as intended if the file system is mounted with -t msdos, however as you can see from the output above you cannot copy/create files with longer than 8.3 filenames. If they exist already (i.e.: previous written by a Linux machine using mount -t vfat or a Windows machine with the volume mounted locally), they'll be truncated on read. This is a filesystem level thing, not an EtherDFS thing.

For EtherDFS itself, and I hate to do this to you (I don't like projects that say "not our issue, see upstream"), but this isn't a RetroNAS thing.

EtherDFS is an excellent project, but it's intentionally simple to keep the code base down and the protocol lightweight. We mention in the readme that part of the "joy" of retro computing are issues like these, and that 8.3 filenames are part of good housekeeping for using old computers (not limited to either EtherDFS nor MS-DOS. This affects lots of older computers, file systems and operating systems).

I think from here you're either going to need to engage the author of EtherDFS and see if they have any suggestions when it comes to dealing with long filenames outside of a local filesystem mounted with -t msdos. Either that, or just manually ensure you are taking the steps to ensure 8.3 filenames with systems that expect it.

The main project is here:

And in particular check the ethersrv-linux.txt file on that page which documents in detail the expectations of the underlying file system when hosted on a Linux server.

from retronas.

Thraka avatar Thraka commented on July 30, 2024

Thank you for the extensive reply!

from retronas.

Thraka avatar Thraka commented on July 30, 2024

Ahhhh you identified the problem. Ether is indeed working! I created the mount originally as msdos, then when the drive was added to fstab via the web interface and the system rebooted, it had reverted to "auto" and I didn't notice. So when I was testing the results seemed the same as vfat. Since msdos has less options to tweak than vfat I swapped to vfat and started trying to configure the mount options to replicate msdos.

So now I just modified fstab to set the type to msdos and everything works as expected. Thanks again @danmons

from retronas.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.