wiki:waue/2011/0309

Version 3 (modified by waue, 13 years ago) (diff)

--

Exfat 格式支援 (windos, linux, mac)
解決 mac 10.5.4 格式化後, windows & linux 都無法掛載的問題

exFAT(Extended File Allocation Table,又名FAT64)是一種特別適合於閃存驅動器的檔案系統 fat16, fat32, fat64 的比較詳情於此:http://zh.wikipedia.org/zh-hant/FAT32

mac

mac 在 os 10.5.4 之後,就已經支援exfat 的格式化,讀,寫 了,(但其格式化有雷,詳情於後),因此不需額外處理。

windows

windows xp 一開始並不支援,因此安裝patch 即可支援下載exFAT 檔案系統驅動程式更新套件

windows vista sp1 和 windows 7 都已經支援,因此不需而外安裝

linux

讓linux 支援 exfat 的方式

apt-get install scons  libfuse-dev subversion
svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only
cd exfat-read-only
scons
scons install

問題排除

不過陷阱在於,用mac mini server 選擇exfat 作格式化,似乎只有自己看得懂,安裝了patch的 windows 與 fuse-exfat 的linux 都無法讀取,一整個感覺良好。

用windows 系統來掛載該檔案系統,輕則說無法掛載,嚴重的話可能導致系統出錯。

如以下用linux 掛載 mac 用exfat 格式化後的檔案系統,會出現 invalid VBR checksum 的錯誤....

$ sudo mount -t exfat-fuse -o allow_other /dev/sdc1 /mnt/
FUSE exfat 0.9.4
ERROR: invalid VBR checksum 0xd93a39db (expected 0xd93a39fb).

以下經過用ubuntu 小小測試成功破解以上限制。

到exfat的專案下,將 libexfat/mount.c 的 188~194 行註解,如下

        /* use zero_sector as a temporary buffer for VBR checksum verification *
        if (verify_vbr_checksum(ef->zero_sector, SECTOR_SIZE(*ef->sb), ef->fd) != 0)
        {
                free(ef->zero_sector);
                close(ef->fd);
                free(ef->sb);
                return -EIO;
        }*/

並重新執行 scons ; sudo scons install 即可