NFS-сервер: не запускается: portmapper не работает


12

Я пытаюсь настроить Raspberry Pi с Wheezy Raspbian 2013-02-09 в качестве сервера NFS (клиент будет Ubuntu 12.10). Я следовал этим инструкциям .

Я не могу запустить службу и получить следующее сообщение:

$ sudo service nfs-kernel-server restart
[ ok ] Stopping NFS kernel daemon: mountd nfsd.
[ ok ] Unexporting directories for NFS kernel daemon....
[ ok ]   Exporting directories for NFS kernel daemon....
[....] Starting NFS kernel daemon: nfsd
[warn] Not starting: portmapper is not running ... (warning).
$ rpcinfo -p
<br>rpcinfo: can't contact portmapper: RPC: Remote system error - No such file or directory

Не уверен, что не хватает?

Ответы:


9

Модератор в этом сообщении на форуме сказал, что эта команда будет работать:

sudo update-rc.d rpcbind enable && sudo update-rc.d nfs-common enable

1
подтверждено в качестве рабочего решения. с учетом перехода к systemd эквивалентная команда sudo systemctl enable rpcbind && sudo systemctl enable nfs-common(хотя обе эти службы, похоже, все еще используют запуск в стиле init.d).
ben_wing

я думаю, что мне также нужно было явно запустить службы, и этот порядок был важен, так как nfs-common должен быть первым. я использовал sudo systemctl start nfs-commonтогдаsudo systemctl start rpcbind
ben_wing

10

Мне пришлось перезапустить службу rpcbind для работы:

$ sudo service rpcbind restart

Я нашел это в этой теме


1
Вы как-то не ссылались на ветку, я исправил это для вас. Рад видеть новых пользователей! Кроме того, заходите в чат время от времени и оставайтесь немного, всегда приятно, что с кем-то новым можно поговорить: D
RPiAwesomeness

Это заставило NFS работать на меня, а не другой ответ.
Mauvis Ledford

8
$ sudo service rpcbind restart

... работает, но проблема "portmapper not running" появится снова при следующей перезагрузке.

Внизу этой страницы есть исправление, которое выживет после перезагрузки, но имейте в виду, что оно удалит ваш / etc / exports. Короче, сделайте резервную копию вашего / etc / exports тогда:

sudo apt-get purge rpcbind
sudo apt-get install nfs-kernel-server

Затем восстановите ваш / etc / exports.


используя ваш ответ в сочетании с этим: pihomeserver.fr/en/2013/06/21/… сделал свое дело для меня.
Chasester

Это решено для меня. По какой-то причине сервер ядра NFS был неправильно установлен. Благодарю.
HGF

Я видел такие же проблемы на других дистрибутивах Debian (я запускаю их на своих домашних компьютерах) - так или иначе rpcbindэто замена, portmapperно псевдонимы, похоже, не были завершены (или это поверхностная проблема, маскирующая более глубокую проблему! ) Кроме того, у меня systemdбесплатное домашнее хозяйство - поэтому init.dу меня могут возникнуть проблемы с неисправными сценариями.
SlySven

6

Я работаю с Raspbian Jessie Lite (выпущена 18 марта 2016 г.) и получила ту же проблему. Вот мои шаги, чтобы полностью решить эту проблему, даже если после перезагрузки .

Для начала взгляните на файл инициализации /etc/init.d/nfs-kernel-server, вы должны заметить, что его начальный уровень запуска равен 2,3,4,5 .

Также посмотрите на начальный уровень запуска следующих файлов, который является только S. Я изменил его уровень запуска на 2,3,4,5 .

/etc/init.d/nfs-common
/etc/init.d/rpcbind

Затем попробуйте update-rc.dизменить сценарии инициализации с настройками по умолчанию . Первая попытка не удалась. Хитрость заключается в том, чтобы удалить и добавить их снова.

update-rc.d -f rpcbind remove
update-rc.d rpcbind defaults

update-rc.d -f nfs-common remove
update-rc.d nfs-common defaults

update-rc.d -f nfs-kernel-server remove
update-rc.d nfs-kernel-server defaults

После этого проверьте заказ услуг. Должно быть rpcbind, nfs-commonи nfs-kernel-server.

Я также разместил блог для этого. Вы также можете найти это здесь .


После нескольких месяцев попыток исправить это с помощью различных других средств я смирился с тем, что вручную перезагружаю NFS при загрузке. Это решение работает. Спасибо!
черепа

Это исправление. Все остальные опубликованные сообщения не решили проблему. Большое спасибо за публикацию этого!
Chaoticslacker

2

Основная проблема заключается в том, что символические ссылки в /etc/rc*.d немного разбросаны. Некоторые из приведенных выше предложений основаны на переделке этих ссылок и, возможно, они сделаны в более подходящем порядке. Иногда. Пытаться -

for i in rpcbind nfs-common nfs-kernel-server ; do find /etc/rc* -name "S*$i*"; done

чтобы увидеть, когда они начались. На самом деле они нужны только на уровне 3, поэтому я отредактировал /etc/init.d/rcpbind, /etc/init.d/nfs-common и /etc/init.d/nfs-kernel-server так "# Default-Start: 3 "и запустил это, чтобы обеспечить это -

for i in rpcbind nfs-common nfs-kernel-server ; do update-rc.d -f "$i" remove; update-rc.d "$i" defaults; done

Обратите внимание, что update-rc.d не изменит существующую запись и молча не удалит запись (если сценарий все еще существует), если вы не добавите -f. В идеале вы получите что-то вроде этого -

/etc/rc3.d/S01rpcbind
/etc/rc3.d/S02nfs-common
/etc/rc3.d/S03nfs-kernel-server

И теперь он загрузится чисто. Обновление NFS может перезаписать вашу хорошую работу ...


Это лучший ответ ИМХО. Дает прямой подход к пониманию проблемы.
Даан

1

Я тоже боролся с той же проблемой. Вышеуказанные решения не сработали. В моем случае это произошло из-за проблем с моими локалями . В следующей строке появилась в терминале во время установки: nfs-kernel-server nfs-common rpcbind.

perl: warning: сбой при настройке локали.

Убедитесь, что вы не видите ошибку о ваших локалях во время установки этих пакетов. Я исправил свои локали, переустановил пакеты, и теперь это работает.


Мне кажется возможным, что установка этих пакетов дважды могла бы решить проблему в любом случае, вместо того, чтобы разбираться с вашими локалями - хотя, конечно, это было бы хорошо, если бы все равно исправили!
SlySven

Я согласен. Во всяком случае, после исправления локализаций вторая установка выглядела намного безопаснее без всех ошибок.
Ротарети

1

Это работает для меня. Чистый и сопротивляется перезагрузкам.

Вы должны настроить systemd, чтобы сделать заказ правильно

cat <<EOF | sudo tee -a /etc/systemd/system/nfs-common.services
[Unit]
Description=NFS Common daemons
Wants=remote-fs-pre.target
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/init.d/nfs-common start
ExecStop=/etc/init.d/nfs-common stop

[Install]
WantedBy=sysinit.target
EOF

cat <<EOF | sudo tee -a /etc/systemd/system/rpcbind.service
[Unit]
Description=RPC bind portmap service
After=systemd-tmpfiles-setup.service
Wants=remote-fs-pre.target
Before=remote-fs-pre.target
DefaultDependencies=no

[Service]
ExecStart=/sbin/rpcbind -f -w
KillMode=process
Restart=on-failure

[Install]
WantedBy=sysinit.target
Alias=portmap
EOF

sudo systemctl enable nfs-common
sudo systemctl enable rpcbind
sudo reboot

взяты отсюда

https://github.com/geerlingguy/raspberry-pi-dramble/issues/65#issuecomment-283046966


0

Я исправил это с помощью: $ sudo service portmap start Затем перезапустите службу nfs: $ sudo service nfs-kernel-server restart

и это работает.


0

Я протестировал большинство предыдущих решений, они не работают после перезапуска Raspberry Pi (команда rpcinfo -p | grep nfsмне ничего не дала).

Решение :

echo service nfs-kernel-server restart | sudo tee -a /etc/rc.local

или

sudo vi /etc/rc.local
service nfs-kernel-server restart

Проверять :

> sudo shutdown -r now

> rpcinfo -p | grep nfs

Проверено на Raspian 8 (Джесси)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.