[How To] UFS read/write on OMV and share folders

  • Hi,


    I'm looking for migrating from freenas 7, and I'm trying OMV.


    At the moment I don't want to kill and recreate my raid which is an UFS raid 10 managed by an adaptec 6805 hardware raid adapter.
    That's why I needed to set up an OMV instance with RW (Read/Write) access to my raid to experience it before migrating.


    I would quickly explain how I have successfully done it with a little trick to use it as shared folders.
    This is intended for quite experienced users, as it is not officialy supported by OMV and Debian.


    Hope it will be useful for some people...


    1 - UFS in RW mode


    UFS disk is recognized by Debian (thanks to the RO module included in the kernel) : OK
    OMV show the disk in webgui : OK
    OMV does not allow to mount it in webgui : KO
    As stated in this issue :
    http://bugtracker.openmediavault.org/view.php?id=550

    Zitat


    The UFS filesystem does not provide a FS UUID, thus it is not possible to use it in OMV as it is designed.


    So you need to manually edit your fstab for mounting the disk in ro :

    Code
    /dev/sda1       /mnt/raid10_6to ufs     auto,ro,ufstype=ufs2    0       0


    Reboot, or mount the disk. In my case :

    Code
    mount /mnt/raid10_6to


    Now, the disk is mounted and OMV show the disk as mounted in webgui : OK


    But, the disk could only be mounted in ro mode, if we try in rw mode : KO

    Code
    kernel: [ 1173.016333] ufs was compiled with read-only support, can't be mounted as read-write


    Ok nevermind, we're going to compile our kernel with read/write support for UFS !
    Thanks goes to Ignace M -ghantoos- : http://ghantoos.org/2009/04/04…in-readwrite-under-linux/


    Note :
    I was surprised how much space is needeed during the kernel build with a huge number of modules.
    In fact I needeed about 8Gb of free space, so that's why I built it on a virtual disk created just for this.


    Code
    # install needed packages, and kernel sources
    apt-get install ncurses-dev kernel-package linux-source-2.6.32 build-essential
    # extract the kernel sources
    cd /usr/src
    bzip2 -dc linux-source-2.6.32.tar.bz2 | tar xf -
    cd linux-source-2.6.32
    # copy current OMV kernel config
    cp /boot/config-2.6.32-5-amd64 .config


    Edit the kernel config, you need to find this lines :

    Code
    vi .config
    ...
    CONFIG_UFS_FS=m
    # CONFIG_UFS_FS_WRITE is not set
    # CONFIG_UFS_DEBUG is not set
    ...


    And modify them to :

    Code
    ...
    CONFIG_UFS_FS=m
    CONFIG_UFS_FS_WRITE=y
    # CONFIG_UFS_DEBUG is not set
    ...


    Now let's go with the build itself

    Code
    # only needed if you want to cutomize your kernel config more
    make menuconfig
    # we start by a clean
    make-kpkg clean
    # then we  build.
    # here i used the 2 cpu of my vm (CONCURRENCY_LEVEL=2), and added a custom tag for the kernel version (--append-to-version=-45-amd64-ufs)
    CONCURRENCY_LEVEL=2 make-kpkg --initrd --append-to-version=-45-amd64-ufs kernel_image kernel_headers
    # ok, waiting for the kernel to build...


    Once done, you'll get a fresh kernel image debian package ready to be installed

    Code
    <02:38:41>[root@openmediavault:~]# ls -lh ../
    total 28M
    -rw-r--r-- 1 root root 28M Aug 27 20:39 linux-image-2.6.32-45-amd64-ufs_2.6.32-45-amd64-ufs-10.00.Custom_amd64.deb


    So let's go, install it, make all necessary changes and update grub

    Code
    dpkg -i linux-image-2.6.32-45-amd64-ufs_2.6.32-45-amd64-ufs-10.00.Custom_amd64.deb


    Before reboot, modify the fstab to mount our UFS disk in rw mode :

    Code
    /dev/sda1       /mnt/raid10_6to ufs     auto,rw,ufstype=ufs2    0       0


    Reboot.
    The new kernel should be the default first line of the grub menu, so you can let it boot.
    In case of problem, just boot your OMV original kernel by selecting the right grub line.


    Note : You can remove needeed packages we installed for building the kernel, they are not needeed anymore (not needeed to install the kernel image package too)

    Code
    apt-get --purge remove build-essential bzip2 dpkg-dev g++ g++-4.4 gettext intltool-debian kernel-package libcroco3 libdpkg-perl libstdc++6-4.4-dev libtimedate-perl libunistring0 linux-source-2.6.32 make patch po-debconf


    You're done, your kernel has now rw support for UFS : OK




    2 - UFS folders as shared folders in OVM


    Now we want to use UFS ressources as shared folder : KO
    It's not possible in OMV, for same reason as before and stated in this issue :
    http://bugtracker.openmediavault.org/view.php?id=550

    Zitat


    The UFS filesystem does not provide a FS UUID, thus it is not possible to use it in OMV as it is designed.


    But there is something that should work...


    If we have another fs, ie an ext3 fs mounted in OMV, we should be able to make some mount bind of UFS folders in ext3 fs !

    Code
    /mnt/raid10_6to/home    /media/454e007c-5d3d-48f0-9144-f766e063873e/home        bind    defaults,bind   0       0


    Just be sure to include this mounts after the others fs mounted by OVM, ie :

    Code
    ...
    # >>> [openmediavault]
    UUID=454e007c-5d3d-48f0-9144-f766e063873e /media/454e007c-5d3d-48f0-9144-f766e063873e ext3 defaults,acl,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 2
    # <<< [openmediavault]
    /mnt/raid10_6to/home    /media/454e007c-5d3d-48f0-9144-f766e063873e/home        bind    defaults,bind   0       0


    Then, we could use the other fs mounted disk/partition in OMV as usual, and create shared folders for the folders we have bind mounted, tadaaaaa !


    You're done, you could use UFS folders bind mounted as shared folders through others fs folders : OK

  • Thank you for this guide, I''ve been trying to do something similar, as I have come from NAS4free with a UFS drive (one of my external backup drives I used to backup my ZFS RAID). I only required it mounted as RO therefore, as I wanted to just pull the data off onto my new OMV ext4 RAID. Unfortunately it refused to mount using your instructions and I was unable to proceed. Hunting around I found this guide: http://www.cyberciti.biz/faq/h…-freebsd-ufs2-filesystem/ and this allowed me to mount the drive immediately and copy from it.


    I hope you don't mind me posting this here, but in case anyone else is unable to get a correctly mounted RO UFS drive, it might help them out.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!