Linux 下使用 USB 儲存裝置需手動掛載,本文提供從裝置偵測、建立掛載點、掛載、存取到安全卸載的標準流程,適用各大發行版。
fdisk -l
輸出範例:
Disk /dev/sda: ... (第一顆硬碟) /dev/sda1, /dev/sda2 Disk /dev/sdb: ... (第二顆硬碟) /dev/sdb1, /dev/sdb2
SCSI/SATA/USB 磁碟通常以 sd 開頭命名。
fdisk -l
比對差異,新增裝置通常為 /dev/sdc、/dev/sdd 等。若有分區則為 /dev/sdc1。
Disk /dev/sdc: 8 GB (新增的 USB 隨身碟) /dev/sdc1: ... (FAT32 分區)
mkdir -p /mnt/usb
mount /dev/sdc1 /mnt/usb
mount -t ntfs-3g /dev/sdc1 /mnt/usb (需安裝 ntfs-3g)mount -t exfat /dev/sdc1 /mnt/usb (需安裝 exfat-fuse)-o iocharset=utf8 (vfat/ntfs)ls /mnt/usb
cp /mnt/usb/file.txt ~/
# 正常讀寫操作
umount /mnt/usb
# 或 umount /dev/sdc1
務必確認無程式正在存取該掛載點 (含終端機 cd 在該目錄),否則會顯示「target is busy」。可用 lsof /mnt/usb 或 fuser -m /mnt/usb 找出佔用程序。
| 現象 | 可能原因 | 解決方法 |
|---|---|---|
mount: /dev/sdc1 already mounted | 已掛載他處 | umount /dev/sdc1 後重掛 |
mount: unknown filesystem type | 缺檔案系統驅動 | 安裝 ntfs-3g/exfat-fuse/hfsprogs |
| 寫入權限被拒 | vfat/ntfs 權限預設 root | 加選項 -o uid=1000,gid=1000,umask=022 |
| 裝置不見 (dmesg 無訊息) | USB 埠/線/裝置故障 | 換埠/換線/用 lsusb 確認 |
# 以 UUID 避免裝置名稱變動
UUID=XXXX-XXXX /mnt/usb vfat defaults,noauto,user,uid=1000,iocharset=utf8 0 0
noauto:開機不自動掛載 (避免裝置未插入報錯)user:允許一般用戶執行 mount /mnt/usbblkid 查詢 UUID