unionfs-fuse for DreamOS

  • Nachdem mir die Aussage das der Kernel der DreamOS boxen zu alt fürs overlay Filesystem und zu neu fürs unionfs auf den * geht, habe ich OoZooN gebeten den fuse Treiber bei seinen DreamOS Images fix in den Kernel zu machen.


    Dann funktioniert das unionfs für Userspace OHNE runterladen des kernel drivers und modprobe fuse, etc...


    Einfach das jeweilige deb aus dem Anhang installieren und schon klappt das mit dem unionfs-fuse binary zu mounten.


    Man Page gibt es hier


    Viel Spass beim Testen ;)


    LG

    gutemine


    PS: Die binaries sind statisch gelinked damit keine dependencies nötig sind.


    PPS :Wer KEIN aktuelles OoZooN Image auf der box hat muss leider auch noch das machen:

    Code
    1. apt-get update
    2. apt-get install kernel-module-fuse


    Und dann vor jedem verwenden des unionfs-fuse halt auch noch den Treiber laden mit:


    Code
    1. modprobe fuse
  • Anbei auch noch die beiden fuse utilities mount.fuse und fusermount, damit funktioniert dann auch das mount.unionfs aus dem obigen Kit und man kann unionfs mounts auch in die /etc/fstab machen und wie jedes andere Filesystem auch beim booten mounten (sofern man eben ein OoZooN Image hat wo man das fuse modul nicht nachladen muss)


    LG

    gutemine

  • Hi ...

    I have tried this method but can not succeed


    mount -t unionfs -o dirs = / media / hdd / usr: / usr = ro none / usr


    I need to mount

    / usr to / media / hdd / usr ..

    and make

    / usr as read only ..

    Do you have any idea ?!


    Thank you

  • I have already read the man page ..

    here is code inside my plugin ..

    And here is out put of cat /proc/mounts (there is no unionfs mount)

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von fairbird ()

  • Yes exactly I need to make (unionfs for userspace) .

    can I please to write an example as a suggestion?!

    I have read the man page and tried more things but I can not succeed .

    Thank you

  • This is the plugin work correctly .. To make new user on usb flash with mount /usr directory with read only .


    Before on my dm800se I have use this command after install kernel-module-unionfs

    Code
    1. out.write('mount -t unionfs -o dirs=%s:/usr=ro none /usr > /tmp/jump.tmp\n' % path2)

    and if dm920 have new kernel such as 3.18 i can use this command

    Code
    1. out.write('mount -t overlay overlay -o lowerdir=/usr,upperdir=%s,workdir=%s /usr > /tmp/jump.tmp\n' % (path2, pathw))

    But with kernel 3.14 as you know there is no (unionfs or overlay)


    I have try that an example on man page but doesn't work unionfs mount.

    maybe I make wrong command. So I have ask your help.

  • maybe you should simply not ignore my advices?


    maybe you should sinply not have spent so much time patching my Plugins and tools to support clones?


    Code
    1. mkdir /tmp/usr
    2. unionfs-fuse -o cow /usr=RO:/media/hdd/usr=RW /tmp/usr
  • No ...

    -I'm not ignore your advises at all.

    -Yes your are right before I have clone boxes and supported (I'm so sorry) But now my box genuine and I will never support clone (It is wasting me time) ز


    I will try your code ... and see what happen .


    One more thing .. I try to find any topic to your (swaproot) tool . Where can I ask you about it ?!


    Thank you

  • well, if you would READ the manual it would work also with mount.fuse or even mount.unionfs.

    Code
    1. mount.fuse unionfs#/usr=RO:/media/hdd/usr=RW /tmp/usr -o cow


    and you are insisting to ignore advice that what you are doing is a s*y idea :(


    BUT we should not give orders to Kreacher =O

  • I'm not ignore your's advice.

    But the plugin need that method ..

    for example I have three user in plugin ..

    If I want to jump to some user (I need to make mount as (ro) from /usr to (rw) /universe/user) In this case the (/universe/user) can read all files from /usr but If I install any things It will be only on (/universe/user) not on (/usr) ..


    here is my code

    but the problem is now If I jump to new user the unionfs mount to old user still working and I make new cmd to make it umount .

  • I already told you that recursive mounts of /usr in user space is NOT a godd idea, and this way to implement it is even worse.


    I don't have a problem if you make users on other boxes or Images with this approach "happy", but I will not help you to do it this way on DreamOS. if you are not able to find your way on how to do what you try to achieve properly (!) insisting on it will NOT change my opinion.


    BTW there is a reason (!) why unions-fuse also has a chroot option, which brings me back to my comment that you are NOT willing to READ and try to understand what the documentation says.

  • Hi, gutemine

    Still mount not work probable with me ..

    if I use this command

    Code
    1. mount.fuse unionfs#/usr=RO:/media/hdd/usr=RW /tmp/usr -o cow

    or this

    Code
    1. unionfs-fuse -o cow /usr=RO:/media/hdd/usr=RW /tmp/usr

    If found the mount on (/media/hdd/usr) but If I add some for example script on (/media/hdd/usr/script) panel can not detect.

    before with old kernel on 800se I have use kernel of unionfs with this command

    Code
    1. mount -t unionfs -o dirs=/media/hdd/usr:/usr=ro none /usr

    and if I install or add any files on (/media/hdd/usr) not moving to /usr because /use mount as read only but image can read it files from (/media/hdd/usr) if I install skins or scripts or plugins ...etc. Image can find it and I can use it normally.

  • Look, it works as it should and if you are not willing to accept this it is not my fault:


  • I know exactly what you means and advised to me (It is very clear)

    But the problem is image can not read files from that mount part (/media/hdd/usr)


    Try to send any script to (/media/hdd/usr/script) and open script panel, can you find it ?!


    That is should be my plugin job to do.

    Make new user on hdd with my privet files such as scripts, emus, plugins ..etc

    an keep it on /hdd only not moving to /usr and in same time image can read (/media/hdd/usr)

    same as /usr


    See my job now ..

    Code
    1. root@dm920:~# mkdir /media/hdd/usr
    2. root@dm920:~# mount.fuse unionfs#/usr=RO:/media/hdd/usr=RW /tmp/usr -o cow

    and I have install skin

    Code
    1. root@dm920:~# ls /media/hdd/usr/share/enigma2/GoliathHD
    2. RAED extensions menu skin.xml
    3. WeatherIcon fonts menu_icons skin_default
    4. buttons icons picon_default.png
    5. cover_default.png main_menu prev.png

    But image can not detected skin from mount point of (/media/hdd/usr)




    Thank you

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von fairbird ()

  • You are still not understanding what a userspace driver ist and you are ignoring my comments.


    And why should e2 detect something on /tmp/usr ???


    And I will NOT repeat my argument a fourth time that this is a dumb idea to implement it this way.

  • Ok. If that method not good.

    Then do you have another method to compensate?

    I need to mount /usr to /hdd/usr ..

    /usr (as read only to read all continues of /usr)

    /media/hdd/usr (as read/write to install privet files and image can read it)

    exactly as old method with old kernel on 800se I have use kernel of unionfs with this command

    Code
    1. mount -t unionfs -o dirs=/media/hdd/usr:/usr=ro none /usr

    I don't know why kernel drop unionfs from kernsl 3.14 and also did not put overlay.

  • If you would read the linux kernel discussion on that issue you would not need to ask, but if you insist in spoon feeding you are not at the right place with me.


    If now already wrote 3 times that a recusive mount of /usr is a sh*y idea and in user space it is even worse.


    And NO I will NOT tell you better and more portable ways to achive what you try do to, especially as it is pretty obvious WHY you want to do it.