Сервер NFS: Не запускається: портмейкер не працює


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
підтверджено як робоче рішення. з огляду на перехід до системної еквівалентної команди sudo systemctl enable rpcbind && sudo systemctl enable nfs-common(хоча обидва ці сервіси все ще використовують запуск стилю init.d).
ben_wing

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

10

Мені довелося перезапустити rpcbind службу для роботи:

$ sudo service rpcbind перезапуск

Я знайшов це в цій темі


1
Ви якось не зв’язалися з ниткою, я це зафіксував. Радий бачити нових користувачів! Крім того, час від часу
заходьте

Це змусило NFS працювати для мене не іншою відповіддю.
Мавіс Ледфорд

8
$ sudo service rpcbind restart

... працює, але проблема "portmapper не працює" знову з'явиться при наступному перезавантаженні.

Внизу цієї сторінки є виправлення, яке переживе перезавантаження, але пам’ятайте, що воно видалить ваш / etc / export. Коротше кажучи, створіть резервну копію вашого / etc / export тоді:

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

Потім відновіть / etc / export.


використовуючи вашу відповідь у поєднанні з цим: pihomeserver.fr/en/2013/06/21/… зробив для мене трюк.
Chasester

Це вирішило для мене. Чомусь сервер ядра NFS був неправильно встановлений. Дякую.
hgf

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

6

Я запускаю Raspbian Jessie Lite (вийшов 18 березня 2016 року) і отримав той самий випуск. Ось мої кроки, щоб повністю виправити цю проблему, навіть якщо після перезавантаження .

По-перше, подивіться на файл init для /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змінити скрипти init із замовчуванням . Перша спроба не вдається. Хитрість полягає в тому, щоб видалити та додати їх знову.

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 під час завантаження. Це рішення працює. Дякую!
bonekull

Це виправлення. Усі інші розміщені не вирішили проблему. Дуже дякую за публікацію!
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 так "# За замовчуванням - Пуск: 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: попередження: Не вдалося встановити локаль.

Переконайтеся, що під час встановлення цих пакунків ви не бачите помилок щодо ваших локальних файлів. Я виправив локалі, перевстановив пакунки і тепер це працює.


Мені здається можливим, що встановлення цих пакунків двічі, можливо, вирішила проблему як завгодно, а не розбирати ваші локалі - хоч, звичайно, це добре, що все-таки випрямитись!
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/isissue/65#issuecomment-283046966


0

Я зафіксував це за допомогою $ sudo service portmap start, потім перезапустіть службу nfs: $ sudo service nfs-kernel-server перезапустіть

і це працює.


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

Випробуваний на Распіані 8 (jessie)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.