使用 exFAT 格式讓 USB 隨身碟在 Windows、OS X 與 Linux 間複製檔案

by 11月 11, 2014 3 意見                

身為一個 IT 騎牆派,同時擁有 Windows 7 x64 + Windows Server 2012 R2,OS X 10.10 及 CentOS 6.5 x86 等三大平台的系統也是很正常的 ... (星爺上身 ...XDD)

各系統之間也用了 Gigabit Ethernet 的區域網路連接起來,平常使用起來並沒有什麼問題,若是在辦公室裡網路流量較大的狀況下,傳輸大型檔案就是一個很要命的事情,保證會讓區域網路變得更塞,同事們也會用力的賞我很多個白眼。

這時候,也只能勤勞一點,多走馬路、少用網路,用外接磁碟乖乖的複製+貼上

不過事情當然沒有那麼簡單,Windows 預設的 檔案系統 (File System)NTFS,OS X 是 Mac OS 擴充格式(日誌式),而 CentOS 則是 ext4,勢必要找一個能讓三大系統都願意買單的格式,才能搞定這件事情。

那 ... 到底有什麼格式才能辦的到呢 ???


我們先來看一下三個系統各支援什麼格式。

首先是 Windows,它支援了 FAT32、NTFS、exFAT。

而 OS X 支援  Mac OS 擴充格式(日誌式)、 Mac OS 擴充格式(區分大小寫、日誌式)、MS-DOS (FAT)、exFAT。

至於 CentOS 支援的格式就很多了,主要常見的格式有 ext3、ext4、vfat、NTFS,vfat 指的就是 FAT32。

看來,三大平台共通的格式就是 FAT32,那我們實際來試一下。


很好,Windows  可讀可寫 ...


OS X 也沒問題 ...


CentOS 可讀可寫 ...

太好了,打完收工 !!!
...
...
...

等等,我們似乎忘了什麼,說好的大型檔案呢???


Windows ... 寫不進去。


OS X ... 沒有辦法。


CentOS ... 無能為力。

維基百科 - FAT 裡有提到,FAT32 單一分割區支援到 2TB,單一檔案大小上限為 4 GB。 看來,FAT32 不是最佳解,那還有什麼格式可行呢?

NTFS 是 Microsoft 的專屬格式,請參閱 Microsoft MSDN - NTFS 與 FAT 及 FAT32 的比較OS X 可讀不可寫,CentOS 讀不到。

Mac OS 擴充格式(日誌式) 是 Apple 的專屬格式,請參閱 Mac OS X:「Mac OS 擴充」格式(HFS Plus)的卷宗和檔案限制Windows 跟 CentOS 都讀不到。

ext4 是 Unix-Like 系統的開放格式,請參閱 維基百科 - ext4,Windows 跟 OS X 都讀不到。

當然我們可以找的到很多軟體或套件讓這些格式來跨平台共用,但是畢竟不是系統原生所支援的方法,穩定性、相容性都令人擔心 ....

最後的希望只剩下 exFAT 了,根據 Microsoft Technology Licensing 的資料,exFAT 雖然是 Microsoft 的專利,不過有開放申請,尤其特別適用於快閃記憶體 (Flash Memory)。


Windows


在 Windows XP 及 Server 2003 要支援 exFAT,必須額外安裝 KB955704 更新,請參閱 Microsoft Support - 說明 exFAT 檔案系統驅動程式的更新套件,Vista SP1、Server 2008 之後的版本已經提供原生支援至於 Windows 2000 之前的版本,就請忘了 exFAT 這回事吧 ...。

在 Windows 下還有幾點要注意的地方
  • 僅支援在外接的磁碟使用 exFAT 來格式化,內接的磁碟不會出現 exFAT 的選項。
  • 只要是外接的磁碟,不管是卸除式磁碟 (隨身碟、記憶卡) 或 IDE、SATA 外接硬碟都可以使用 exFAT。 
  • 因為內接磁碟不支援,所以也無法使用 exFAT 做為系統分割區的檔案系統,或許網路上會有勇者想嘗試看看 .... XD

OS X


OS X 10.6 Snow Leopard 就開始原生支援 exFAT,不需要特別安裝任何更新或 App,至於 OS X 10.5 Leopard 之前的版本,那就請快點買一台新的 iMac Retina 5K 吧,好用又免費的 OS X 10.10 Yosemite 在等待著你 !!!


Linux


由於 Linux Kernel 的 File System 目前尚未納入 exFAT 的原生支援,我們必須安裝 Free ExFAT file system implementation 提供的 FUSE 模組進行支援。

目前最新版本是 2014-07-08 釋出的 1.1.0 版原始碼,安裝及使用的方法可以參閱 HOWTO - Quick Start Guide

不想從原始碼自己編譯,或是覺得自行編譯模組不好管理的話,也可以加入 RPM Fusion 套件庫,他們已經打包好了,我們只要直接用 yum 安裝就好了。

在 CentOS 6.x 使用 RPM Fusion 套件庫要注意,Configuration - Important notes 有提到必須先加入 EPEL 套件庫才可以。

我們可以直接用 yum 安裝 EPEL 套件庫資訊。
yum -y install epel-release

再按照下面的指令安裝 RPM Fusion 套件庫資訊。
su -c 'yum localinstall -y --nogpgcheck http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/6/i386/rpmfusion-nonfree-release-6-1.noarch.rpm'

更新一下套件庫資訊。
yum -y update

更新後就可以找到 fuse-exfat 套件了。
yum list | grep exfat


把它安裝起來。
yum -y install fuse-exfat

最後把 exFAT 格式化過的 USB 隨身碟掛載到系統裡,就可以正常的讀寫檔案了。
mount.exfat-fuse /dev/sdb1 /media

mount -t exfat /dev/sdb1 /media

如果有需要在 Linux 裡格式化成 exFAT 的話,那就要安裝 exfat-utils 工具。
yum -y install exfat-utils

安裝完成之後,就可以在 Linux 裡格式化成 exFAT 了。
mkfs.exfat /dev/sdb1

mkfs -t exfat /dev/sdb1

參考資料


更新紀錄

  • 2014/11/11 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

3 則留言 :

  1. 感謝分享!請問為什麼有些檔案才幾MB卻寫不進去exFAT的外掛硬碟?謝謝

    回覆刪除
    回覆
    1. 我剛剛試了一下 3.9 MB 的檔案,很正常啊!!!
      考慮一下把外接硬碟重新 FORMAT 一次吧,希望不是因為壞軌。

      刪除
    2. 謝謝,我是剛從PC系統轉到Mac筆電,先前的備存外接硬碟只能讀取不能寫。剛好手邊有一顆新的500G硬碟,從ASUS win8 筆電拆下來,原來的筆電換成SSD,這顆500G硬碟拿來作為Mac備份用。就發現之前,由PC讀寫入到Mac的有些比較舊的pdf與圖檔,寫入Mac時Ok,但從Mac寫入這個備份硬碟時,Mac反應說沒有內容,問還要不要寫入到硬碟?大概一千個檔案,有個位數檔案有這樣的問題。

      刪除