เซิร์ฟเวอร์ 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 ที่จำเป็นต้องเป็นที่ 1 ฉันใช้sudo systemctl start nfs-commonแล้วsudo systemctl start rpcbind
ben_wing

10

ฉันต้องรีสตาร์ทบริการ rpcbind เพื่อทำงาน:

$ sudo service rpcbind ทำการรีสตาร์ท

ฉันพบมันในหัวข้อนี้


1
คุณไม่ได้ลิงก์ไปยังเธรด แต่อย่างใดฉันได้แก้ไขให้คุณแล้ว ดีใจที่ได้เห็นผู้ใช้ใหม่มีส่วนร่วม! นอกจากนี้ยังปรากฏในการแชทเป็นครั้งคราวและอยู่เล็กน้อยมันก็ดีที่จะมีคนใหม่ที่จะพูดคุยกับ: D
RPiAwesomeness

นี่ทำให้ NFS ใช้งานได้สำหรับฉันไม่ใช่คำตอบอื่น
Mauvis Ledford

8
$ sudo service rpcbind restart

... ใช้งานได้ แต่ปัญหา "portmapper ไม่ได้ทำงาน" จะปรากฏขึ้นอีกครั้งในการรีบูตครั้งถัดไป

ด้านล่างของหน้านี้มีการแก้ไขที่จะสามารถรีบูตได้ แต่โปรดทราบว่ามันจะลบ / etc / exports ของคุณ ในระยะสั้นสำรองของคุณ / etc / ส่งออกแล้ว:

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

จากนั้นคืนค่า / etc / exports ของคุณ


ใช้คำตอบของคุณรวมกับสิ่งนี้: pihomeserver.fr/en/2013/06/21/… ทำเคล็ดลับสำหรับฉัน
Chasester

การแก้ไขนี้สำหรับฉัน ด้วยเหตุผลบางอย่างเซิร์ฟเวอร์เคอร์เนล NFS ถูกติดตั้งอย่างไม่ถูกต้อง ขอบคุณ
hgf

ฉันเคยเห็นปัญหาแบบเดียวกันกับ Debian distros อื่น ๆ (ฉันเรียกใช้บนพีซีที่บ้านของฉัน) - อย่างใดอย่างหนึ่งrpcbindคือการแทนที่portmapperแต่นามแฝงดูเหมือนจะไม่เสร็จสมบูรณ์ (หรือมันเป็นปัญหาผิวเผินปิดบังลึก! ) นอกจากนี้ฉันทำงานsystemdบ้านฟรี - ดังนั้นinit.dสคริปต์ที่ผิดพลาดน่าจะเป็นปัญหาสำหรับฉัน
SlySven

6

ฉันใช้ Raspbian Jessie Lite (เปิดตัวเมื่อวันที่ 18 มีนาคม 2016) และมีปัญหาเดียวกัน นี่คือขั้นตอนของฉันในการแก้ไขปัญหานี้อย่างสมบูรณ์แม้ว่าจะรีบูตแล้วก็ตาม

ประการแรกมีลักษณะที่ไฟล์ init สำหรับ/etc/init.d/nfs-kernel-serverคุณควรสังเกตระดับการทำงานเริ่มต้นของมันคือ2,3,4,5

ดูที่ runlevel start ของไฟล์ต่อไปนี้ซึ่งเป็น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-commonnfs-kernel-server

ฉันยังโพสต์บล็อกสำหรับสิ่งนี้ นอกจากนี้คุณยังสามารถค้นหาได้ที่นี่


หลังจากหลายเดือนของการพยายามแก้ไขสิ่งนี้ด้วยวิธีการอื่น ๆ ฉันจะลาออกจากการรีสตาร์ท NFS ด้วยตนเองตอนบูต วิธีนี้ใช้ได้ผล ขอบคุณ!
boneskull

นี่คือการแก้ไข รายการอื่น ๆ ที่โพสต์ไม่สามารถแก้ไขปัญหาได้ ขอบคุณมากที่โพสต์ข้อความนี้!
chaoticslacker

2

ปัญหาพื้นฐานคือ symlink ใน /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 อาจเขียนทับงานที่ดีของคุณได้เป็นอย่างดี


นี่คือคำตอบที่ดีที่สุด IMHO ให้แนวทางโดยตรงในการทำความเข้าใจปัญหา
Daan

1

ฉันกำลังดิ้นรนกับปัญหาเดียวกันเช่นกัน การแก้ปัญหาข้างต้นไม่ทำงาน ในกรณีของฉันมันมาจากปัญหาเกี่ยวกับสถานที่ของฉัน บรรทัดต่อไปนี้โผล่ขึ้นมาในเครื่องระหว่างการติดตั้ง: nfs-kernel-server nfs-common rpcbind.

perl: คำเตือน: การตั้งค่าภาษาล้มเหลว

ตรวจสอบให้แน่ใจว่าคุณไม่เห็นข้อผิดพลาดเกี่ยวกับตำแหน่งที่ตั้งของคุณในระหว่างการติดตั้งแพ็คเกจเหล่านี้ ฉันแก้ไขตำแหน่งของฉันติดตั้งแพคเกจใหม่และตอนนี้ก็ใช้งานได้


ฉันคิดว่าเป็นไปได้ไหมที่การติดตั้งแพ็คเกจเหล่านั้นสองครั้งอาจแก้ไขปัญหาได้ แต่แทนที่จะแยกแยะที่ตั้งของคุณ - แน่นอนว่าเป็นสิ่งที่ดีที่จะทำให้ตรงไปตรงมา!
SlySven

ฉันเห็นด้วย. อย่างไรก็ตามหลังจากแก้ไขโลแคลแล้วการติดตั้งครั้งที่สองดูจะปลอดภัยกว่าโดยไม่มีข้อผิดพลาดทั้งหมด
Rotareti

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 (เจสซี)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.