mount 是 Linux 將存儲設備、文件系統、網絡共享掛接到目錄樹的核心命令。掌握其文件系統類型識別、掛載選項、權限控制、以及各類實戰場景(ISO 鏡像、Windows 分區、SMB/NFS 共享、移動硬盤),是系統管理員必備基本功。
mount [-t fstype] [-o options] device directory
/dev/sda1)、鏡像文件、網絡路徑。| 類型 | 適用場景 | 備註 |
|---|---|---|
ext4/ext3/ext2 | Linux 原生磁盤分區 | 默認日誌文件系統 |
xfs | 高性能大文件/大分區 | RHEL 7+ 默認 |
btrfs | 快照、壓縮、子卷 | 企業級特性豐富 |
iso9660 | 光盤/ISO 鏡像 | 只讀 |
vfat | FAT32 U盤/Windows 分區 | 跨平台兼容,無權限屬性 |
ntfs/ntfs-3g | NTFS Windows 分區 | 需 ntfs-3g 實現讀寫 |
exfat | 大容量閃存設備 | 需 exfat-fuse |
nfs/nfs4 | Linux/Unix 網絡共享 | 需 nfs-utils,內核模塊 |
cifs/smbfs | Windows/Samba 共享 | 需 cifs-utils |
fuse.* | 用戶態文件系統 | 如 fuse.sshfs、fuse.rclone |
| 選項 | 含義 | 典型場景 |
|---|---|---|
ro | 只讀掛載 | ISO、只讀備份、防誤寫 |
rw | 讀寫掛載(默認) | 常規數據盤 |
loop | 將文件作為塊設備掛載 | ISO、磁盤映像文件 |
noexec | 禁止執行二進制文件 | 臨時掛載、用戶數據盤、安全加固 |
nosuid | 忽略 SUID/SGID 位 | 同上 |
nodev | 不解析設備文件 | 同上 |
user/users | 允許普通用戶掛載/卸載 | 移動設備 |
defaults | rw,suid,dev,exec,auto,nouser,async | /etc/fstab 默認組合 |
relatime | 僅當 atime > mtime/ctime 時更新 atime(默認) | 減少元數據寫入 |
noatime | 完全禁用 atime 更新 | 高性能、SSD、日誌數據盤 |
discard | 啟用 TRIM(SSD) | SSD 分區,或定時 fstrim |
uid=/gid= | 指定文件擁有者(vfat/ntfs/exfat 等無權限 FS) | 普通用戶訪問 Windows 分區 |
iocharset=utf8 | 字符集編碼 | vfat/smbfs 中文文件名正常顯示 |
mkdir -p /mnt/iso
mount -o loop -t iso9660 /path/to/CentOS-7.iso /mnt/iso
# 或簡寫(自動識別 iso9660+loop)
mount -o loop /path/to/CentOS-7.iso /mnt/iso
# 查看分區
lsblk -f
# 安裝 ntfs-3g (讀寫支持)
yum install -y ntfs-3g # CentOS/RHEL
apt install -y ntfs-3g # Debian/Ubuntu
# 掛載 (自動用 ntfs-3g)
mount -t ntfs-3g /dev/sda3 /mnt/win_d
# 指定用戶權限、字符集
mount -t ntfs-3g -o uid=1000,gid=1000,iocharset=utf8 /dev/sda3 /mnt/win_d
# 卸載
umount /mnt/win_d
# FAT32
mount -t vfat -o uid=1000,gid=1000,iocharset=utf8 /dev/sdb1 /mnt/usb
# exFAT (需安裝 exfat-fuse)
mount -t exfat /dev/sdb1 /mnt/usb
# 客戶端安裝
yum install -y nfs-utils
# 掛載
mount -t nfs4 192.168.1.100:/data/share /mnt/nfs
# 掛載選項優化
mount -t nfs4 -o rsize=1048576,wsize=1048576,hard,intr,timeo=600,retrans=2 192.168.1.100:/data/share /mnt/nfs
hard:掛載點不可用時進程阻塞等待(數據安全);soft:超時返回錯誤(可能數據丟失)。生產數據**必用 hard。
# 安裝
yum install -y cifs-utils
# 掛載 (交互輸入密碼)
mount -t cifs //192.168.1.100/share /mnt/smb -o username=admin
# 自動化腳本 (憑證文件 /root/.smbcred 權限 600)
# 文件內容:
# username=admin
# password=secret
mount -t cifs //192.168.1.100/share /mnt/smb -o credentials=/root/.smbcred,uid=1000,gid=1000,iocharset=utf8,vers=3.0
vers=3.0 指定 SMB 3.0 協議(加密、性能更好),避免降級到不安全的 SMB 1.0。
# 將目錄掛載到另一位置(同一文件系統,不佔用額外空間)
mount --bind /var/www/html /home/user/webroot
# 僅讀綁定 (Linux 2.6.26+)
mount --bind -o ro /var/www/html /home/user/webroot
格式:device mount_point fstype options dump fsck_order
# 範例
/dev/sdb1 /data ext4 defaults,noatime,discard 0 2
192.168.1.100:/data/share /mnt/nfs nfs4 _netdev,hard,intr,rsize=1048576,wsize=1048576 0 0
//192.168.1.100/share /mnt/smb cifs _netdev,credentials=/root/.smbcred,uid=1000,gid=1000,vers=3.0 0 0
LABEL=BACKUP /backup ext4 defaults,nofail 0 2
UUID=xxxx-xxxx /mnt/usb vfat defaults,nofail,uid=1000,gid=1000,iocharset=utf8 0 0
/etc/fstab。| 現象 | 可能原因 | 解決 |
|---|---|---|
mount: /mnt/point: mount point does not exist | 掛載點目錄未創建 | mkdir -p /mnt/point |
wrong fs type, bad option, bad superblock | 文件系統類型錯誤、損壞、缺少內核模塊 | lsblk -f 確認類型;dmesg -T 看內核日誌;安裝對應工具包 |
Permission denied (CIFS/NFS) | 用戶名/密碼錯、服務端權限、防火牆 | 檢查憑證、服務端導出配置、開放端口 (NFS: 2049, SMB: 445) |
| 中文文件名亂碼 | 字符集不匹配 | 加 iocharset=utf8 (vfat/cifs) 或 nls=utf8 (smbfs 舊版) |
NTFS 掛載報錯 Windows is hibernated | Windows 快速啟動/休眠未完全關機 | Windows 完整關機 shutdown /s /t 0 或掛載加 ro、remove_hiberfile |
umount /mnt/point:卸載(目標忙時 lsof /mnt/point 或 fuser -mv /mnt/point 找佔用進程)。umount -l /mnt/point:懶卸載(立即斷開命名空間,資源釋放延後)。findmnt / mount | column -t:樹狀/表格查看當前掛載。cat /proc/mounts:內核實際掛載表(最權威)。熟練運用 mount 及 /etc/fstab,配合 lsblk、blkid、findmnt 等工具,能讓存儲資源在 Linux 系統中靈活、安全、高效地被訪問與管理。