我在 Fedora 上安装了 vbox 客户端附加组件,以便使用 Linux 客户端作为服务器,并使用 Windows 7 主机进行工作。因此,我的 Windows 上的目录 (c:\web) 映射到 Linux /web,我的 Apache 服务器从此目录提供服务。我在 Windows 上工作并更改和重命名文件,这会导致客户端出现错误。
有时我会遇到类似“ls:无法访问 Environment.PHP:没有此文件或目录”的情况
[root@web application]# ls -l
ls: cannot access _Environment.PHP: No such file or directory
total 28
-rwxrwx--- 1 root vboxsf 5325 Nov 21 03:01 Bootstrap.PHP
drwxrwx--- 1 root vboxsf 4096 Nov 21 02:52 configs
?????????? ? ? ? ? ? _Environment.PHP
-rwxrwx--- 1 root vboxsf 943 Nov 21 02:32 Environment.temp.PHP
drwxrwx--- 1 root vboxsf 4096 Nov 20 13:52 forms
-rwxrwx--- 1 root vboxsf 1458 Nov 21 13:04 Init.PHP
...
我还对 PHP 做了一个小测试。我使用 check file_exists() 创建文件。然后我创建测试文件,结果为 true。然后我删除文件,结果再次为 true :\ 我检查本地文件夹,测试通过(true,false)。
我找不到问题所在。我尝试重新安装 vboxadd,重新创建共享文件夹。通过 mount -t vboxsf 和 automount 从 /etc/fstab 挂载它。但总是出现同样的问题。如果我更改文件内容,一切都会按预期工作。但如果删除/添加/重命名文件,我会遇到 ls 错误:无法访问或 PHP 无法确定文件是否被删除。
请问,我在哪里可以找到错误?我认为问题出在 vboxsf 文件系统,但是在哪里呢?
信息:客户机 - Fedora 16(通过 yum 升级)主机 - Windows 7 vm - VirtualBox 4.1.6 vbox 附加功能已在客户机和版本 4.1.6 上更新
答案1
我遇到了类似的问题,发现我的 fstab 由于某种原因没有自动挂载。所以我尝试了这种方法,效果很好:
- 创建一个要挂载的目录(如果还没有的话):
mkdir -p /mnt/www
- 编辑你的 rc.local 文件:
nano /etc/rc.local
- 添加以下行并保存:
mount.vboxsf -w -o fmode=0777,dmode=0777 Your_SF_Share_Name /mnt/www
重新启动后它应该会以正确的权限安装。