跳至內容

USB 存儲設備

出自 Arch Linux 中文维基

本文介紹了如何在 Linux 下使用流行的 USB 閃存盤。不過,它也適用於其他設備,如數碼相機,這些設備就像 USB 存儲設備一樣。

如果你的系統是最新的 Arch 內核,並使用現代桌面環境,你的設備就會直接顯示在桌面上,無需打開控制台。

使用 udisks 自動安裝[編輯 | 編輯原始碼]

這是最簡單、最常用的方法。許多桌面環境都使用這種方法,但也可以單獨使用。

詳細信息,包括掛載助手列表,請參閱 Udisks

手動掛載[編輯 | 編輯原始碼]

注意:在確定 Arch Linux 無法掛載 USB 設備之前,請務必檢查所有可用端口。有些端口可能不共享同一個控制器,從而導致無法掛載設備。

獲取支持 usb_storage 的內核[編輯 | 編輯原始碼]

如果不使用定製的內核,就可以使用,因為所有 Arch Linux 內核都已正確配置。如果使用定製內核,請確保其編譯了 SCSI-Support、SCSI-Disk-Support 和 usb_storage。如果使用最新的 udev,只需插入設備,系統就會自動加載所有必要的內核模塊。

識別設備[編輯 | 編輯原始碼]

訪問存儲設備首先需要內核分配的標識符。詳見文件系統#查看現有文件系統

新插入的設備通常會顯示在 Journal 中。

掛載 USB 存儲器[編輯 | 編輯原始碼]

請參閱文件系統#掛載文件系統

如果 mount 無法識別設備的文件系統,可以嘗試使用 -t 參數,詳情請參見 mount(8) 。如果掛載失敗,可以嘗試重新創建文件系統,甚至重新分區磁盤

注意:有關使用 sudo 的掛載/卸載腳本示例,請參閱 [1]

允許普通用戶寫入[編輯 | 編輯原始碼]

如果想讓非 root 用戶寫入 U 盤,可以發出以下命令:

# mount -o gid=users,fmask=113,dmask=002 /dev/sda1 /mnt/usbstick

如果不起作用,請確保文件系統可以以根用戶身份掛載和寫入,詳見上一節。

使用 fstab 以作為普通用戶操作[編輯 | 編輯原始碼]

如果想讓普通用戶執行掛載/卸載操作,請參閱 FAT#以普通用戶身份寫入 FAT32

掛載工具[編輯 | 編輯原始碼]

多個掛載工具便於以普通用戶身份掛載。

問題解決[編輯 | 編輯原始碼]

未檢測到 USB 存儲設備[編輯 | 編輯原始碼]

如果您已連接 USB 存儲設備,但它未被 lsblk 列出,而是出現在 journal 中,但未被分配塊設備,請參閱常規故障排除#內核升級後部分外設無法使用

此外,請確保您的 BIOS 已啟用 XHCI Handoff 和 EHCI Handoff,但對於大多數現代設備來說,這通常不是問題。

卸載所有分區後設備未關閉[編輯 | 編輯原始碼]

這篇文章的某些內容需要擴充。

原因:請建議如何在卸載後自動關閉設備。 (在 Talk:USB 存儲設備 中討論)

如果不關閉設備電源,可能會導致:

  • 硬盤驅動器沒有停放磁頭,在旋轉時發出微弱的刮擦聲並降低設備性能 [2],或者
  • 固態硬盤(尤其是老式固態硬盤)不刷新緩存緩衝區或更新映射表,導致數據丟失 [3]

卸載分區時,設備仍處於開機狀態。為了安全地卸載,您應該要求系統先將其關閉: [4]

# echo 1 > /sys/block/disk_name/device/delete

如果使用 udisks,則可以使用這些命令: [5]

$ udisksctl unmount -b /dev/sdXY
$ udisksctl power-off -b /dev/sdX

設備已檢測到,但未註冊為可安裝設備[編輯 | 編輯原始碼]

一套 udev 規則,其中包括一條出於各種原因忽略某些特定設備的規則。某些硬件設備,如數碼相機、便攜式錄音機等,可能會以某種方式格式化 usb 存儲,從而觸發忽略規則。你可以使用以下命令檢查是否應用了這些規則,然後在默認設置中找到相應的條件:

$ udevadm info --attribute-walk --name=device_name | grep UDISKS_IGNORE

如果是這種情況您的設備已將此屬性設置為 1,您可以按照。udev 頁面使用自定義規則來覆蓋它。