如何在 Linux 上永久挂载一个 Windows 共享

本文介绍如何在Linux系统中永久挂载Windows网络共享,包括创建挂载点、安装必要软件、配置fstab文件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读如果你已经厌倦了每次重启 Linux 就得重新挂载 Windows 共享,读读这个让共享永久挂载的简单方法。


在 Linux 上和一个 Windows 网络进行交互从来就不是件轻松的事情。想想多少企业正在采用 Linux,需要在这两个平台上彼此协作。幸运的是,有了一些工具的帮助,你可以轻松地将 Windows 网络驱动器映射到一台 Linux 机器上,甚至可以确保在重启 Linux 机器之后共享还在。

在我们开始之前

要实现这个,你需要用到命令行。过程十分简单,但你需要编辑 /etc/fstab 文件,所以小心操作。还有,我假设你已经让 Samba 正常工作了,可以手动从 Windows 网络挂载共享到你的 Linux 机器,还知道这个共享的主机 IP 地址。

准备好了吗?那就开始吧。

创建你的挂载点

我们要做的第一件事是创建一个文件夹,他将作为共享的挂载点。为了简单起见,我们将这个文件夹命名为 share,放在 /media 之下。打开你的终端执行以下命令:

sudo mkdir /media/share
安装一些软件

现在我们得安装允许跨平台文件共享的系统;这个系统是 cifs-utils。在终端窗口输入:

sudo apt-get install cifs-utils

这个命令同时还会安装 cifs-utils 所有的依赖。

安装完成之后,打开文件 /etc/nsswitch.conf 并找到这一行:

hosts: files mdns4_minimal [NOTFOUND=return] dns

编辑这一行,让它看起来像这样:

hosts: files mdns4_minimal [NOTFOUND=return] wins dns

现在你需要安装 windbind 让你的 Linux 机器可以在 DHCP 网络中解析 Windows 机器名。在终端里执行:

sudo apt-get install libnss-windbind windbind

用这个命令重启网络服务:

sudo service networking restart
挂载网络驱动器

现在我们要映射网络驱动器。这里我们必须编辑 /etc/fstab 文件。在你做第一次编辑之前,用这个命令备份以下这个文件:

sudo cp /etc/fstab /etc/fstab.old

如果你需要恢复这个文件,执行以下命令:

sudo mv /etc/fstab.old /etc/fstab

在你的主目录创建一个认证信息文件 .smbcredentials。在这个文件里添加你的用户名和密码,就像这样(USER 和 PASSWORD 替换为实际的用户名和密码):

username=USER

password=PASSWORD

你需要知道挂载这个驱动器的用户的组 ID(GID)和用户 ID(UID)。执行命令:

id USER

USER 是你的实际用户名,你应该会看到类似这样的信息:

uid=1000(USER) gid=1000(GROUP)

USER 是实际的用户名,GROUP 是组名。在(USER)和(GROUP)之前的数字将会被用在 /etc/fstab 文件之中。

是时候编辑 /etc/fstab 文件了。在你的编辑器中打开那个文件并添加下面这行到文件末尾(替换以下全大写字段以及远程机器的 IP 地址):

//192.168.1.10/SHARE /media/share cifs credentials=/home/USER/.smbcredentials,iocharset=uft8,gid=GID,udi=UID,file_mode=0777,dir_mode=0777 0 0

注意:上面这些内容应该在同一行上。

保存并关闭那个文件。执行 sudo mount -a 命令,共享就会挂载上。看看一下 /media/share,你应该能看到那个网络共享上的文件和文件夹了。

共享很简单

有了 cifs-utils 和 Samba,映射网络共享在一台 Linux 机器上简单得让人难以置信。现在,你再也不用在每次机器启动的时候手动重新挂载那些共享了。

原文来自:http://www.linuxprobe.com/linux-windows-share.html

<think>我们参考用户提供的引用和之前的回答,用户需求是在Linux系统中永久挂载共享目录(特别是虚拟机访问宿主机文件)。根据引用[1][2][3],解决方案涉及以下步骤:1.安装必要的工具(如VMwareTools)2.设置共享文件夹3.创建挂载点目录4.编辑/etc/fstab文件实现永久挂载5.处理挂载中的常见问题(如非空目录、权限等)具体步骤:步骤1:安装VMwareTools(针对VMware虚拟机)在VMware虚拟机中,首先需要安装VMwareTools,它提供了共享文件夹的功能。步骤2:设置共享文件夹在VMware设置中,指定宿主机上要共享的文件夹,并设置共享名称(例如:myshare)。步骤3:创建挂载点在Linux虚拟机中创建一个目录作为挂载点,例如:```bashsudomkdir/mnt/hgfs```步骤4:临时挂载测试可以先手动挂载测试:```bashsudomount-tfuse.vmhgfs-fuse.host:/myshare/mnt/hgfs-oallow_other```注意:`.host:/myshare`中的`myshare`是你在VMware中设置的共享名称。步骤5:永久挂载(编辑/etc/fstab)为了实现永久挂载,需要编辑`/etc/fstab`文件。添加一行:```.host:/myshare/mnt/hgfsfuse.vmhgfs-fuseallow_other,defaults00```注意:如果同时挂载多个共享文件夹,并且遇到`mountpointisnotempty`错误,可以使用`nonempty`选项(引用[3]):```.host:/myshare/mnt/hgfsfuse.vmhgfs-fuseallow_other,nonempty,defaults00```步骤6:应用挂载保存`/etc/fstab`后,执行以下命令使配置生效:```bashsudomount-a```步骤7:验证检查挂载是否成功:```bashls/mnt/hgfs```注意事项:-如果重启后挂载失效,检查VMwareTools服务是否启动(引用[1])。-权限问题:如果无法写入,可以尝试在挂载选项中添加`rw`(读写权限)或调整目录权限。-对于其他虚拟机平台(如VirtualBox),方法类似,但使用的文件系统类型不同(如vboxsf)。另外,对于非VMware环境(如KVM/QEMU),可能需要使用9P文件系统,挂载方式不同(参考之前回答中的9P挂载方法)。总结流程图:```mermaidgraphTDA[安装VMwareTools]-->B[宿主机设置共享文件夹]B-->C[虚拟机创建挂载点]C-->D[编辑/etc/fstab]D-->E[执行mount-a]E-->F[验证挂载]```相关问题:1.如何解决重启后共享文件夹挂载失效的问题?2.如何在VirtualBox中永久挂载共享文件夹?3.挂载共享文件夹时出现“fuse:mountpointisnotempty”错误如何解决?</think>### Linux永久挂载共享目录完整指南 #### 一、准备工作 1. **安装必要工具** - VMware环境:安装VMware Tools(引用[1]) ```bash # 挂载安装镜像 mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom # 解压并安装 tar -zxvf /mnt/cdrom/VMwareTools-*.tar.gz -C /tmp cd /tmp/vmware-tools-distrib/ ./vmware-install.pl ``` 2. **启用共享功能** - 虚拟机设置中启用"共享文件夹"功能,指定宿主机目录 #### 二、永久挂载配置 ```mermaid graph LR A[创建挂载点] --> B[编辑fstab文件] B --> C[应用配置] C --> D[验证挂载] ``` 1. **创建挂载目录** ```bash sudo mkdir -p /mnt/hgfs # 推荐路径 ``` 2. **编辑/etc/fstab文件** ```bash sudo vim /etc/fstab ``` 添加以下内容(VMware示例): ```ini # VMware共享挂载(引用[1][3]) .host:/共享名称 /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0 ``` - `共享名称`:虚拟机设置中配置的共享文件夹名称 - 多共享目录时添加`nonempty`参数(引用[3]): ```ini .host:/share1 /mnt/hgfs/share1 fuse.vmhgfs-fuse allow_other,nonempty,defaults 0 0 ``` 3. **应用配置** ```bash sudo mount -a # 立即生效(引用[3]) # 或重启虚拟机 ``` 4. **验证挂载** ```bash ls /mnt/hgfs # 查看共享文件 mount | grep hgfs # 检查挂载状态 ``` #### 三、常见问题解决 1. **目录非空错误** ```bash # 添加nonempty参数(引用[3]) .host:/共享名 /mnt/hgfs fuse.vmhgfs-fuse allow_other,nonempty,defaults 0 0 ``` 2. **权限不足问题** ```bash # 在fstab中添加uid/gid参数 .host:/共享名 /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,defaults 0 0 ``` 3. **重启后失效** - 检查VMware Tools服务状态: ```bash systemctl status vmware-tools ``` - 确保fstab无语法错误: ```bash sudo mount -a # 测试配置 ``` #### 四、其他虚拟机配置 1. **VirtualBox共享** ```ini # /etc/fstab配置 sharename /mnt/share vboxsf uid=1000,gid=1000,rw 0 0 ``` 2. **KVM/QEMU (9P协议)** ```ini # /etc/fstab配置 kmod_mount /mnt/share 9p trans=virtio,rw,access=client 0 0 ``` > **关键提示**:永久挂载需谨慎操作,错误的fstab配置可能导致系统无法启动。建议首次配置后执行`sudo mount -a`测试[^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值