1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
dapfs is a filesystem for access VMS directories easily from Linux.
It requires FUSE (Filesystems in USErspace) http://fuse.sf.net which
is both a userland library and a kernel component. The kernel component
is available in Linux 2.6.14 onwards and patches are available for earlier
kernels from the above web site. To build dapfs you will need the development
library package for FUSE 2.2 or higher.
To enable all the features of daps you will also need to install the DAPFS.COM
DECnet object on the remote VMS host - see the start of that command-procedure
for installation details. Without this, you will still be able to do most
things with dapfs but the following will not work:
- statfs (including the 'df' command)
- mkdir
- rmdir (if the protection of the VMS directory does not have Delete set)
Other things that do not work are chmod and chown as these do not map neatly
onto Unix principles.
dapfs requires libdnet, librms & libdap from the dnprogs package as well as,
obviously, a DECnet-enabled and configured kernel. Don't try to use dapfs
to talk to another Linux box (though why would you want to?) as it won't work!
To mount a dapfs filesystem, make sure the fuse module is loaded into the kernel
and use the followng syntax:
# mount -tdapfs node <mountpoint> [<options>]
Here are some examples:
# mount -tdapfs zarqon /mnt/vax
this will use the default DECnet account on 'zarqon' or a proxy for "ROOT"
mount -tdapfs ford /mnt/alpha -ousername=system,password=field
By default dapfs transfers files as records as this is by far the most useful
way of doing things. If you want to get a raw file from VMS (and remember,
this won't copy the file organisational metadata) then you can add -oblock to
the mount command and dapfs will send the file just as it appears on VMS.
This is also a lot quicker than record mode too.
You can't directly mount a disk using dapfs, because it connects as a user
to VMS and everything is relative to that user's home directory
(.. doesn't work!). If you want to export a whole disk you will have to create
a user that logs into [000000] !
BUGS/ANNOYANCES
Many unix utilities (cat, less and others) get the file size using stat() and
then read that number of bytes. This causes some odd behaviour with sequential
files on dapfs that I can't do much about.
The file size that dapfs returns is the actual file size on the VMS host system.
Because VMS stores files very differently than Linux this might not match
the size of the file when it arrives at the Linux end, it will always be
smaller. fuse fills this space with NULs (charactar 0). Writing the file back
will not lose information, it will be written back as STREAM file format and
the NULs should disappear.
dapfs will probably only work to VMS. I will accept patches to make it work
with other DECnet operating systems but I very much doubt I will have the time
to do it myself, sorry.
|