挂载 windows 共享目录

为了方便使用 windows 共享的目录,最好能直接 mount 进来。

安装

需要安装 cifs-utils

  1. apt-get install cifs-utils

挂载

使用 mount 命令装载:

  1. sudo mkdir /mnt/nas/d
  2. 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 卸载:

  1. 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 为例,内容如下:

  1. #!/bin/bash
  2. CURRENT=`pwd`
  3. # 我的 nas 是台普通windows电脑,共享了几个盘符
  4. NAS_FOLDERS=("d" "m" "n" "p")
  5. for nas_folder in ${NAS_FOLDERS[@]};do
  6. target_folder="$CURRENT/nas-$nas_folder"
  7. if [ ! -d "$target_folder" ]; then
  8. mkdir $target_folder
  9. echo "create folder: $target_folder"
  10. fi
  11. sudo mount -t cifs -o rw,username=sky,password=***,uid=1000,gid=1000 "//192.168.0.30/$nas_folder/" $target_folder
  12. done
  13. read -n1 -p "Press any key to exit..."

同时准备了一个 umount-nas.sh 脚本,方便卸载:

  1. #!/bin/bash
  2. CURRENT=`pwd`
  3. NAS_FOLDERS=("d" "m" "n" "p")
  4. for nas_folder in ${NAS_FOLDERS[@]};do
  5. target_folder="$CURRENT/nas-$nas_folder"
  6. if [ -d "$target_folder" ]; then
  7. sudo umount $target_folder
  8. if [ $? -eq 0 ];then
  9. echo "success to umount $target_folder"
  10. else
  11. echo "fail to umount $target_folder"
  12. fi
  13. fi
  14. done
  15. read -n1 -p "Press any key to exit..."