• 挂载 windows 共享目录
    • 安装
    • 挂载
    • 卸载
    • 改进脚本

    挂载 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..."