Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux mount 掛載命令全攻略:光盤鏡像、USB、Windows/NFS 共享實戰

編輯:Linux 教學

前言

`mount` 是 Linux 掛載文件系統的核心命令,支援本地塊設備、回環設備、網路文件系統、虛擬文件系統等多類型掛載。本文系統整理常用文件系統類型參數、掛載選項、自動掛載配置、權限處理與故障排查,涵蓋 ISO 鏡像、USB 存儲、Windows SMB、Linux NFS 等高頻場景。

一、命令語法與核心選項

mount [-t fstype] [-o options] device dir

常用選項:
  -t vfstype    指定文件系統類型 (通常可自動檢測)
  -o options    掛載選項,逗號分隔
  -r, -o ro     唯讀掛載
  -w, -o rw     讀寫掛載 (默認)
  -n            不寫入 /etc/mtab (救援模式用)
  -a            掛載 /etc/fstab 中所有文件系統
  --bind        綁定掛載 (目錄映射)
  --move        移動掛載點
  --make-shared/slave/private/unbindable  傳播屬性修改

二、常用文件系統類型對照表

類型 (-t)適用場景典型設備/來源
ext4, xfs, btrfs, f2fsLinux 原生磁碟分區/dev/sdX, /dev/nvmeXnY, LVM 邏輯卷
vfatFAT32 USB/移動硬碟/dev/sdX1
ntfs / ntfs-3gNTFS Windows 分區/移動硬碟/dev/sdX1
exfatexFAT 大容量閃存/dev/sdX1
iso9660光盤/ISO 鏡像 (唯讀)/dev/cdrom, file.iso
udfDVD/藍光/ISO 鏡像/dev/cdrom, file.iso
nfs / nfs4Linux/Unix 網路共享server:/export/path
cifs / smbfsWindows SMB/CIFS 共享//server/share
fuse.*用戶態文件系統sshfs, rclone, goofys...
tmpfs純內存文件系統none (size=1G)
proc, sysfs, devpts虛擬文件系統none

三、高頻場景實戰指令

1. 掛載 ISO 光盤鏡像 (回環設備)

# 建立掛載點
mkdir -p /mnt/iso

# 方式一:直接掛載 (內核自動回環)
mount -t iso9660 -o loop,ro /path/to/image.iso /mnt/iso

# 方式二:顯式回環設備 (舊版內核)
losetup /dev/loop0 /path/to/image.iso
mount -t iso9660 /dev/loop0 /mnt/iso

# 卸載
umount /mnt/iso
losetup -d /dev/loop0  # 若用 losetup

2. 製作 ISO 鏡像

# 從光碟
dd if=/dev/cdrom of=/path/image.iso bs=4M status=progress
# 或
cp /dev/cdrom /path/image.iso

# 從目錄
mkisofs -r -J -V "VOLUME_LABEL" -o /path/image.iso /source/dir
# -r: Rock Ridge 擴展 (保留權限/擁有者)
# -J: Joliet 擴展 (長文件名/Unicode)
# -V: 卷標簽

3. 掛載 USB/移動硬碟

# 1. 識別設備
lsblk -f
# 或
fdisk -l
dmesg -T | tail -20

# 2. 建立掛載點
mkdir -p /mnt/usb

# 3. 掛載 (根據文件系統類型)
# FAT32
mount -t vfat -o uid=1000,gid=1000,iocharset=utf8 /dev/sdb1 /mnt/usb

# NTFS (需安裝 ntfs-3g)
mount -t ntfs-3g -o uid=1000,gid=1000 /dev/sdb1 /mnt/usb

# exFAT (需安裝 exfat-fuse/exfatprogs)
mount -t exfat /dev/sdb1 /mnt/usb

# ext4 (Linux 原生)
mount /dev/sdb1 /mnt/usb

# 4. 卸載
umount /mnt/usb

4. 掛載 Windows SMB/CIFS 共享

# 安裝客戶端
# CentOS/RHEL: yum install cifs-utils
# Ubuntu/Debian: apt install cifs-utils

# 建立掛載點
mkdir -p /mnt/smb

# 密碼文件 (避免明文顯示在進程列表)
cat > /root/.smbcred <<'EOF'
username=domain\user
password=your_password
domain=WORKGROUP
EOF
chmod 600 /root/.smbcred

# 掛載
mount -t cifs //192.168.1.100/share /mnt/smb \
  -o credentials=/root/.smbcred,uid=1000,gid=1000,iocharset=utf8,vers=3.0

# 關鍵選項:
# vers=1.0/2.0/2.1/3.0/3.1.1  SMB 協議版本 (默認協商,老舊 NAS 可能需指定 1.0)
# sec=ntlmssp/ntlmv2/krb5     安全模式
# cache=strict/loose/none     緩存策略
# nounix                      禁用 Unix 擴展 (避免權限問題)

5. 掛載 NFS 共享 (Linux/Unix)

# 客戶端安裝
# CentOS/RHEL: yum install nfs-utils
# Ubuntu/Debian: apt install nfs-common

# 服務端配置 (/etc/exports)
/data/nfs  192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
/data/ro   192.168.1.0/24(ro,sync,root_squash)

# 服務端啟動
systemctl enable --now nfs-server rpcbind
exportfs -rv  # 重新導出

# 客戶端掛載
mkdir -p /mnt/nfs
mount -t nfs4 192.168.1.50:/data/nfs /mnt/nfs \
  -o rw,hard,intr,rsize=1048576,wsize=1048576,timeo=600,retrans=2

# 關鍵選項:
# hard/intr       硬掛載+允許中斷 (推薦生產)
# soft            軟掛載 (超時返回錯誤,可能數據損壞)
# nfsvers=4       指定 NFSv4
# sec=sys/krb5/krb5i/krb5p  安全模式
# noac            禁用屬性緩存 (強一致性,性能大幅下降)

6. 綁定掛載與傳播 (容器/命名空間常用)

# 將 /host/path 映射到 /container/path
mount --bind /host/path /container/path

# 僅讀綁定
mount --bind /host/path /container/path
mount -o remount,ro,bind /container/path

# 遞歸綁定 (含子掛載點)
mount --rbind /host /container

# 修改傳播屬性 (systemd/容器隔離)
mount --make-shared /mnt
mount --make-slave /mnt
mount --make-private /mnt
mount --make-unbindable /mnt

四、永久掛載配置 (/etc/fstab)

# 格式:     
# 設備建議使用 UUID 或 LABEL (blkid 查看)

# 示例
UUID=1234-5678  /mnt/data  ext4  defaults,noatime  0  2
LABEL=BACKUP    /mnt/backup xfs  defaults,nofail   0  2
/dev/sdb1       /mnt/usb   vfat uid=1000,gid=1000,iocharset=utf8,nofail 0 0
192.168.1.50:/data/nfs /mnt/nfs nfs4 rw,hard,intr,_netdev 0 0
//192.168.1.100/share /mnt/smb cifs credentials=/root/.smbcred,uid=1000,gid=1000,_netdev 0 0
tmpfs           /run/cache tmpfs size=2G,mode=1777 0 0

# 關鍵選項:
# _netdev       網路設備,等待網路就緒再掛載 (systemd 依賴)
# nofail        設備不存在不阻塞開機
# noatime       不更新訪問時間 (提升 SSD 性能)
# discard       SSD TRIM 支援 (ext4/xfs/btrfs)
# x-systemd.automount  按需自動掛載 (加快開機)

五、權限與中文亂碼處理

文件系統權限控制中文編碼
ext4/xfs/btrfs原生 Linux 權限 (uid/gid/mode)UTF-8 原生支援
vfat掛載選項 uid/gid/umask/fmask/dmaskiocharset=utf8 (舊版 utf8)
ntfs-3g掛載選項 uid/gid/umask/fmask/dmask + permissionsUTF-8 原生支援
exfat掛載選項 uid/gid/umaskUTF-8 原生支援
cifs掛載選項 uid/gid/forceuid/forcegid/file_mode/dir_mode + nopermiocharset=utf8
nfs服務端 exports 控制 (root_squash/all_squash) + 客戶端 uid/gid 映射UTF-8 (NFSv4 強制)

六、常見故障排查

錯誤現象可能原因解決方案
mount: wrong fs type未安裝對應驅動 / 類型錯誤安裝 ntfs-3g, exfat-fuse, cifs-utils, nfs-utils;指定正確 -t
Permission denied權限不足 / 唯讀掛載 / Windows 共享密碼錯誤檢查 uid/gid/credentials;Windows 共享權限;NTFS 需正常關機 (fast startup 關閉)
Stale file handle (NFS)服務端重啟/重新導出,客戶端緩存失效umount -f -l;重新掛載;服務端避免頻繁 exportfs -r
Host is down (CIFS)網路不通 / SMB 版本不匹配 / 防火牆ping 測試;指定 vers=1.0/2.0/3.0;開放 445/139 埠
中文檔名亂碼/問號vfat/cifs 缺 iocharset加 iocharset=utf8;檢查 locale (locale -a 含 zh_TW.UTF-8)
target is busy進程佔用掛載點lsof /mnt/xxx;fuser -km /mnt/xxx;umount -l (惰性卸載)
Read-only file system文件系統錯誤自動轉唯讀 / 掛載選項 rodmesg 檢查錯誤;fsck 修復;重新掛載 rw

七、進階:systemd 掛載單元

# /etc/systemd/system/mnt-data.mount
[Unit]
Description=Mount Data Volume
After=network-online.target
Wants=network-online.target

[Mount]
What=UUID=1234-5678
Where=/mnt/data
Type=ext4
Options=defaults,noatime
TimeoutSec=30

[Install]
WantedBy=multi-user.target

# 啟用
systemctl enable --now mnt-data.mount
# 對應自動生成 mnt-data.automount (按需掛載)

結語

掌握 `mount -t 類型 -o 選項 設備 掛載點` 核心語法,熟記 vfat/ntfs/cifs/nfs 的權限與編碼關鍵選項 (uid/gid/iocharset/vers/_netdev/nofail),善用 UUID/LABEL 與 fstab/systemd-mount 實現持久化,即可輕鬆應對 Linux 下各類存儲掛載需求。遇到故障優先查看 `dmesg -T`、`journalctl -u mnt-xxx.mount`、`mount | grep xxx` 定位根因。

Copyright © Windows教程網 All Rights Reserved