0

I have Arch installed on an SD card (F2FS) that is rather sparce in terms of disk space. There is also an original laptop's NTFS Windows SSD drive that has much more free space and is much faster.

I would like to move large files of Linux packages installed with pacman or yay (AUR) to the mentioned NTFS drive, so that they would seamlessly be accessible by the Linux system and applications as the target files themselves. I could simply move the files and put soft links instead, but this would make the system maintained in manual-only mode (i.e. once the package files are rewritten upon package upgrade via a package manager, the links get replaced with the actual files of the updated package; once the file is deleted, it is only the link that gets deleted, with the target file still wasting space on the NTFS drive etc). Hard links do not meet these feature set requirements: they do not work with different filesystems, and they make the file exist unless the last hard link is present, that is opposed to what I actually need.

I could do this in Windows 10 with junction links (I guess?), but is there any proper Linux equivalent to this functionality?

1

Rather than moving individual files, I'd try to move the containing directory.

Suppose a path like

/opt/foopackage/foo.bin

Instead of linking to foo.bin, you could try moving /opt/foopackage in its entirety and linking it to the NTFS volume.

If that shows the same behaviour, you could try moving the top level directory (/opt in this example).

Editorialising for a moment, I'm not entirely sure any of this is a good idea, as the permission model differences between Linux Windows (and by extension NTFS) might result in some weirdness (I'm thinking like things being world writeable or executable when they ought not to be).

Resizing the NTFS disk, creating space for a Linux native format volume for your SD image OS to mount in /opt (or whatever is appropriate) is another potential solution, which feels "cleaner".

3
  • 1
    Probably could bind-mount some directory from the NTFS to the main filesystem tree too. (Unless bind-mounts don't work with NTFS for some reason.)
    – ilkkachu
    Aug 19 at 14:31
  • Yeah I thought about mounting the NTFS in some manner into the appropriate directory; it may work, but falls firmly into the "not sure this is a good idea" area in my mind.
    – bxm
    Aug 19 at 14:37
  • Thank you for the hint. Symlinking the entire dir or bind-mounting it would indeed suffice, would it support fs-independent Linux permission model (would it be a kind of VM virtual drive or a docker-like encapsulated environment). I have my /boot folder bound to NTFS drive folder (otherwise the SD card is not accessible on boot), and all files there are 777 (exactly as @bxm mentioned), this is bug-prone and not clean. And repartitioning the SSD is not an option - I wouldn't have my share of pain in the donkey to organize Linux on a slow and small SD card otherwise.
    – z0mb1e_kgd
    Aug 19 at 16:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.