Ben Klein wrote:
2009/4/6 Chris Robinson chris.kcat@gmail.com:
On Sunday 05 April 2009 6:45:42 pm Ben Klein wrote:
That might be fine for mount points and mountable devices, but how could you accurately determine the filesystem type for an arbitrary directory like $HOME/.wine/drive_c?
Expand it (eg. $HOME -> /home/<user>), resolve all symlinks, then see which active mount points that falls into. The mount point with the longest name would then be the mount point/partition to use. Eg:
Drive path for C: $HOME/.wine/dosdrives/c: -> /home/user/.wine/dosdrives/c: -> /home/user/.wine/drive_c
Available fs mount points: / -> /dev/sda3 /home -> /dev/sda4 /boot -> /dev/sda1 /mnt/cdrom -> /dev/hda1
Matching mount points that /home/user/.wine/drive_c exists in and are active: / /home
Mount point with the longest name: /home
Thus, C: is on /home, which is /dev/sda4.
Easier said than done. Care to write and submit a patch? :)
Well, a 'df -T /home/user/.wine/drive_c' shows you the mountpoint and filesystem type (on Linux that is, not sure if '-T' is available in *nix).
Even 'df -T /home/user/.wine/dosdevices/c:' will give you the correct mountpoint and filesystem type.