Freebsd
文件名太長 mount_nfs
我有一個看起來像這樣的 FreeBSD Vagrant 盒子:
# -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "chef/freebsd-10.0" config.vm.network "private_network", ip: "10.0.1.10" config.vm.synced_folder '.', '/vagrant', :nfs => true, id: "vagrant-root" end
但是,如果它嘗試在名稱過長的目錄路徑中執行,則會失敗:
==> default: Mounting NFS shared folders... The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! mount -t nfs '10.0.1.1:/Users/petersouter/projects/reallylongpathnameover88characterssothatmountfswillfail12345678910111213141516' '/vagrant' Stdout from the command: Stderr from the command: mount_nfs: 10.0.1.1:/Users/petersouter/projects/reallylongpathnameover88characterssothatmountfswillfail12345678910111213141516: File name too long
除了將目錄複製到名稱較短的目錄之外,還有其他方法可以解決此問題嗎?我可以更新 FreeBSD 的東西,使它可以接受更大的文件名嗎?
FreeBSD 將掛載點名稱的長度限制為 88 個字元。其原因有些深奧,但與在頁面邊界上對齊記憶體結構有關
$$ 1 $$. 您可以修補安裝二進製文件以使用更大的限製或將其全部刪除
$$ 2 $$但這可能會導致崩潰。我已經成功地刪除了檢查(也適用於帶有 nfs 的 vagrant)並且它可以正常工作,但這樣做需要您自擔風險。我沒有做一個完整的建構世界,而是只用第二個連結的更新檔重建了 mount_nfs 二進製文件。 作為最後一點,我最終決定使用 nfs 的 vagrant 錯誤太多,並改用 rsync 共享文件夾。
$$ 1 $$ http://www.secnetix.de/olli/FreeBSD/mnamelen.hawk $$ 2 $$ https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=167105