Jump to content











Photo
- - - - -

Dokan + Libfns = nfs support for windows

nfs dokan

  • Please log in to reply
11 replies to this topic

#1 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 14 July 2019 - 06:03 PM

Hi,

A while ago, I had done some experiments with libfns (see post here).

I was happy with the result but would have preferred to actually go the full way i.e a logical drive pointing to my nfs export.

On my list of todo things was also to have a look at Dokan : a user mode file system for Windows allowing one to easily create a filesystem on the fly.

I have therefore combined Dokan and Libnfs to allow one to mount a NFS export to a windows logical drive.

I have shared it here : source code and binary (in nfs_dokan.zip).
Command line is rather simple :
NFS_DOKAN.exe /r "nfs://192.168.1.248/volume2/public/" /l x
to mount your nfs export to X:

NFS_DOKAN.exe /discover
to discover nfs exports on your LAN.

Performance is rather good (about 45MBytes/sec on my network which is about the max I can get on my NAS).

The below file system operations have been tested successfully :
directory listing, directory browsing, create directory, rename directory, create file, rename file, read file, write file, copy/paste file, delete file, delete directory.

This could lead to other possibilities like mount a zip as a drive, some remote http / ftp site, etc ...

Regards,
Erwan

EDIT : tested it under winpe and i was able to install dokan and map a nfs export to a local drive.

 

dxIWyYN.png



#2 Blackcrack

Blackcrack

    Frequent Member

  • Advanced user
  • 458 posts
  •  
    Germany

Posted 15 July 2019 - 02:59 AM

i have a Gig Network, could you maybe create a client, where read and set up uid's and gid's on the nfs by hang in as

$user and $Group it as example UID=XXXX and GID=XXXX with filesetup 755 and 644 for UID/GID

take a look there : http://blackysgate.d.../Wiki/chmod.htmin german and

https://www.google.c...131.nvhSowbR3PU

 

this is very important for a nfs-server as client :

https://en.wikipedia.org/wiki/Chmod

 

best regards

Blacky



#3 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 15 July 2019 - 07:40 AM

i have a Gig Network, could you maybe create a client, where read and set up uid's and gid's on the nfs by hang in as

$user and $Group it as example UID=XXXX and GID=XXXX with filesetup 755 and 644 for UID/GID

take a look there : http://blackysgate.d.../Wiki/chmod.htmin german and

https://www.google.c...131.nvhSowbR3PU

 

this is very important for a nfs-server as client :

https://en.wikipedia.org/wiki/Chmod

 

best regards

Blacky

 

Hi Blacky,

 

If you are talking about setting the uid and the gid, I currently hardcode it to 0 (which probably is a bad idea i believe now).

 

Moreover, if you look at the url-format hanlded by libnfs, i believe we should be able to pass it on the command line. (here).

Syntax is nfs://<server|ipv4|ipv6>/path[?arg=val[&arg=val]*] .

So something like nfs://server/export?uid=1234&gid=100 should do it.

 

Let me know if I got it right in which case I will remove the hardcoded uid=0 and gid=0 in my code.

 

Cheers,

Erwan



#4 Blackcrack

Blackcrack

    Frequent Member

  • Advanced user
  • 458 posts
  •  
    Germany

Posted 15 July 2019 - 03:00 PM

hmmmmmmmm.. if we start more at front before, is maybe a better idea to programming a Administratons-center (Administrations-group) for translating WinNT-Users and set it up a GID and UID witch it is mapped on the user and then, this as Linux"emulation" client and then a addon as clinet/Server with this could it more better handling also as Administrator/Root-rights in WinNT to linux, so easy say'ed a User-Handling (maybe in qt)
which use the users and translate it to Linuxuser-connector who have GID and UID inside hard configuriered.. =

We have Users and user who be in admin group and guests in linux, we take the user1 and give in the "Linux-Administrations-Center" the User1 the UID 1000 and put this User1 in a own GID with 1000

so, as example Blackcrack with UID 1000, have a own group with the GID 1000, and in linux is the name mapped on the io and this looks like :

[blackcrack@blackysgate home]$ ls -al
insgesamt 32
drwxr-xr-x  5 root       root   4096 Mai  7  2018 .
drwxrwxrwx 27 root       root   4096 Mai 23 18:32 ..
drwxr-xr-x 40 blackcrack users  4096 Jul 15 17:21 blackcrack
drwx------  2 root       root  16384 Nov 13  2013 lost+found
drwx------ 20 werkstatt  users  4096 Mai 18  2014 werkstatt
[blackcrack@blackysgate home]$

here it is the "users" guid = 100
and the blackcrack(group)=1000
and blackcrack(user)=1000 also

so let see in this case the blackcrack is member in group "users"
what's normally wrong, because blacky have also a own group which names blackrack too
but in this case is blackcrack member of the group "users" if i go into blackcrack, see i am :
 

[blackcrack@blackysgate ~]$ ls -al
insgesamt 604
drwxr-xr-x 40 blackcrack users        4096 Jul 15 17:21  .
drwxr-xr-x  5 root       root         4096 Mai  7  2018  ..
drwx------  3 blackcrack blackcrack   4096 Mai 31  2015  .adobe
drwxr-xr-x  2 blackcrack users        4096 Mai 15  2017  Arbeitsfläche
-rw-r--r--  1 blackcrack blackcrack    387 Feb 10  2014  .bash_completion
-rw-------  1 blackcrack blackcrack  16010 Jul 13 21:39  .bash_history
-rw-r--r--  1 blackcrack users          24 Sep 25  2014  .bash_logout
-rw-r--r--  1 blackcrack users         191 Sep 25  2014  .bash_profile
-rw-r--r--  1 blackcrack users         124 Sep 25  2014  .bashrc
drwxrwxr-x  2 blackcrack users        4096 Jun 21  2016  bearbeit
-rwxr-xr-x  1 blackcrack users         689 Dez 21  2014 'bearbeit\rsyncmirror-2014-x86_64.sh'
drwxrwxr-x  2 blackcrack users        4096 Mai 31  2015  .bigbashview
drwxr-xr-x  5 blackcrack users        4096 Mai 31  2015  Bilder
drwxr-xr-x 23 blackcrack users        4096 Mai  5 18:47  .cache
drwxr-xr-x 30 blackcrack users        4096 Mai  5 18:47  .config
drwx------  3 blackcrack users        4096 Mai 31  2015  .dbus
-rw-------  1 blackcrack users          83 Nov  1  2015  .directory
-rw-------  1 blackcrack users          26 Mai 31  2015  .dmrc
drwxr-xr-x  2 blackcrack users        4096 Nov 25  2016  Dokumente
drwxr-xr-x  3 blackcrack users        4096 Jan 23  2018  Downloads
-rw-------  1 blackcrack users          16 Mai 31  2015  .esd_auth
-rw-rw-rw-  1 blackcrack users       94923 Nov 30  2013  .face.icon
drwxr-xr-x  2 blackcrack users        4096 Mai  3  2017  .fontconfig
lrwxrwxrwx  1 blackcrack blackcrack     46 Okt  1  2017  .fonts.conf -> /home/blackcrack/.config/fontconfig/fonts.conf
drwx------  3 blackcrack users        4096 Nov 21  2013  .gnome2
drwx------  2 blackcrack users        4096 Nov 21  2013  .gnome2_private
drwx------  3 blackcrack users        4096 Okt  1  2017  .gnupg
drwxrwxr-x  2 blackcrack users        4096 Apr 25  2016  .gstreamer-0.10
-rw-rw-r--  1 blackcrack users         160 Nov 21  2013  .gtk-bookmarks
-rw-rw-r--  1 blackcrack users         163 Jan 16 16:44  .gtkrc-2.0
-rw-rw-r--  1 blackcrack blackcrack    530 Okt 27  2017  .gtkrc-2.0-kde
lrwxrwxrwx  1 blackcrack blackcrack     31 Okt 27  2017  .gtkrc-2.0-kde4 -> /home/blackcrack/.gtkrc-2.0-kde
drwxrwx---  7 blackcrack users        4096 Apr 25  2016  .guayadeque
drwxr-xr-x  2 blackcrack users        4096 Jun 17  2018  .hplip
drwx------  2 blackcrack users        4096 Mär 16  2016  .irssi
drwxr-xr-x  6 blackcrack users        4096 Mai 31  2015  .kde4
lrwxrwxrwx  1 blackcrack blackcrack    106 Mai 23  2017  kde44-Real-Time-scalable-iconthemes-blackysgate -> /media/WD40EFRX-68W/linux/download/Blackysgate-Icon-Themes/kde44-Real-Time-scalable-iconthemes-blackysgate
-rwxr--r--  1 blackcrack users         393 Feb 10  2014  Konqueror.desktop
drwxr-xr-x  3 blackcrack users        4096 Sep 25  2014  .local
-rw-r--r--  1 blackcrack users        6519 Feb 27  2015  login.txt
drwx------  3 blackcrack blackcrack   4096 Mai 31  2015  .macromedia
-rw-rw-r--  1 blackcrack users           0 Nov 21  2013  .mdk-menu-migrated
drwxr-xr-x  2 blackcrack users        4096 Mai 31  2015  .MdkOnline
lrwxrwxrwx  1 blackcrack users           6 Mär 31  2017  media -> /media
lrwxrwxrwx  1 blackcrack blackcrack     75 Mai 23  2017  media-private -> /media/WD40EFRX-68W/users/Blackys-Sicher/apps-links-save/save/media-private
drwx------  5 blackcrack users        4096 Dez 10  2017  .mozilla
drwxr-xr-x  2 blackcrack users        4096 Sep  5  2015  Musik
lrwxrwxrwx  1 blackcrack users           4 Mär 31  2017  .nv -> /tmp
-rw-rw-r--  1 blackcrack users        1668 Jul  6  2016  .nvidia-settings-rc
drwxr-xr-x  2 blackcrack users        4096 Mai 16  2017  Öffentlich
-rw-rw-r--  1 blackcrack users          12 Mai 31  2015  .oma-welcome
drwx------  3 blackcrack blackcrack   4096 Mai  5 18:47  .pki
-rwxr--r--  1 blackcrack users      121510 Feb 11  2017  png2svgz-realtime.sh
drwxrwxr-x  4 blackcrack users        4096 Sep  9  2015  .qmmp
drwxr-xr-x  3 blackcrack users        4096 Mai 31  2015  .rcc
-rw-------  1 blackcrack users         773 Mär 23  2017  .recently-used
drwxr-xr-x  3 blackcrack blackcrack   4096 Mär 28  2018  Schreibtisch
drwx------  2 blackcrack blackcrack   4096 Jan 18  2018  .ssh
lrwxrwxrwx  1 blackcrack blackcrack     46 Jun 14  2017  Texte -> /media/WD40EFRX-68W/users/Blackys-Sicher/Texte
drwxrwxr-x  6 blackcrack blackcrack   4096 Okt 27  2017  .themes
drwx------  4 blackcrack users        4096 Jun 20  2015  .thumbnails
drwx------  2 blackcrack users        4096 Jul  6 12:29  tmp
-rw-rw-r--  1 blackcrack blackcrack     81 Jan  7  2018  -type
drwxrwxr-x  3 blackcrack blackcrack   4096 Feb  1  2018  VBOX
drwxr-xr-x  5 blackcrack users        4096 Sep 24  2017  Videos
drwxr-xr-x  2 blackcrack users        4096 Mai 31  2015  Vorlagen
-rw-rw-r--  1 blackcrack users         327 Feb 15  2017  .wget-hsts
drwxrwxr-x  4 blackcrack users        4096 Feb 20  2015  www
-rw-------  1 blackcrack blackcrack     60 Okt 27  2015  .xauth4qXSrG
-rw-------  1 blackcrack blackcrack     60 Mär 11  2017  .xauthn0CgDT
-rw-------  1 blackcrack blackcrack    647 Jul 15 15:53  .Xauthority
drwx------  4 blackcrack users        4096 Mär 16  2016  .xchat2
-rw-rw-r--  1 blackcrack blackcrack     13 Jun 17  2018  .xinitrc
-rw-------  1 blackcrack users       56304 Okt  1  2017  .xsession-errors
-rw-------  1 blackcrack users       55369 Mai 16  2017  .xsession-errors-:0
[blackcrack@blackysgate ~]$

so, why this "users" and "blackcrack" as groups..
this comes, because there was build first the user Blackcrack+group "users"
later was build up a own group witch name "blackcrack" for the user blackcrack,
then have the user logged in again and the programms have create config-files and folders with the head group "blackcrack",
this is the reason, why 2 different groups here used .

[next Step]
Build up a api-translater for connecting to Linux as emulated Linux-server or emulated Linux-client,
this works if we use the Windows Users and Windows-groups and translate it in the UID and GID of
the actually used Linux-Version, why, different Linux-versions have different UID's and GID's

because this, must first start with a Users UID/GID - Administrations platform,
where it is possible to configuring the Windows-Users with/to the UID's and GID's
for the Users where want connect to a linux-system.

This can name, Win-Linux-connector or UID/GID-User and Group Configurator
which gives programming-api's to snapin/plugin's like
nfs-client or nfs-server and or apache or other later who makes possible
to let run a linux-subsystem with even this UID/GID-Information's
with this is it possible to have any user in WinNT an own linux-console with the configured UID and GID

is we looking on the groups :

[blackcrack@blackysgate ~]$ more /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:
news:x:13:
uucp:x:14:
man:x:15:
floppy:x:19:
games:x:20:
tape:x:21:
cdrom:x:22:
utmp:x:24:
shadow:x:25:
chkpwd:x:26:
auth:x:27:
messagebus:x:28:
nscd:x:29:
scanner:x:30:
utempter:x:35:
usb:x:43:saned
ftp:x:50:
lock:x:54:
cdwriter:x:80:saned
audio:x:81:
video:x:82:
dialout:x:83:
screen:x:84:
users:x:100:
input:x:101:
nogroup:x:65534:
systemd-journal:x:999:
nobody:x:997:
systemd-network:x:996:
systemd-timesync:x:994:
systemd-coredump:x:998:
systemd-resolve:x:995:
saned:x:993:
polkitd:x:992:
lpadmin:x:991:
avahi:x:990:
avahi-autoipd:x:989:
rpc:x:988:
rtkit:x:987:
mlocate:x:986:
abrt:x:985:
openvpn:x:984:
ssh_keys:x:983:
usbmux:x:982:
davfs2:x:981:
mysql:x:980:
rpcuser:x:979:
uuidd:x:978:
sddm:x:977:
colord:x:976:
machines:x:421:
sshd:x:420:
network:x:1002:
storage:x:1003:
sambashare:x:1004:
blackcrack:x:1000:
apache:x:419:
memcached:x:418:
mailnull:x:975:
smmsp:x:974:
vnstat:x:973:
xgrp:x:417:
ntools:x:416:
ctools:x:415:
kvm:x:972:
render:x:971:
nm-openvpn:x:414:
vboxusers:x:413:blackcrack
redis:x:412:
clamav:x:970:
[blackcrack@blackysgate ~]$

exist the group "users" with ID 100 so GID 100
and the group "blackcrack" with id (GID) 1000

if we now looking on vboxusers, is blackcrack member of the vboxusers =
vboxusers:x:413:blackcrack
and the vboxusers have the GID 413 and the user blackcrack is member
this was also on the GID "users=100" it was:
users:x:100:blackcrack , but i have remove it as root
and have create
blackcrack:x:1000:

what is now the headgroup of blackcrack
 

[blackcrack@blackysgate ~]$ more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/bin:/bin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/var/spool/news:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/var:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
messagebus:x:28:28:nscd:/:/sbin/nologin
nscd:x:29:29:nscd:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:997:997:Nobody:/:/sbin/nologin
systemd-network:x:996:996:systemd Network Management:/:/sbin/nologin
systemd-timesync:x:994:994:systemd Time Synchronization:/:/sbin/nologin
systemd-coredump:x:998:998:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:995:995:systemd Resolver:/:/sbin/nologin
saned:x:993:993:system user for sane:/etc/sane.d:/bin/false
polkitd:x:992:992:system user for polkit:/usr/lib/polkit-1:/sbin/nologin
avahi:x:991:990:system user for avahi:/var/avahi:/bin/false
avahi-autoipd:x:990:989:system user for avahi:/var/avahi:/bin/false
rpc:x:989:988:system user for rpcbind:/var/lib/rpcbind:/sbin/nologin
rtkit:x:988:987:system user for rtkit:/proc:/sbin/nologin
abrt:x:987:985:system user for abrt:/etc/abrt:/sbin/nologin
openvpn:x:986:984:system user for openvpn:/var/lib/openvpn:/bin/true
usbmux:x:985:982:system user for usbmuxd:/proc:/sbin/nologin
davfs2:x:984:981:system user for davfs2:/run/mount.davfs2:/bin/false
mysql:x:983:980:system user for mariadb:/srv/mysql:/sbin/nologin
rpcuser:x:982:979:system user for nfs-utils:/var/lib/nfs:/bin/false
uuidd:x:981:978:system user for util-linux:/var/lib/libuuid:/bin/false
sddm:x:980:977:system user for sddm:/var/lib/sddm:/bin/false
colord:x:979:976:system user for colord:/var/lib/colord:/sbin/nologin
sshd:x:978:420:system user for openssh:/var/empty:/bin/true
blackcrack:x:1000:1000:blackcrack:/home/blackcrack:/bin/bash
apache:x:977:419:system user for php:/var/www:/bin/sh
memcached:x:976:418:system user for memcached:/dev/null:/bin/false
mailnull:x:975:975:system user for sendmail:/var/spool/mqueue:/dev/null
smmsp:x:974:974:system user for sendmail:/var/spool/mqueue:/dev/null
werkstatt:x:1003:100:werkstatt:/home/werkstatt:/bin/bash
vnstat:x:973:973:system user for vnstat:/var/lib/vnstat:/sbin/nologin
nm-openvpn:x:972:414:system user for networkmanager-openvpn:/var/lib/openvpn:/bin/false
redis:x:971:412:system user for redis:/var/lib/redis:/sbin/nologin
clamav:x:970:970:system user for clamav:/var/lib/clamav:/bin/sh
[blackcrack@blackysgate ~]$

what is :
blackcrack:x:1000:1000:blackcrack:/home/blackcrack:/bin/bash

this meant's blackcrack is xecutable with uid and gid in group blackcrack
the homedir is /home/blackcrack and the prompt is bash

so, this UID must be translated, the homedir can be %USERPROFILE% and
the linuxprompt can be via gnuutils bash.exe
and the UID and GID can be setted up from WinNT-Admin and can serve as a connector
to the "nfs-client"-plugin/snapin and or to nfs-server-plugin/snapin

we can also write a plugin/snapin-client of ldap from linux, for linux
with this UID/GID Administration-center for WinNT with this
have we a ground-configuration for connecting or serve for or from linux-distriebution.

and maybe also a (networkinformationservice about uid/gid) nis/yp/nis+ or nisplus server
for others Linux-Systems or easy as client for the UID/GID configuration for the "UID/GID-Admincenter"
in any WinNT-Systems, so now back to nfs..

With UID and GID grows up and goes down all Linuxsystems imho it's the heart by side of the Linuxkernel to have a user and Groups administration possibility..

this must we have first have in WinNT to administration the users and groups to have a possible for starting up a Administration-pyramyde and give linuxlike User and Group API in WinNT,

if we have this, can we start to build up a nfs-client, bvecause, this client gives easy the id of the connector (group and User id's)
therewith it is also possible userindepended free space... because the files be mapped to the users:group and possible
read/write/execute-rights 644 for user,group,all
if we see this :

chmod 664
-rw-rw-r-- 1 blackcrack blackcrack 13 Jun 17 2018 .xinitrc
or the folder
directory = d
chmod 751
d-read-write-xecute _ xecute-read_xecute(notread)
drwxr-xr-x 5 blackcrack users 4096 Sep 24 2017 Videos

xecute(notread) is well for apache, to read out the folder behind,
therewith can you go into..and again cd folderbehind, which can be readable too..

like i told, all starts and end with UID/GID,
if we have the UID mapped to the username and group
(default can be 100=users and 0=Administrator=root (roothave every fully connect,
as group and users are "0" and can do all..

i hope the explaining it helps a bit...

give me feedback..

best regards
Blacky



#5 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 15 July 2019 - 04:45 PM

Makes perfect sense : map the local (windows) user database to the remote (linux or else) user database.

However, this is a hell of a job and I could consider it later only if the tool become popular.

Good news : Dokan API's are there to possibly enable such a scenario.

 

For now, I have removed the hardcoded uid=0/gid=0 so that the user can input this on the command line.

Not providing any uid/gid will probably make it so that you end up using a guest account (defined on the remote side).

 

Syntax currently is :

NFS_DOKAN.exe /r "nfs://192.168.1.248/volume1/download/" /l x

or

NFS_DOKAN.exe /r "nfs://192.168.1.248/volume1/download/?uid=0&gid=0" /l x (up to you then to know which UID/GID is available on the remote server).



#6 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 15 July 2019 - 05:27 PM

I have no nfs on network, so cannot test it, but there is already AFAICT a nfs driver via dokany:

https://github.com/D...sbuild-scripts/

https://github.com/sahlberg/fuse-nfs

 

It may be useful to have a comparison between the two (unless the above, as unfortunately many projects revolving around dokan/dokany are, is a joke/half@§§ed/good_for_nothing/unfinished/PPOC).

 

Talking of which (joke/half@§§ed/good_for_nothing/unfinished/PPOC) what would be useful would be making this:

https://code.google....e/p/winunionfs/

into something actually working.

 

:duff:

Wonko



#7 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 15 July 2019 - 05:53 PM

Wonko the Sane, on 15 Jul 2019 - 7:27 PM, said:

I have no nfs on network, so cannot test it, but there is already AFAICT a nfs driver via dokany:
https://github.com/D...sbuild-scripts/
https://github.com/sahlberg/fuse-nfs

It may be useful to have a comparison between the two (unless the above, as unfortunately many projects revolving around dokan/dokany are, is a joke/half@&sect;&sect;ed/good_for_nothing/unfinished/PPOC).

Talking of which (joke/half@&sect;&sect;ed/good_for_nothing/unfinished/PPOC) what would be useful would be making this:
https://code.google....e/p/winunionfs/
into something actually working.

:duff:
Wonko


Hi Wonko,

Indeed, I had spot the other dokan/nfs initiatives but could not use it / build it.
Note that this does not reflect on the solution itself : it may be good work but from a user point of view, I could not get very far with it (my skills with c langage being limited).

So I decided to give it a go myself with Dokan and to deliver a (normally...) working solution "out of the box".
Extract the binary from the zip file and "just run" it.
The driver installation can be made manually (batch provided) or thru the official installer.
Only a x86 version is provided so far thus (which should not be a pb apart from pure winpex64).

The objective was also to get familiar with Dokan and possibly consider new projects in the future.
The approach there (file system driver) is different compared to other drivers like ImDisk (being a disk driver).
This time you only need to know a very few filesystem apis like createfile, readfile, writefile, etc to quickly deliver a new solution.

Using 7zip for example on top of Dokan to interface many of the 7zip supported fileformats is probably a piece of cake now. (or it is just me over selling it :) ).

About winunionfs, is not this kind of similar to DFS ?

Google link did not work : try this one https://github.com/alur/WinUnionFS ?

Or achieve the same with junctions?

 

From a Dokan perspective, merging 2 folders (or more) into one logical drive seems reasonaly easy.

I fail to see an application or benefit thus (i.e compared to junctions or DFS).

Regards,
Erwan



#8 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 15 July 2019 - 06:51 PM

I don't know. :w00t:

 

When it came out Dokan was fantastic news, but soon the only people using it came out as either being Commercial (using Dokan to interface to this or that wannabe google drive of sorts) or kids (only having some fun).

 

Not only these half@§§ed projects do not work, or work only in a very limited and narrow case, being the good programmers they are, the Authors left mostly the compiling to the final user (and - as you well know - compiling any project without extremely detailed settings and the same, specific compiler the Author used is a nightmare or downright impossible, even for people familiar with coding) and "took the name".

 

The link I posted is what is resolved. at least here, to:

https://code.google....e/p/winunionfs/

but in its original form:

https://code.google.com/p/winunionfs/

is from the page you posted a link to (Dokany/Dokan-dev):

https://dokan-dev.github.io/

among the examples of projects using Dokan/Dokany.

 

Now, that project is circa 2010, and from the wiki:

https://code.google....Experience.wiki

it is clear that it is half threequarters-@§§ed and abandoned, and worked only once (and poorly even in that occasion) on the specific simplified setup of the developer.

 

The one you found seems a lot like another (undocumented) half-@assed fork, with the addition of a 64 bit version (maybe) the actual original project is this one:

https://github.com/nkzxw/winunionfs

(which I believe being verbatim the one on google code) or maybe this one:

https://github.com/k...ages/winunionfs

 

All in all, not only the "project":

1) doesn't work
2) cannot be compiled
3) even if it was compiled and it would work, it would work only in an extremely limited way

bit also:

4) it is "advertised" on Dokan-dev/Dokany as a project (it isn't one)

5) takes the "namespace" of WinUnionFS (or of Union FS for Windows) so anyone looking for the actual thing (a UnionFS-like filesystem for windows) will before or later land on these pages, find out that they are all jokes and become disgusted (as I became personally) with Dokan/Dokany generically.

 

You cannot really-really (you can make something similar, but not exactly AFAICT) replicate how UnionFS works with mountpooints/junctions:

https://en.wikipedia.org/wiki/UnionFS

or (nowadays) with OverlayFS

The thing that is nearest on Windows is - I believe - the UWF that was in 8 embnedded and is now - again I believe - in 10 Enterprise only:

https://docs.microso...rise/uwfoverlay

 

Sorry for the rant and for going off-topic. :(

 

:duff:

Wonko



#9 Blackcrack

Blackcrack

    Frequent Member

  • Advanced user
  • 458 posts
  •  
    Germany

Posted 15 July 2019 - 07:03 PM

Hi Wonko,

 

virtualbox helps also, you can make a networkbridge and therewith have you a computer in the "internally" network via vbox too,

in this computer can you install fedora, Suse, or an other distro what you like.. nfs-utils or nfsutils installed,

 

systemctl enable nfs-server.service

systemctl start nfs-server.service

 

or something (tab-tab give you a help)

 

and in the /etc/exports can you put a nfs path (man nfs / man exports)

with exportfs do you see the exported file systems :

Last login: Mon Jul 15 15:53:09 2019 from 192.168.0.2
[blackcrack@blackysgate ~]$ su -
Passwort:
[root@blackysgate ~]# export
export    exportfs  
[root@blackysgate ~]# exportfs
/media/WD40EFRX/linux
                192.168.0.2/21
/media/WD40EFRX/daten
                192.168.0.2/20
/media/WD40EFRX/games
                192.168.0.2/20
/media/WD40EFRX/grafic
                192.168.0.2/20
/media/WD40EFRX/media
                192.168.0.2/20
/media/WD40EFRX/server
                192.168.0.2/20
/media/WD40EFRX/users
                192.168.0.2/20
/media/WD40EFRX/windows
                192.168.0.2/20
/home           192.168.0.2/20
[root@blackysgate ~]#
 
and therewith have you a nfs-server... my /etc/export looks so :
 
[code]
[root@blackysgate ~]# more /etc/exports
# generated by drakhosts.pl
/media/WD40EFRX/linux 192.168.0.2/21(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
/media/WD40EFRX/daten 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
/media/WD40EFRX/games 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
/media/WD40EFRX/grafic 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
/media/WD40EFRX/media 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
/media/WD40EFRX/server 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
/media/WD40EFRX/users 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
/media/WD40EFRX/windows 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
/home/ 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
#/usr/share/owncloud/themes/ 192.168.0.2/20(root_squash,anonuid=65534,anongid=65534,sync,insecure,no_subtree_check,rw)
[root@blackysgate ~]#

 

is naturally behind a firewall *bg*

 

all nfs-servers works same, it's one and the same nfs-utils package by all distributions.. more or less actual .. but it's the same ..

 

a linuxserver is a bit more faster and use less stream but a WinNT is better for workstation ..

the blackysgate.net is my linuxserver in the basement..over selfhost.de

 

best regards

Blacky



#10 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 15 July 2019 - 07:20 PM

When it came out Dokan was fantastic news, but soon the only people using it came out as either being Commercial (using Dokan to interface to this or that wannabe google drive of sorts) or kids (only having some fun).

I surely do not fall in the commercial category, So I must fall in the "kid" category !
I'll allow you to do so only because I know you are much older than I am ;)

Not only these half@§§ed projects do not work, or work only in a very limited and narrow case, being the good programmers they are, the Authors left mostly the compiling to the final user (and - as you well know - compiling any project without extremely detailed settings and the same, specific compiler the Author used is a nightmare or downright impossible, even for people familiar with coding) and "took the name".

I can swear that "mine" works and you wont have to compile anything : i usually provide a binary with my source code as I know how frustrative (reading you) it can be to fall upon something that looks like but actually cannot be used.

You cannot really-really (you can make something similar, but not exactly AFAICT) replicate how UnionFS works with mountpooints/junctions:
https://en.wikipedia.org/wiki/UnionFS

or (nowadays) with OverlayFS

The thing that is nearest on Windows is - I believe - the UWF that was in 8 embnedded and is now - again I believe - in 10 Enterprise only:

https://docs.microso...rise/uwfoverlay

I'll have a look - If I can find some possible use (for my selfish self), I may give it a try.

Sorry for the rant and for going off-topic. :(

Always a pleasure ;)

As a whole, at first look, I am quite positive with Dokan : it is nicely documented and really easy to use.
It did not take me long before I could get a logical drive to show in my explorer and my nfs export to be reachable.
I personally feel there is definitely a nice potential for this community for filesystem oriented projects as again with only small knowledge and with several possible langages (freepasal, c++, etc ...), one can quickly deliver a working solution.

Now again, it does not compete with Imdisk/Arsenal and other solutions but rather focuses on the filesystem.
There are not so many alike projects out there : winfsp, cbfs ... and not all them are opensource/free/maintained.

Dont get me wrong, I am not selling anything there.
Just sharing my enthousiasm about another free/opensource solution which may (or not) lead to new projects we sometimes discuss over here.

Cheers,
Erwan

#11 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 16 July 2019 - 09:55 AM

You misread me :), I was talking of the Dokan based projects BEFORE yours, that came out soon after it was released and in the first few years, i.e. circa 2006-2011, I know you enough to know that - no matter the tools you use - you have the knowledge and capabilities (time permitting) to deliver, good, solid, actually working programs.

The main issue about the Dokan "projects" IMHO is that - still today - they are listed as "projects" on the home page of Dokan dev/Dokany (presumably as a show off of the potentialities) when they are not of any use and are actually (still IMHO) counter-productive for the diffusion of the (good) Dokan library.

The real fact is that:
1) kernel drivers are complex/difficult
2) filesystems are also complex/difficult

even if - thanks to Dokan - #1 is simplified, programmers wanting to tackle the problems need a lot of time, dedication and knowledge to make something actually working.

Personally (and from the outside) I see more potentialities (for drivers) in this:
http://sysprogs.com/legacy/bazislib/
but, apart from the (IMHO good) sample by the Authors, WinCDEMU which I like a lot:
http://wincdemu.sysprogs.org/
seemingly noone has adopted it for development.

For filesystems, Dokan should be - as you found out - the best choice, though there was an even (IMHO) more promising solution:
https://web.archive....smotec.com/pfm/
that as well no programmer ever adopted/used (JFYI).

:duff:
Wonko
 



#12 Blackcrack

Blackcrack

    Frequent Member

  • Advanced user
  • 458 posts
  •  
    Germany

Posted 16 July 2019 - 05:56 PM

maybe it's more better a pluginsystem, at the ID(GUD/UID)-Administrationssystem-for Linuxlike User and Group Handling
or just maybe as name ID-Administration with plugins/or snapins like xmplay / winamp dll's and so which can copy in a subdirectory as administrator,
so "ID-Administration and Plugins/Snapins"
and a snapin/plugin could be a nfs.dll+NFS_DOKAN.exe where be both files easy copy in a .\snapins\NFS_DOKAN\

just as a idea suggestion ;)

or maybe
 
.\LWtools\ 
.\LWtools\idadmin.exe                            // GID and UID Handler/Translater to the Users +  snapin and plugin handler
.\LWtools\snapins\NFS_DOKAN\lw-nfs.dll           //Snapin which handles NFS_DOKAN.exe and the UID/GID of the mapped user from idadmin
.\LWtools\snapins\NFS_DOKAN\NFS_DOKAN.exe
.\LWtools\snapins\7zip-fs\lw-7zip.dll
.\LWtools\snapins\7zip-fs\7-zip.dll              //x86_64
.\LWtools\snapins\7zip-fs\7-zip32.dll            //x86
.\LWtools\snapins\7zip-fs\7z.exe
.\LWtools\snapins\7zip-fs\7zG.exe
  • make it possible to read from ./ or ./../ so UNC-Path like in Linux/Unix like systems
  •  read in all dll in and load ./snapins with lw-*.dll
edit: updated the suggestion at 2019.07.18      (YYYY.MM.DD)
 
best regards
Blacky




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users