最近在做NAS系统,群晖太死板并且难升级,现在采用的方案是pve开虚拟机,windows作为文件系统,直通所有机械硬盘。docker之类的应用都装在debian虚拟机里,现在的问题是debian怎么访问机械硬盘,我需要在kodbox网盘里访问。
共享文件夹的过程不再描述,主要说debian里怎么挂载。
mount -t cifs -o username=用户名,password=密码 //windows的ip/挂载的目录 /挂载在linux的位置
卸载过程:
umount /挂载位置
umount 时提示错误 target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) , 你可以先切换到别的目录再试一次 , 原因也可能是其他进程可能在使用目录 , 可以先关闭使用该目录的进程 , 然后再 umount , 命令如下 (使用 fuser 需安装 psmisc # apt install psmisc) :
# fuser -m /usr/local/bin/code
/usr/local/bin/code: 2806c
# ps aux | grep 2806
root 2806 0.0 0.5 116040 2836 pts/0 Ss 11:31 0:00 -bash
root 2925 0.0 0.1 112648 960 pts/0 S+ 14:36 0:00 grep --color=auto 2806
# kill -9 2806
# umount /usr/local/bin/code
因为上面的挂载只在本次生效,重启后丢失。所以最后添加系统自启动的服务。
网络上的文章大多为在/etc/fstab文件中添加挂载,这种方式如果网络刚好连不上windwos就会造成系统启动失败,非常危险,所以我采用的系统服务的方法。
在/etc/systemd/system/中新建mount-winKodbox.service文件,并写入以下内容。
[Unit]
Description=Mount WebDAV Share at boot
After=network.target
[Service]
Type=oneshot
ExecStart=/bin/mount -t cifs -o username=用户名,password=密码,uid=1001,gid=1001,file_mode=0775,dir_mode=0775 //192.168.50.217/vault/kodbox /www/wwwroot/kodbox/winshare
ExecStop=/bin/umount /www/wwwroot/kodbox/winshare
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
注意,其中的uid和gid设置是为了让挂载的文件夹使用www用户能读写(默认挂在后是root)
文件编辑完成后,运行下面的命令行来使服务生效。
sudo systemctl daemon-reload
sudo systemctl restart mount-winKodbox.service
sudo systemctl enable mount-winKodbox.service
通过以上的操作,我实现了把windows中的共享机械硬盘挂载到linux里,以供linux安装的kodbox访问(需要把挂载的文件夹所有者设置为kodbox的用户组,我的是www)。
已有 0 条评论