挂载 windows 共享目录
为了方便使用 windows 共享的目录,最好能直接 mount 进来。
安装
需要安装 cifs-utils
:
apt-get install cifs-utils
挂载
使用 mount 命令装载:
sudo mkdir /mnt/nas/d
sudo mount -t cifs -o rw,username=sky,password=***,uid=1000,gid=1000 //192.168.0.30/d/ /mnt/nas/d
- username 和 password 是访问 windows 共享目录需要的账户密码
- rw 表示可以读写
- uid和gid 可以通过 id 命令看到,设置之后mount之后的目录就可以方便当前用户直接读写访问
//192.168.0.30/d/
是 smb 的共享路径,可以通过 “smb://192.168.0.30/d/“ 访问验证/mnt/nas/d
是装载的目标路径,必须事先存在,可以在 mount 之前先创建好
卸载
不需要使用时,可以 umount 卸载:
sudo umount /mnt/nas/d
改进脚本
为了方便使用,避免反复输入上面的 mount 命令,一个比较常见的做法是开机自动装载。但是考虑到我的笔记本是在公司和家里移动,而两边可以 mount 的东西不一样。另外也不是每次开机都需要 mount。
因此选择了自己准备脚本,需要时手工执行。另外不想 mount 到 /mnt/
下,也不想 mount 为 root 账号。
最后的解决方式是,我在自己的 home 目录下建立了一个 mount 子目录,然后将需要的 mount 和 umount 脚本扔进去。需要时执行对应 mount 脚本,就将 windows 共享目录 mount 到 /home/myid/mount
下,而且当前用户有读写权限,使用非常方便。
以 mount-nas.sh 为例,内容如下:
#!/bin/bash
CURRENT=`pwd`
# 我的 nas 是台普通windows电脑,共享了几个盘符
NAS_FOLDERS=("d" "m" "n" "p")
for nas_folder in ${NAS_FOLDERS[@]};do
target_folder="$CURRENT/nas-$nas_folder"
if [ ! -d "$target_folder" ]; then
mkdir $target_folder
echo "create folder: $target_folder"
fi
sudo mount -t cifs -o rw,username=sky,password=***,uid=1000,gid=1000 "//192.168.0.30/$nas_folder/" $target_folder
done
read -n1 -p "Press any key to exit..."
同时准备了一个 umount-nas.sh 脚本,方便卸载:
#!/bin/bash
CURRENT=`pwd`
NAS_FOLDERS=("d" "m" "n" "p")
for nas_folder in ${NAS_FOLDERS[@]};do
target_folder="$CURRENT/nas-$nas_folder"
if [ -d "$target_folder" ]; then
sudo umount $target_folder
if [ $? -eq 0 ];then
echo "success to umount $target_folder"
else
echo "fail to umount $target_folder"
fi
fi
done
read -n1 -p "Press any key to exit..."