Jump to content

Ядерный nfs сервер на кинетике


Recommended Posts

17 часов назад, psbnt сказал:

nfs-kernel-server на kn-1810 с ОС 3.1.6 выдает:

rpc.mountd[3547]
/opt/nfs is not a directory or regular file

Железка? Версия пакета?

Пробовали ли запустить rpc.mountd с помощью strace? Выхлоп strace на pastebin plz.

Link to comment
Share on other sites

6 часов назад, zyxmon сказал:

Гадалки в отпуске - расшифруйте. После обновы пакета кинетика или после обновы прошивки?

Кинетик точно обновился - с 3.1.6 до 3.1.7. Пакеты тоже недавно обновлялись, но не помню, относились ли они к rpcbind. В течение недели же в репе этот пакет не обновлялся? Точно помню, что неделю назад шара работала, в течение недели обновился на новую прошивку, так же обновлял пакеты. Но обновляю их не реже раза в неделю. Мне кажется, дело не в пакетах. 

Linux Keenetic_Giga 4.9-ndm-3 #2 SMP Mon Oct 7 17:59:49 MSK 2019 mips GNU/Linux (Giga 1010)

# rpc.mountd -v
rpc.mountd version 2.3.4
# df -hT
/dev/sda1            ext4          292.4G    115.4G    162.1G  42% /tmp/mnt/bc14cb6c-d6d3-4623-ac76-ad73d5331fd5
# cat /opt/etc/exports
/tmp/mnt/bc14cb6c-d6d3-4623-ac76-ad73d5331fd5    *(rw,no_root_squash,insecure,sync,no_subtree_check)

 

# cat /opt/etc/init.d/S19rpcbind
#!/bin/sh

ENABLED=yes
PROCS=rpcbind
ARGS="-f -w"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
# cat /opt/etc/init.d/S20nfsd
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
        PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NFS_D=/opt/var/lib/nfs
LOCK_D=/opt/var/lib/nfs/sm
        start() {
        insmod /lib/modules/4.9-ndm-3/sunrpc.ko
        insmod /lib/modules/4.9-ndm-3/lockd.ko
        insmod /lib/modules/4.9-ndm-3/nfsd.ko
        insmod /lib/modules/4.9-ndm-3/nfs.ko
        grep -q /proc/fs/nfsd /proc/mounts || \
                mount -t nfsd nfsd /proc/fs/nfsd
        mkdir -p $LOCK_D
        touch $NFS_D/rmtab
        sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null
        rpc.statd -p 32778 -o 32779
        exportfs -r
        rpc.nfsd
        rpc.mountd -p 32780
}
        stop() {
        killall rpc.mountd 2> /dev/null
        rpc.nfsd 0 2> /dev/null
        exportfs -au
        killall rpc.statd 2> /dev/null
        grep -q /proc/fs/nfsd /proc/mounts && \
                umount /proc/fs/nfsd
}
        reload() {
        exportfs -r
}

case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        reload)
                reload
            ;;
        link_up)
                ;;
        ppp_up)
            ;;
        link_down)
            ;;
        ppp_down)
            ;;
        *)
            echo "Usage: $0 {start|stop|restart|reload|link_up|link_down|ppp_up|ppp_down}"
            ;;
esac⏎

strace rpcbind 

https://pastebin.com/JVAfiisq

strace rpcbind -f -w

https://pastebin.com/z5fTJxUQ

Edited by Floppik
Link to comment
Share on other sites

! $$$ Model: Keenetic Ultra
! $$$ Version: 2.06.1

strace че то для меня непонятное, если честно) отделил момент где монтирую

https://pastebin.com/ZP70WRfy

S57nfs-kernel-server 

#!/bin/sh
# Copyright © 2006 OpenWrt.org
    PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    NFS_D=/opt/var/lib/nfs
    LOCK_D=/opt/var/lib/nfs/sm
    start() {
        for a in sunrpc lockd exportfs nfsd ; do
            if [ $(lsmod | grep -c $a) -eq 0 ]; then
                insmod /lib/modules/4.9-ndm-3/${a}.ko
            fi
        done
        grep -q /proc/fs/nfsd /proc/mounts || \
                mount -t nfsd nfsd /proc/fs/nfsd
        mkdir -p $LOCK_D
        touch $NFS_D/rmtab
        sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null
        rpc.statd -p 32778 -o 32779
        exportfs -r
        rpc.nfsd -t -u -V 3 -N 4
        rpc.mountd -p 32780
}
    stop() {
        killall rpc.mountd 2> /dev/null
        rpc.nfsd 0 2> /dev/null
        exportfs -au
        killall rpc.statd 2> /dev/null
        grep -q /proc/fs/nfsd /proc/mounts && \
                umount /proc/fs/nfsd
}
    reload() {
        exportfs -r
}

case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        reload)
                reload
            ;;
        link_up)
                ;;
        ppp_up)
            ;;
        link_down)
            ;;
        ppp_down)
            ;;
        *)
            echo «Usage: $0 {start|stop|restart|reload|link_up|link_down|ppp_up|ppp_down}»
            ;;
esac

 

Edited by psbnt
Link to comment
Share on other sites

Осталось еще выяснить - кто виноват - прошивка или пакет(ы).

Просьба сделать downgrade всех пакетов nfs-kernel-server версии 2.4.1 на версию 2.3.4 (обновление было с неделю назад).

Старые версии в архиве. Для mipsel это http://bin.entware.net/mipselsf-k3.4/archive/

  
  • Thanks 1
Link to comment
Share on other sites

28 минут назад, zyxmon сказал:

Осталось еще выяснить - кто виноват - прошивка или пакет(ы).

Просьба сделать downgrade всех пакетов nfs-kernel-server версии 2.4.1 на версию 2.3.4 (обновление было с неделю назад).

Старые версии в архиве. Для mipsel это http://bin.entware.net/mipselsf-k3.4/archive/


  

Заработало! Сделал downgrade этих пакетов на версию 2.3.4:

nfs-kernel-server-utils_2.3.4-1_mipsel-3.4.ipk  
nfs-kernel-server_2.3.4-1_mipsel-3.4.ipk 
nfs-utils-libs_2.3.4-1_mipsel-3.4.ipk
nfs-utils_2.3.4-1_mipsel-3.4.ipk
Link to comment
Share on other sites

да, у меня тоже заработало. спасибо!!!

готов предположить, что дело именно в пакетах. потому что пробовал откатываться до версии 2.16 (legacy которая...), ошибка была та же "is not a directory or regular file"

Link to comment
Share on other sites

Заинтересованных, просьба проверить

nfs-kernel-server_2.4.1-1a_mipsel-3.4.ipk nfs-kernel-server-utils_2.4.1-1a_mipsel-3.4.ipk nfs-utils_2.4.1-1a_mipsel-3.4.ipk nfs-utils-libs_2.4.1-1a_mipsel-3.4.ipk

upd

отправлено в бинарные репы

Edited by TheBB
upd
  • Thanks 1
Link to comment
Share on other sites

21 час назад, TheBB сказал:

Здравствуйте, подтверждаю работает. Спасибо

  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

Мне кажется, что-то с производительностью этого сервера не все гладко. Делаю бэкапы debian систем через nfs сервер и rsync - минут через 5 disk utilization становится 95-98%, а скорость записи 0,6 мб/сек. По ssh и rsync все работает намного быстрее. 

Link to comment
Share on other sites

  • 2 months later...

Добрый день всем.

После обновления Кинетиков на 3.3 NFS перестает работать, т. к. пути в инит скрипте уже другие.

Предлагаю заменить в нем "4.9-ndm-3" на "$(uname -r)", что бы в будущем не менять каждый раз.

И еще хорошо-бы инструкцию в шапке темы переписать на работающую на данный момент.

Link to comment
Share on other sites

  • 5 months later...

Подскажите, пожалуйста, а как завести NFS на свежей прошивке вроде "3.5 Alpha 5" и ядре 4.9? Аппарат KN-1810 (Ultra).

Ставлю opkg install nfs-kernel-server, после этого пытаюсь стартовать /opt/etc/init.d/S57nfs-kernel-server start, но оно ругается, что portmap'а нет (его в репе даже нет), если закомментить его проверку в скрипте, оно падает на modprobe и т.п.

И даже принудительные приседания с insmod /lib/modules/4.9-ndm-4/nfs.ko и insmod /lib/modules/4.9-ndm-4/nfsd.ko просто не работают, ругаются вот таким: insmod: can't insert '/lib/modules/4.9-ndm-4/nfsd.ko': unknown symbol in module, or unknown parameter.

Edited by REVERSE
  • Upvote 1
Link to comment
Share on other sites

  • 2 months later...
В 26.09.2018 в 19:42, TheBB сказал:

oops! ошибся в названии пакета. пакет называется rpcbind. для запуска `/opt/etc/init.d/S19rpcbind start`

пакет должен был быть установлен по зависимостям (libtirpc - так же)

А скрипт запуска ./S57nfs-kernel-server проверяет наличие запущенного portmap.

Достаточно ли тогда просто променять строку на if [ -z "`pidof rpcbind`" ] ; then ?

  • Thanks 1
Link to comment
Share on other sites

В 24.08.2020 в 10:02, Александр Сухоруков сказал:

Достаточно ли тогда просто променять строку на if [ -z "`pidof rpcbind`" ] ; then ?

можно просто вырезать "мёртвый код"

Link to comment
Share on other sites

19 часов назад, TheBB сказал:

можно просто вырезать "мёртвый код"

Тогда как уже писали падает на modprobe

./S57nfs-kernel-server start
Starting NFS server
./S57nfs-kernel-server: line 13: modprobe: not found
mount: mounting rpc_pipefs on /opt/var/lib/nfs/rpc_pipefs failed: No such device
mount: mounting nfsd on /proc/fs/nfsd failed: No such device
./S57nfs-kernel-server: line 25: can't create /proc/fs/nfsd/max_block_size: nonexistent directory
exportfs: Failed to stat /mnt: No such file or directory
rpc.nfsd: Unable to access /proc/fs/nfsd errno 2 (No such file or directory).
Please try, as root, 'mount -t nfsd nfsd /proc/fs/nfsd' and then restart rpc.nfsd to correct the problem
rpc.nfsd: unable to set any sockets for nfsd

Link to comment
Share on other sites

4 часа назад, Александр Сухоруков сказал:

./S57nfs-kernel-server: line 13: modprobe: not found

`opkg install kmod` или `opkg install kmod_ndms` (второй подтянет прошивки для USB-TV)

+

4 часа назад, Александр Сухоруков сказал:

Please try, as root, 'mount -t nfsd nfsd /proc/fs/nfsd' and then restart rpc.nfsd to correct the problem
rpc.nfsd: unable to set any sockets for nfsd

выполнить то, что просят.

вариации на тему ))) :

забрать скрипт запуска из проекта buildroot , адаптировать и запустит, e.g.:

~ # /opt/etc/init.d/S60nfs restart
Shutting down NFS mountd: OK
Shutting down NFS daemon: OK
Shutting down NFS services: OK
Stopping NFS statd: OK
Starting NFS statd: OK
Starting NFS services: OK
Starting NFS daemon: OK
Starting NFS mountd: OK
~ #

 

Link to comment
Share on other sites

1 час назад, TheBB сказал:

Please try, as root, 'mount -t nfsd nfsd /proc/fs/nfsd'

opkg install kmod
Installing kmod (20-2) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/kmod_20-2_mipsel-3.4.ipk
Configuring kmod.
root@Giga /o/e/init.d# mount -t nfsd nfsd /proc/fs/nfsd
mount: mounting nfsd on /proc/fs/nfsd failed: No such device

Однако никак.

 

Link to comment
Share on other sites

У меня giga 3

Текущая версия KeeneticOS: 3.3.16

не знаю то ли я делаю но модули, если они нужны, не подгружаются.

lsmod | grep nfs не выводит ничего

insmod дает ошибку

root@Giga /l/m/4.9-ndm-4# insmod nfsd.ko
insmod: ERROR: could not insert module nfsd.ko: Unknown symbol in module
root@Giga /l/m/4.9-ndm-4# insmod nfs.ko
insmod: ERROR: could not insert module nfs.ko: Unknown symbol in module

modprobe на эти модули ничего не пишет, но и модули не загружает.

Link to comment
Share on other sites

  • 1 year later...

Доброго Всем дня,
Памяти ради, публикую обновленный и актуальный вариант установки NFS сервера для прошивки KeeneticOS 3.7.4 c ядром 4.9-ndm-5.

Шаг 1
Устанавливаем нужные пакеты поддержки в WUI роутера, на странице Общие настройки системы. См. скриншот:

nfs.png

Шаг 2
Ставим NFS сервер

opkg install nfs-kernel-server rpcbind

Шаг 3
Редактируем файл /opt/etc/exports - вставляем строку ниже, на каждую точку монтирования:

/opt/nfs    *(rw,no_root_squash,insecure,sync,no_subtree_check)

Здесь, /opt/nfs - нужная Вам папка, к которой монтируется USB диск или флешка и которую необходимо создать заранее в директории /opt

Шаг 4
Удаляем прежний файл запуска и устанавливаем обновленный вариант скрипта:

rm /opt/etc/init.d/S57nfs-kernel-server
nano /opt/etc/init.d/S20nfsd

Вставляем текст "под катом":

Скрытый текст

#!/bin/sh
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NFS_D=/opt/var/lib/nfs
LOCK_D=/opt/var/lib/nfs/sm
        start() {
    echo NFS Server Starting
    echo ----------------------------------
    printf "Loading NFS modules: "
    for a in sunrpc lockd nfs nfsd exportfs; do
            if [ $(lsmod | grep -c $a) -eq 0 ]; then
                insmod "/lib/modules/$(uname -r)/${a}.ko"
            fi
        done
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Mounting NFS file system: "
    grep -q /proc/fs/nfsd /proc/mounts || \
                mount -t nfsd nfsd /proc/fs/nfsd
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Loading NFS TCP/UPD ports: "
    mkdir -p $LOCK_D
        touch $NFS_D/rmtab
        sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Starting NFS statd: "
    rpc.statd -p 32778 -o 32779
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Starting NFS services: "
        exportfs -r
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Starting NFS daemon: "
        rpc.nfsd
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Starting NFS mountd: "
        rpc.mountd -p 32780
    [ $? = 0 ] && echo "OK" || echo "FAIL"
    echo  ---------------------------------
    echo
}
        stop() {
    echo  NFS Server stoping
    echo ---------------------------------
    printf "Shutting down NFS mountd: "
        killall rpc.mountd 2> /dev/null
        rpc.nfsd 0 2> /dev/null
        [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Shutting down NFS services: "
    exportfs -au
        [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Stopping NFS statd: "
    killall rpc.statd 2> /dev/null
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Unmounting NFS file system: "
        grep -q /proc/fs/nfsd /proc/mounts && \
                umount /proc/fs/nfsd
    [ $? = 0 ] && echo "OK" || echo "FAIL"
    echo  ---------------------------------
}
        reload() {
    printf "Reloading NFS services: "
        exportfs -r
    [ $? = 0 ] && echo "OK" || echo "FAIL"
}

case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        reload)
                reload
            ;;
        link_up)
                ;;
        ppp_up)
            ;;
        link_down)
            ;;
        ppp_down)
            ;;
        *)
            echo "Usage: $0 {start|stop|restart|reload|link_up|link_down|ppp_up|ppp_down}"
            ;;
esac

Доработано на основании предыдущих сообщений:

  1. Автоматическое добавление необходимых модулей ядра, в случае их отсутствия 
  2. Автоматическое изменение пути к этим модулям, в случае обновления версии ядра
  3. Добавлены поэтапные сообщения различных стадий остановки и запуска скрипта

Шаг 5
Запускаем NFS сервер

/opt/etc/init.d/S20nfsd start

 

Edited by Zeleza
  • Upvote 3
  • Confused 1
Link to comment
Share on other sites

  • 1 month later...
В 11.05.2022 в 19:57, Zeleza сказал:

Доброго Всем дня,
Памяти ради, публикую обновленный и актуальный вариант установки NFS сервера для прошивки KeeneticOS 3.7.4 c ядром 4.9-ndm-5.

Шаг 1
Устанавливаем нужные пакеты поддержки в WUI роутера, на странице Общие настройки системы. См. скриншот:

nfs.png

Шаг 2
Ставим NFS сервер

opkg install nfs-kernel-server

Шаг 3
Редактируем файл /opt/etc/exports - вставляем одну строку ниже:

/opt/nfs    *(rw,no_root_squash,insecure,sync,no_subtree_check)

Здесь, /opt/nfs - нужная Вам папка, к которой монтируется USB диск или флешка и которую необходимо создать заранее в директории /opt

Шаг 4
Удаляем прежний файл запуска и устанавливаем обновленный вариант скрипта:

rm /opt/etc/init.d/S57nfs-kernel-server
nano /opt/etc/init.d/S20nfsd

Вставляем текст "под катом":

  Показать содержимое

#!/bin/sh
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NFS_D=/opt/var/lib/nfs
LOCK_D=/opt/var/lib/nfs/sm
        start() {
    echo NFS Server Starting
    echo ----------------------------------
    printf "Loading NFS modules: "
    for a in sunrpc lockd nfs nfsd exportfs; do
            if [ $(lsmod | grep -c $a) -eq 0 ]; then
                insmod "/lib/modules/$(uname -r)/${a}.ko"
            fi
        done
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Mounting NFS file system: "
    grep -q /proc/fs/nfsd /proc/mounts || \
                mount -t nfsd nfsd /proc/fs/nfsd
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Loading NFS TCP/UPD ports: "
    mkdir -p $LOCK_D
        touch $NFS_D/rmtab
        sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Starting NFS statd: "
    rpc.statd -p 32778 -o 32779
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Starting NFS services: "
        exportfs -r
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Starting NFS daemon: "
        rpc.nfsd
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Starting NFS mountd: "
        rpc.mountd -p 32780
    [ $? = 0 ] && echo "OK" || echo "FAIL"
    echo  ---------------------------------
    echo
}
        stop() {
    echo  NFS Server stoping
    echo ---------------------------------
    printf "Shutting down NFS mountd: "
        killall rpc.mountd 2> /dev/null
        rpc.nfsd 0 2> /dev/null
        [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Shutting down NFS services: "
    exportfs -au
        [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Stopping NFS statd: "
    killall rpc.statd 2> /dev/null
    [ $? = 0 ] && echo "OK" || echo "FAIL"

    printf "Unmounting NFS file system: "
        grep -q /proc/fs/nfsd /proc/mounts && \
                umount /proc/fs/nfsd
    [ $? = 0 ] && echo "OK" || echo "FAIL"
    echo  ---------------------------------
}
        reload() {
    printf "Reloading NFS services: "
        exportfs -r
    [ $? = 0 ] && echo "OK" || echo "FAIL"
}

case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        reload)
                reload
            ;;
        link_up)
                ;;
        ppp_up)
            ;;
        link_down)
            ;;
        ppp_down)
            ;;
        *)
            echo "Usage: $0 {start|stop|restart|reload|link_up|link_down|ppp_up|ppp_down}"
            ;;
esac

Доработано на основании предыдущих сообщений:

  1. Автоматическое добавление необходимых модулей ядра, в случае их отсутствия 
  2. Автоматическое изменение пути к этим модулям, в случае обновления версии ядра
  3. Добавлены поэтапные сообщения различных стадий остановки и запуска скрипта

Шаг 5
Запускаем NFS сервер

/opt/etc/init.d/S20nfsd start

 

Здравствуйте. Keenetic Giga 1010. Делаю все по вашей инструкции и получаю такую ошибку:

~ # /opt/etc/init.d/S20nfsd start
NFS Server Starting
----------------------------------
Loading NFS modules: OK
Mounting NFS file system: OK
Loading NFS TCP/UPD ports: OK
Starting NFS statd: FAIL
Starting NFS services: exportfs: Failed to stat /mnt: No such file or directory
FAIL
Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 145 (Connection timed out)
rpc.nfsd: unable to set any sockets for nfsd
FAIL
Starting NFS mountd: OK
 

Версия прошивки 3.7.4. Что я делаю не так? Нужен NFS для одной камеры, которая умеет только писать в NFS. Пожалуqста помогите(

Link to comment
Share on other sites

~ # /opt/etc/init.d/S20nfsd start
NFS Server Starting
----------------------------------
Loading NFS modules: OK
Mounting NFS file system: OK
Loading NFS TCP/UPD ports: OK
Starting NFS statd: FAIL
Starting NFS services: exportfs: /opt/26E2244BE2242193 does not support NFS export
exportfs: Failed to stat /mnt: No such file or directory
FAIL
Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 145 (Connection timed out)
rpc.nfsd: unable to set any sockets for nfsd
FAIL
Starting NFS mountd: OK
 

Папку создал /opt/26E2244BE2242193, прописал. Почему: Starting NFS statd: FAIL ?

Извините, я нубас в этом начального уровня. Умею только по инструкциям(

 

Link to comment
Share on other sites

~ # rpc.mountd -v
rpc.mountd version 2.5.4
~ # df -hT
Filesystem           Type            Size      Used Available Use% Mounted on
/dev/root            squashfs       13.9M     13.9M         0 100% /
tmpfs                tmpfs         124.3M         0    124.3M   0% /dev
tmpfs                tmpfs         124.3M    464.0K    123.8M   0% /tmp
/dev/ubi0_0          ubifs          55.2M     14.3M     38.1M  27% /storage
/dev/ubi0_0          ubifs          55.2M     14.3M     38.1M  27% /opt
/dev/sda1            tntfs         465.7G    360.0G    105.7G  77% /tmp/mnt/26E2244BE2242193
~ # cat /opt/etc/exports
/mnt    *(ro,all_squash,insecure,no_subtree_check,sync)
/opt/26E2244BE2242193    *(rw,no_root_squash,insecure,sync,no_subtree_check)~ #
 

Link to comment
Share on other sites

Отвечу сам себе, и другим может поможет. Благодаря наводкам уважаемого Zeleza нашел причину такого поведения.

1) Закомментировал в файле /opt/etc/exports свою первую строку и добавил свою:

~ # cat /opt/etc/exports
### /mnt        *(ro,all_squash,insecure,no_subtree_check,sync)
/tmp/mnt/26E2244BE2242193    *(rw,no_root_squash,insecure,sync,no_subtree_check)

2) Установил, запустил и прописал в автозапуск rpcbind

~ # opkg install rpcbind

~ # chmod +x /opt/etc/init.d/S19rpcbind
~ # /opt/etc/init.d/S19rpcbind start 

 

Результат меня порадовал!!!

NFS Server Starting
----------------------------------
Loading NFS modules: OK
Mounting NFS file system: OK
Loading NFS TCP/UPD ports: OK
Starting NFS statd: OK
Starting NFS services: OK
Starting NFS daemon: OK
Starting NFS mountd: OK

image.thumb.png.8fb116949e7211cb5f30fe83746d3bf8.pngimage.thumb.png.c4e12e6c69d5d2bad1f6724ba367840b.png

Edited by Jan Bros
Link to comment
Share on other sites

  • 4 weeks later...

День добрый.

Ранее на прошивке 3.7.4 был установлен и успешно работал nfs server на мелиаплеере iconbit 1003d.

Роутер обновился до 3.8.2 Потом возникли проблемы с hdd и диск был отформатирован и разбит. Установлены пакеты OPKG и установлен nfs server kerner по инструкции из сообщений выше. Сервер стартует без ошибок, медиаплеер автоматически находит nfs, но при его открытии пусто, не отображается список папок и файлов.

В чем может быть проблема?

Link to comment
Share on other sites

  • 2 months later...
В 18.06.2016 в 12:22, zyxmon сказал:

Репозиторий entware включает в себя два nfs сервера - userspace сервер unfs3 и ядерный. В связи с возможностью установки дополнительных модулей ядра - viewtopic.php?f=3&t=471

расширились и возможности кинетика. В этом сообщении я покажу как поднять ядерный nfs сервер.

Первое, что нужно сделать, это установить нужные модули. См. скриншот:

nfs.png

В момент написания данной заметки все установленные модули автоматически загружаются. Делать insmod или modprobe не нужно.
Второе- установим и запустим pormap

opkg install portmap
/opt/etc/init.d/S55portmap start


(После перезагрузок pormap будет автоматически запускаться)
Третье - установим сервер

opkg install nfs-kernel-server


Четвертое - отредактируем файл /opt/etc/exports 

 # cat /opt/etc/exports
/opt    *(rw,no_root_squash,insecure,sync,no_subtree_check)


Я в этом примере расшариваю всем всю директорию /opt на запись 
Пятое - удалим скрипт запуска и заменим его другим

rm /opt/etc/init.d/S57nfs-kernel-server
wget http://pkg.entware-keenetic.ru/binaries/S20nfsd -O /opt/etc/init.d/S20nfsd
chmod +x /opt/etc/init.d/S20nfsd


Шестое. Запустим скрипт запуска

/opt/etc/init.d/S20nfsd start


Седьмое - профит! :D

PS Лучше переименовать скрипты запуска portmap и nfsd, чтобы portmap запускался первым.
PPS. Содержимое S20nfsd:

 # cat /opt/etc/init.d/S20nfsd
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
	PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NFS_D=/opt/var/lib/nfs
LOCK_D=/opt/var/lib/nfs/sm
	start() {
        grep -q /proc/fs/nfsd /proc/mounts || \
                mount -t nfsd nfsd /proc/fs/nfsd
        mkdir -p $LOCK_D
        touch $NFS_D/rmtab
        sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null
        rpc.statd -p 32778 -o 32779
        exportfs -r
        rpc.nfsd
        rpc.mountd -p 32780
}
	stop() {
        killall rpc.mountd 2> /dev/null
        rpc.nfsd 0 2> /dev/null
        exportfs -au
        killall rpc.statd 2> /dev/null
        grep -q /proc/fs/nfsd /proc/mounts && \
                umount /proc/fs/nfsd
}
	reload() {
        exportfs -r
}

case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        reload)
                reload
            ;;
        link_up)
                ;;
        ppp_up)
            ;;
        link_down)
            ;;
        ppp_down)
            ;;
        *)
            echo "Usage: $0 {start|stop|restart|reload|link_up|link_down|ppp_up|ppp_down}"
            ;;
esac

 

Здравствуйте. 

wget http://pkg.entware-keenetic.ru/binaries/S20nfsd -O /opt/etc/init.d/S20nfsd

ссылка не работает, выдает

wget: bad address 'pkg.entware-keenetic.ru' 

Link to comment
Share on other sites

  • 11 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...