原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接:https://blog.youkuaiyun.com/humanking7/article/details/87898889
1.原因
我有一个移动硬盘,里面存放了许多电影,有时候插在做FTP服务器的Linux电脑上,想直接用iPad去访问移动硬盘,所以必须要把移动硬盘挂在FTP服务器上(不挂在Samba服务器的原因是,我的FTP服务器 只读不可写,而Samba服务器 可读可写),所以就有了这个需求。
但是FTP服务器不支持软连接,所以只能另寻他法了。
2. 情况说明
我的FTP服务器的共享目录是 /srv/qfxFtp/。
我的 移动硬盘 的挂在点目录是 /media/qfx/Qfx_01/,具体情况如下所示:
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 3.9G 0 3.9G 0% /dev
... ...
/dev/sdc1 932G 847G 86G 91% /media/qfx/Qfx_01
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# ls -lF /media/qfx/Qfx_01/
总用量 32
drwxrwxrwx 1 qfx qfx 4096 10月 18 17:39 电视剧/
drwxrwxrwx 1 qfx qfx 28672 11月 2 22:50 电影/
3. 将硬盘挂在到FTP服务器共享目录中
3.1. 新建目录
在FTP服务器共享目录中新建一个目录用于挂载移动硬盘的目录,这里这个目录我就直接起名为Q_rmDisk。
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# mkdir Q_rmDisk
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# ls -lF
总用量 3360
...
drwxrwxrwx 2 root root 4096 2月 23 22:58 Q_rmDisk/
...
3.2. 挂载目录
mount --bind 源目录 目标目录
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# mount --bind /media/qfx/Qfx_01/ /srv/qfxFtp/Q_rmDisk/
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp# cd Q_rmDisk/
root@qfx-HP-xw4600-Workstation:/srv/qfxFtp/Q_rmDisk# ls -lFa
总用量 40
drwxrwxrwx 1 qfx qfx 4096 11月 2 22:42 ./
drwxr-xr-x 6 qfxFtp qfxFtp 4096 2月 23 23:29 ../
drwxrwxrwx 1 qfx qfx 4096 10月 18 17:39 电视剧/
drwxrwxrwx 1 qfx qfx 28672 11月 2 22:50 电影/
说明
vsftpd本身不支持软连接,而在用FTP共享的时候又不想移动文件位置,这是一个变通方案。
Linux内核从2.4.0开始支持把一部分文件系统挂载到文件系统中的其他位置,mount命令的--bind选项正好提供了这个功能。
可以把需要共享的文件夹media/qfx/Qfx_01/挂载到FTP目录中的一个子目录上/srv/qfxFtp/Q_rmDisk/。这个目录对于vsftpd而言是一个正常文件系统的目录,于是就可以被共享了。当不需要共享目录时,直接umount即可。
mount --bind命令本身支持单个文件的挂载,可以把目标文件挂载到另外一个文件上,起到类似于软链接的功能。同目录的挂载类似,这也是vsftpd支持的。

3.3. 取消挂载
强行解除挂载
umount /srv/qfxFtp/Q_rmDisk/
取消挂载可能出现的问题
取消挂载/srv/qfxFtp/Q_rmDisk/时出现 umount: /srv/qfxFtp/Q_rmDisk/: device is busy
原因是因为有程序在使用 /srv/qfxFtp/Q_rmDisk/ 目录,我们可以使用 fuser 命令查看挂载目录被哪些进程占用:
fuser -kvm /srv/qfxFtp/Q_rmDisk/
然后 kill 就可以了。
命令:kill -9 pid
如果还是不行,还可以强行解除挂载
# 强行解除挂载
umount -l /srv/qfxFtp/Q_rmDisk/
OK!
以上,Enjoy~


本文介绍如何将移动硬盘挂载到FTP服务器的共享目录,解决FTP服务器不支持软连接的问题,实现移动硬盘上的文件可通过FTP共享。通过使用mount --bind命令,可以将移动硬盘的目录挂载到FTP服务器的指定目录,使FTP客户端能够访问移动硬盘上的文件。
965

被折叠的 条评论
为什么被折叠?



