Windows shares on a local network appear as accessible folders when you use the correct mount command. Learning how to mount windows share in linux is a essential skill for anyone working in a mixed-OS environment. This guide walks you through the entire process step by step, from installing the right tools to troubleshooting common errors.
You might need to access a Windows shared folder from your Linux machine for work or personal files. The good news is that Linux has built-in support for the SMB/CIFS protocol, which Windows uses for file sharing. With a few commands, you can mount these shares permanently or temporarily.
Understanding Windows Shares And Linux
Windows uses the Server Message Block (SMB) protocol for file and printer sharing. Linux systems can connect to these shares using the CIFS (Common Internet File System) implementation of SMB. The cifs-utils package provides the necessary tools.
Before you start, ensure you have the IP address or hostname of the Windows machine, the share name, and valid credentials. Windows shares can be password-protected or accessible to guests.
How To Mount Windows Share In Linux
This section covers the core steps to mount a Windows share manually. You will use the terminal and the mount.cifs command. The process works on most Linux distributions including Ubuntu, Debian, Fedora, and CentOS.
Step 1: Install CIFS Utilities
First, install the cifs-utils package. This package contains the mount.cifs command and other helpers. Open a terminal and run the appropriate command for your distribution.
- Debian/Ubuntu:
sudo apt update && sudo apt install cifs-utils - Fedora:
sudo dnf install cifs-utils - CentOS/RHEL:
sudo yum install cifs-utils - Arch Linux:
sudo pacman -S cifs-utils
After installation, verify it worked by typing mount.cifs -V. You should see the version number.
Step 2: Create A Mount Point
A mount point is a directory where the share will be attached. Create an empty directory anywhere you like. Common locations are /mnt or /media.
- Open a terminal.
- Run
sudo mkdir /mnt/windows_share. - You can name the folder anything, for example
shared_folder.
Make sure the directory exists before mounting. If you try to mount to a non-existent folder, the command will fail.
Step 3: Mount The Share Manually
Now you mount the share using the mount.cifs command. The basic syntax is:
sudo mount -t cifs //SERVER_IP/SHARE_NAME /mnt/windows_share -o username=USERNAME
Replace SERVER_IP with the IP address of the Windows machine, SHARE_NAME with the actual share name, and USERNAME with your Windows username. You will be prompted for the password.
Example:
sudo mount -t cifs //192.168.1.100/SharedDocs /mnt/windows_share -o username=johndoe
If the share is accessible to guests (no password), use the guest option:
sudo mount -t cifs //192.168.1.100/Public /mnt/windows_share -o guest
After the command runs, check if it worked by listing the directory: ls /mnt/windows_share. You should see the files from the Windows share.
Step 4: Unmount The Share
When you are done, unmount the share using the umount command:
sudo umount /mnt/windows_share
Do not remove the USB drive or disconnect the network while the share is mounted. This can cause data loss.
Mounting With Different Credentials
Sometimes you need to provide a domain name or use a different authentication method. The mount.cifs command supports several options.
Using A Domain User
If your Windows machine is part of a domain, include the domain name in the username:
sudo mount -t cifs //192.168.1.100/Share /mnt/share -o username=DOMAIN\\johndoe
Note the double backslash. In some shells, you may need to escape it with a single quote or use a backslash.
Using A Credentials File
Storing passwords in command history is insecure. Instead, create a credentials file with restricted permissions.
- Create a file:
sudo nano /etc/smb-credentials - Add these lines:
username=johndoe password=secret123 domain=WORKGROUP - Save and exit.
- Set permissions:
sudo chmod 600 /etc/smb-credentials - Mount using the file:
sudo mount -t cifs //192.168.1.100/Share /mnt/share -o credentials=/etc/smb-credentials
This method keeps your password safe from prying eyes.
Permanent Mount Via Fstab
Manual mounts disappear after a reboot. To make the mount permanent, edit the /etc/fstab file. This file tells the system which filesystems to mount at boot.
- Backup the fstab file:
sudo cp /etc/fstab /etc/fstab.backup - Open fstab:
sudo nano /etc/fstab - Add a line at the end:
//192.168.1.100/Share /mnt/windows_share cifs credentials=/etc/smb-credentials,uid=1000,gid=1000,iocharset=utf8,file_mode=0755,dir_mode=0755 0 0 - Replace
uid=1000andgid=1000with your user ID. Find it withid -uandid -g. - Save and exit.
- Test the fstab entry:
sudo mount -a
If no errors appear, the share will mount automatically at boot. If you get an error, check the syntax and credentials.
Important Fstab Options
_netdev: Tells the system to wait for the network before mounting. Useful for network shares.noauto: Prevents automatic mounting at boot. You can still mount it manually.vers=3.0: Forces SMB protocol version. Windows 10 and later often require SMB 3.0.
Example with _netdev and vers:
//192.168.1.100/Share /mnt/share cifs credentials=/etc/smb-credentials,uid=1000,gid=1000,_netdev,vers=3.0 0 0
Using SMB Protocol Versions
Older Windows systems may use SMB 1.0, which is insecure and often disabled by default. Modern systems use SMB 2.0 or 3.0. Specify the version with the vers option.
vers=1.0for legacy systems (avoid if possible)vers=2.0for Windows 7/Server 2008vers=3.0for Windows 8/10/11 and Server 2012+
If you get a “protocol negotiation failed” error, try a different version.
Mounting Shares From A Windows Workgroup
In a home network, Windows machines often belong to a workgroup (default is WORKGROUP). You can mount shares without specifying a domain. Just use the username and password.
Example:
sudo mount -t cifs //192.168.1.50/Movies /mnt/movies -o username=homeuser,password=pass123,workgroup=WORKGROUP
The workgroup option is optional but can help in some cases.
Troubleshooting Common Issues
Mounting Windows shares can fail for many reasons. Here are the most common problems and solutions.
Mount Error: “Mount Error(13): Permission Denied”
This usually means incorrect credentials or insufficient permissions on the Windows side. Double-check the username and password. Also, ensure the Windows share allows access from your Linux IP.
Mount Error: “Mount Error(112): Host Is Down”
The Windows machine might be unreachable. Check network connectivity with ping 192.168.1.100. Also, verify that the Windows firewall allows SMB traffic (ports 445 and 139).
Mount Error: “Mount Error(2): No Such File Or Directory”
This error means the mount point directory does not exist, or the share name is incorrect. Verify both.
Slow Performance Or Timeouts
Add the noperm option to disable permission checking on the client side. This can speed up access. Also, use vers=3.0 for better performance.
Character Encoding Issues
If filenames with special characters appear garbled, add iocharset=utf8 to the mount options. This ensures proper UTF-8 encoding.
Automounting With Systemd
Instead of fstab, you can use systemd automount units. This is more flexible for network shares that may not be available at boot.
- Create a mount unit file:
sudo nano /etc/systemd/system/mnt-windows_share.mount - Add the following:
[Unit] Description=Mount Windows Share Requires=network-online.target After=network-online.target [Mount] What=//192.168.1.100/Share Where=/mnt/windows_share Type=cifs Options=credentials=/etc/smb-credentials,uid=1000,gid=1000,_netdev,vers=3.0 [Install] WantedBy=multi-user.target - Create an automount unit:
sudo nano /etc/systemd/system/mnt-windows_share.automount - Add:
[Unit] Description=Automount Windows Share [Automount] Where=/mnt/windows_share TimeoutIdleSec=0 [Install] WantedBy=multi-user.target - Enable and start:
sudo systemctl enable mnt-windows_share.automount && sudo systemctl start mnt-windows_share.automount
The share will mount automatically when accessed and unmount after a period of inactivity.
Using Graphical Tools
If you prefer a GUI, most Linux file managers support connecting to Windows shares. In Nautilus (GNOME), click “Other Locations” and enter smb://192.168.1.100/Share. You will be prompted for credentials.
In Dolphin (KDE), type smb://192.168.1.100/Share in the address bar. The share will appear in the file manager.
Graphical mounts are temporary and disappear after logout. For permanent access, use the command-line methods described above.
Security Considerations
Mounting Windows shares exposes your Linux system to potential network attacks. Follow these best practices:
- Use strong passwords for Windows shares.
- Disable SMB 1.0 on both Windows and Linux.
- Restrict access to specific IP addresses if possible.
- Use a credentials file with 600 permissions instead of plaintext passwords in commands.
- Keep your system updated with the latest security patches.
Never mount a share from an untrusted network. SMB is a legacy protocol and has known vulnerabilities.
Advanced Mount Options
Here are additional options you can pass to mount.cifs:
rw: Mount read-write (default).ro: Mount read-only.uid=1000: Set the owner of the mounted files.gid=1000: Set the group owner.file_mode=0755: Set file permissions.dir_mode=0755: Set directory permissions.noexec: Prevent execution of binaries from the share.nosuid: Ignore setuid bits.
Combine options with commas, no spaces. Example:
sudo mount -t cifs //192.168.1.100/Data /mnt/data -o credentials=/etc/smb-credentials,uid=1000,gid=1000,file_mode=0644,dir_mode=0755,noexec
Mounting Shares From Non-Windows Devices
Many NAS devices and routers also use SMB. The same commands work for mounting shares from a Synology NAS, QNAP, or even a Raspberry Pi running Samba. Just replace the IP address and share name.
For example, to mount a share from a Synology NAS:
sudo mount -t cifs //192.168.1.200/Backup /mnt/backup -o username=admin,password=naspass
Checking Mounted Shares
To see all currently mounted filesystems, run mount | grep cifs. This shows only CIFS mounts. You can also use df -h to see disk usage of mounted shares.
If a mount fails, check the system log: journalctl -xe | grep mount or dmesg | tail.
Unmounting All CIFS Shares
To unmount all CIFS shares at once, use:
sudo umount -a -t cifs
This is useful before shutting down the system.
Frequently Asked Questions
Can I mount a Windows share without a password?
Yes, if the share is configured for guest access. Use the guest option in the mount command. Example: sudo mount -t cifs //IP/Share /mnt/point -o guest.
Why does my mount fail with “mount error(95): Operation not supported”?
This often indicates an SMB protocol version mismatch. Try adding vers=3.0 or vers=2.0 to your mount options. Also, check if the Windows machine has SMB disabled.
How do I mount a Windows share at boot without entering credentials?
Create a credentials file as described in the fstab section. Store it securely with chmod 600. The system will read the credentials automatically.
Can I mount a Windows share from a different subnet?
Yes, as long as the network routes allow it. Ensure the Windows firewall allows SMB traffic from the remote subnet. You may need to adjust routing tables.
What is the difference between SMB and CIFS?
CIFS is an older dialect of SMB. Modern Linux systems use SMB 2.0 or 3.0, but the cifs-utils package handles both. The terms are often used interchangeably.