0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Linux挂载Windows共享目录

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-07 09:29 次阅读

Linux/UNIX操作系统可以使用mount命令在指定的挂载点挂载CIFS Windows共享目录。

通用Internet文件系统CIFS,是一种网络文件共享协议。CIFS是SMB另一种形式。在本教程中,我们将说明如何在Linux挂载Windows共享目录。

安装 CIFS客户端

要在Linux系统挂载CIFS Windows共享目录,首先需要安装CIFS软件包。软件包名称在Linux发行版之间可能有所不同。

如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux mint。请运行命令sudo apt install cifs-utils安装samba客户端smbclient。

如果你的计算机运行的是基于RedHat的Linux发行版,例如CentOS,Fedora。请运行命令sudo yum install cifs-utils安装samba客户端smbclient。


sudo apt update
sudo apt install cifs-utils


#Redhat
sudo dnf install cifs-utils

挂载CIFS Windows共享目录

挂载远程Windows共享目录类似于挂载普通文件系统。首先,运行mkdir命令创建目录作为远程Windows共享目录的挂载点。

以root或具有sudo权限的用户运行mount命令来挂载Windows共享目录。系统将提示您输入密码。

是Windows共享用户名,是可选参数 是Windows共享用户密码,也是可选项参数。

WIN_SHARE_IPWindows的IP地址,/mnt/win_share挂载点目录。share_name是Windows共享名称。指定Windows 域,是可选项参数。

成功后,不会有任何输出。要验证是否成功安挂载远程Windows共享,请运行mount命令或df -h命令。

当完成挂载Windows共享,挂载点目录就和普通目录一样。你可以对待本地文件一样使用远程文件。


sudo mkdir /mnt/win_share


sudo mount -t cifs -o username= //WIN_SHARE_IP/ /mnt/win_share


#specify password
sudo mount -t cifs -o username=,password= //WIN_SHARE_IP/ /mnt/win_share


#specify win_domain
sudo mount -t cifs -o username=,domain= //WIN_SHARE_IP/ /mnt/win_share


mount

Password:

创建CIFS Windows共享凭证文件

为了提高安全性,建议使用凭证文件,其中包含共享用户名,密码和域。你可创建文件etc/win-credentials保存用户凭证。

在本教程中,我们使用vim创建文件etc/win-credentials。凭证文件具有以下格式。完成编辑后,保存文件并退出vim。

为使其它用户不能读取凭证文件。你需要设置正确的权限和所有权。运行命令sudo chown root: etc/win-credentials

要在mount命令指定使用的凭证文件,使用mount命令的-o和参数credentials指定凭证文件的绝对路径。


sudo vim etc/win-credentials 
sudo chown root: etc/win-credentials




sudo mount -t cifs -o credentials=etc/win-credentials //WIN_SHARE_IP/ /mnt/win_share
username = userpassword = passworddomain = domain

设置CIFS Windows共享文件与目录权限

默认情况下,挂载共享的所有者为root,并且权限设置为777。你可以使用dir_mode选项设置目录权限模式。

使用file_mode设置文件权限模式。使用uidgid选项更改默认的用户和组所有权。

要设置其它挂载参数,请在-o选项之后指定多个参数,多个参数使用逗号分隔。要获取所有挂载参数,请在终端运行命令man mount


sudo mount -t cifs -o credentials=etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/ /mnt/win_share


sudo mount -t cifs -o credentials=etc/win-credentials,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/ /mnt/win_share
自动挂载

当使用mount命令挂载CIFS Windows共享目录时,当重新启动后,你需要重新运行mount命令挂载。

etc/fstab文件包含一个挂载点列表,这些条目定义在系统启动时将在何处以及如何挂载文件系统。

要在Linux 系统启动时自动挂载CIFS Windows共享目录,请在etc/fstab文件中定义挂载信息

此行必须包含Windows主机名或IP地址,共享目录名称以及Linux 本地计算机的挂载点。

继续使用你喜欢文本编辑器打开文件etc/fstab,我们还是vim编辑文件并将以下行添加到文件etc/fstab

完成编辑后,保存文件并退出vim。运行mount命令挂载Windows共享目录。

mount命令将会读取etc/fstab内容并挂载Windows 共享目录。当下次重新启动Linux系统时,Windows共享目录将会被自动挂载。


sudo vim etc/fstab
sudo mount /mnt/win_share

# <file system>                        <options>                                                   <dump>  
WIN_SHARE_IP/share_name  /mnt/win_share  cifs  credentials=etc/win-credentials,file_mode=0755,dir_mode=0755 0       0
卸载 Windows共享目录

umount命令可以从目录树中卸载已挂载的文件系统。要卸载已挂载的Windows共享目录。请运行umount命令,后跟已挂载的Windows共享的目录或挂载点。

如果etc/fstab文件中配置自动挂载Windows共享,请将其删除或者在该行的开头添加#注释掉。

例如本教程示例,可以运行命令sudo umount /mnt/win_share卸载CIFS Windows共享目录。


sudo umount /mnt/win_share

如果你在卸载Windows共享时,遇到文件系统繁忙或者其它进程访问着Windows共享。你可能需要找到哪些进程正在访问Windows共享。

命令fuser -m MOUNT_POINT可帮助我们找到正在访问Windows共享目录的进程,MOUNT_POINT是挂载点。

在本教程示例挂载点是/mnt/win_share,则fuser查找进程的命令是fuser -m /var/backups


fuser -m /var/backups

找到正在访问NFS共享目录的进程后,可以使用kill命令将其终止,然后卸载Windows共享。

如果仍然存在卸载的问题,请使用umount命令的-l/--lazy选项,该选项可让您在文件系统不再繁忙后立即将其卸载。

如果无法访问远程Windows共享,请使用-f/--force选项强制卸载。通常,使用强制选项不是一个好主意,因为它可能会损坏文件系统的数据。

sudo umount -f MOUNT_POINT
sudo umount -l MOUNT_POINT

结论

在Linux可以使用mount命令Windows共享。如果您有任何问题或反馈,请随时发表评论。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11191

    浏览量

    208623
  • WINDOWS
    +关注

    关注

    3

    文章

    3515

    浏览量

    88275
  • 操作系统
    +关注

    关注

    37

    文章

    6651

    浏览量

    123094
  • UNIX
    +关注

    关注

    0

    文章

    296

    浏览量

    41386
收藏 人收藏

    评论

    相关推荐

    【OK210试用体验】Vbox-linuxwindows实现文件共享的多种方法探讨(Gavin第四篇)

    ,实现文件共享 4.思路三:linux挂载共享文件夹,windows通过局域网访问 5.思路四:通过U盘等设备实现文件交换6.下期预告 准备
    发表于 07-24 12:03

    Linux分区必须挂载目录下吗

    Linux分区必须挂载目录下吗
    发表于 05-02 17:26

    Samba实现LinuxWindows共享详解

    、重新启动Samba服务 7、Linux 网络设备IP 8、Windows 下运行 9、弹出对话框,输入用户名和密码 10、进入共享 11、本次共享
    发表于 07-03 08:59

    怎么快速共享Linux系统的某个目录

    搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux目录共享。但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方。比如你想快速共享
    发表于 07-24 06:04

    Windows上的共享目录不能使用

    使用Windows上的共享目录!!!老老实实的把system文件夹放到纯虚拟机linux里面,不和Windows
    发表于 09-29 10:08

    DAYU200使用OpenHarmony如何开启并挂载dev/shm?

    想使用linux共享内存功能,目前dev/shm目录不存在且未挂载。我查看fstab.rk3568和通常fstab文件似乎有差异。所以请问应该如何在
    发表于 02-10 10:26

    Linux 挂载文件系统

    Linux 挂载文件系统 1、挂载点必须是一个目录。 2、一个分区挂载在一个已存在的目录上,这
    发表于 01-18 12:51 2208次阅读

    WindowsLinux的区别以及Linux系统的目录结构

    本文先对 WindowsLinux 上面文件系统原理、组织概念进行区分,并给出例子、列举两者的优缺点以具体说明,最后较为详细地介绍了 Linux 系统的目录结构。
    的头像 发表于 06-18 17:37 8515次阅读
    <b class='flag-5'>Windows</b>和<b class='flag-5'>Linux</b>的区别以及<b class='flag-5'>Linux</b>系统的<b class='flag-5'>目录</b>结构

    Linux目录结构与Windows对比

    ,D盘等)的概念,以盘符作为系统分区,而linux其实也有分区,只不过是Linux的分区是挂载(相当于给设备一个目录入口)在“/”上的,所以分区在l
    发表于 04-02 14:47 775次阅读

    嵌入式设备NFS挂载目录(基于iTop 4412)

    嵌入式设备配置4.1 Linux内核添加NFS支持4.2 嵌入式设备挂载目录1. 背景嵌入式Linux开发中,提到NFS,一般都是NFS整个文件系统,有时候觉得没啥必要。板子上已经有
    发表于 10-20 18:36 8次下载
    嵌入式设备NFS<b class='flag-5'>挂载</b><b class='flag-5'>目录</b>(基于iTop 4412)

    何在Linux卸载NFS共享目录

    NFS网络文件系统是一种分布式文件系统协议,使您可以通过网络共享远程目录
    的头像 发表于 12-07 09:38 1w次阅读

    何在Linux挂载NFS共享

    NFS网络文件系统是一种分布式文件系统协议,使您可以通过网络共享远程目录
    的头像 发表于 12-07 09:39 3243次阅读

    Linux挂载硬盘

    Linux挂载硬盘
    的头像 发表于 01-12 10:52 1603次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>挂载</b>硬盘

    Linux中的挂载命令mount是什么

    Linux文件系统中的所有文件都以/ 为根的大树的形式排列。这些文件可以根据您的分区表分布在各种设备上,最初你的父目录安装(即附加)到这棵树的/ ,其他的可以手动挂载使用GUI界面(如果可用)或使用
    的头像 发表于 02-20 16:26 2406次阅读
    <b class='flag-5'>Linux</b>中的<b class='flag-5'>挂载</b>命令mount是什么

    Linux根文件系统的挂载过程

    Linux根文件系统(rootfs)是Linux系统中所有其他文件系统和目录的起点,它是内核启动时挂载的第一个文件系统。
    的头像 发表于 10-05 16:50 186次阅读