| | 1 | {{{ |
| | 2 | #!html |
| | 3 | <div style="text-align: center; color:#151B8D"><big style="font-weight: bold;"><big><big> |
| | 4 | Linux Exfat 格式支援 |
| | 5 | </big></big></big></div> <div style="text-align: center; color:#7E2217"><big style="font-weight: bold;"><big> |
| | 6 | 解決 mac 10.5.4 格式化後, windows & linux 都無法掛載的問題 |
| | 7 | </big></big></div> |
| | 8 | }}} |
| | 9 | [[PageOutline]] |
| | 10 | |
| | 11 | exFAT(Extended File Allocation Table,又名FAT64)是一種特別適合於閃存驅動器的檔案系統 |
| | 12 | |
| | 13 | {{{ |
| | 14 | #!html |
| | 15 | <tbody><tr style="text-align: center; font-size: larger; margin-left: inherit;" bgcolor="lightgreen"> |
| | 16 | <th></th> |
| | 17 | <th colspan="3">FAT</th> |
| | 18 | </tr> |
| | 19 | <tr style="vertical-align: top;"> |
| | 20 | <th bgcolor="lightgrey"><a href="/wiki/%E8%BB%9F%E4%BB%B6%E8%A8%AD%E8%A8%88%E5%B8%AB" title="軟件設計師" class="mw-redirect">開發商</a></th> |
| | 21 | <td colspan="3"><a href="/wiki/%E5%BE%AE%E8%BB%9F" class="mw-redirect" title="微軟">微軟</a></td> |
| | 22 | </tr> |
| | 23 | <tr style="vertical-align: top;"> |
| | 24 | <th rowspan="2" bgcolor="lightgrey">全名</th> |
| | 25 | <td colspan="3">檔案配置表</td> |
| | 26 | |
| | 27 | </tr> |
| | 28 | <tr> |
| | 29 | <td>(12位元版本)</td> |
| | 30 | <td>(16位元版本)</td> |
| | 31 | <td>(32位元版本)</td> |
| | 32 | </tr> |
| | 33 | <tr style="vertical-align: top;"> |
| | 34 | <th bgcolor="lightgrey">發布</th> |
| | 35 | <td>1980年前<br> |
| | 36 | (<a href="/wiki/Microsoft_BASIC" title="Microsoft BASIC">微軟Disk BASIC</a>)</td> |
| | 37 | |
| | 38 | <td>1987年11月<br> |
| | 39 | (<a href="/wiki/Compaq" class="mw-redirect" title="Compaq">Compaq</a> <a href="/wiki/MS-DOS" title="MS-DOS">DOS 3.31</a>)</td> |
| | 40 | <td>1996年8月<br> |
| | 41 | (<a href="/wiki/Windows_95">Windows 95</a> OSR2)</td> |
| | 42 | </tr> |
| | 43 | <tr style="vertical-align: top;"> |
| | 44 | |
| | 45 | <th bgcolor="lightgrey"><a href="/wiki/%E7%A1%AC%E7%A3%81%E7%A2%9F%E5%88%86%E5%89%B2" title="硬磁碟分割" class="mw-redirect">分區標識</a></th> |
| | 46 | <td>0x01(<a href="/wiki/MBR" class="mw-redirect" title="MBR">MBR</a>)</td> |
| | 47 | <td>0x04, 0x06, 0x0E(<a href="/wiki/MBR" class="mw-redirect" title="MBR">MBR</a>)</td> |
| | 48 | <td>0x0B, 0x0C(<a href="/wiki/MBR" class="mw-redirect" title="MBR">MBR</a>)<br> |
| | 49 | <small>EBD0A0A2-B9E5-4433<br> |
| | 50 | -87C0-68B6B72699C7(<a href="/wiki/%E5%85%A8%E5%B1%80%E5%94%AF%E4%B8%80%E6%A8%99%E8%AD%98%E5%88%86%E5%8D%80%E8%A1%A8" title="全局唯一標識分區表" class="mw-redirect">GPT</a>)</small></td> |
| | 51 | |
| | 52 | </tr> |
| | 53 | <tr style="text-align: center; margin-left: inherit;" bgcolor="lightgreen"> |
| | 54 | <th>結構</th> |
| | 55 | <th><b>FAT12</b></th> |
| | 56 | <th><b>FAT16</b></th> |
| | 57 | <th><b>FAT32</b></th> |
| | 58 | </tr> |
| | 59 | <tr style="vertical-align: top;"> |
| | 60 | <th bgcolor="lightgrey">目錄內容</th> |
| | 61 | <td colspan="3" align="center"><a href="/wiki/%E8%A1%A8%E6%A0%BC">表格</a></td> |
| | 62 | </tr> |
| | 63 | |
| | 64 | <tr style="vertical-align: top;"> |
| | 65 | <th bgcolor="lightgrey">檔案配置</th> |
| | 66 | <td colspan="3" align="center"><a href="/wiki/%E9%93%BE%E8%A1%A8" title="鏈表">連結串列</a></td> |
| | 67 | </tr> |
| | 68 | <tr style="vertical-align: top;"> |
| | 69 | <th bgcolor="lightgrey">壞塊</th> |
| | 70 | <td colspan="3" align="center">對含損壞磁區的叢集加以標誌</td> |
| | 71 | </tr> |
| | 72 | <tr style="text-align: center; margin-left: inherit;" bgcolor="lightgreen"> |
| | 73 | <th>限制</th> |
| | 74 | <th><b>FAT12</b></th> |
| | 75 | |
| | 76 | <th><b>FAT16</b></th> |
| | 77 | <th><b>FAT32</b></th> |
| | 78 | </tr> |
| | 79 | <tr style="vertical-align: top;"> |
| | 80 | <th bgcolor="lightgrey">最大檔案大小</th> |
| | 81 | <td>32 <a href="/wiki/Mebibyte" title="Mebibyte">MB</a></td> |
| | 82 | <td>2 <a href="/wiki/Gibibyte" title="Gibibyte">GB</a></td> |
| | 83 | <td>4 <a href="/wiki/Gibibyte" title="Gibibyte">GB</a> - 1 byte<br> |
| | 84 | |
| | 85 | (2<sup>32</sup>-1)</td> |
| | 86 | </tr> |
| | 87 | <tr style="vertical-align: top;"> |
| | 88 | <th bgcolor="lightgrey">最大檔案數量</th> |
| | 89 | <td>4,077<br> |
| | 90 | (2<sup>12</sup>-19)</td> |
| | 91 | <td>65,517<br> |
| | 92 | (2<sup>16</sup>-19)</td> |
| | 93 | |
| | 94 | <td>268,435,437<br> |
| | 95 | (2<sup>28</sup>-19)</td> |
| | 96 | </tr> |
| | 97 | <tr style="vertical-align: top;"> |
| | 98 | <th bgcolor="lightgrey">最長檔名限制</th> |
| | 99 | <td colspan="3"><a href="/wiki/8.3">8.3</a> 或者 長文件名255個字符</td> |
| | 100 | </tr> |
| | 101 | <tr style="vertical-align: top;"> |
| | 102 | <th bgcolor="lightgrey">最大卷大小</th> |
| | 103 | |
| | 104 | <td>32 <a href="/wiki/Mebibyte" title="Mebibyte">MB</a></td> |
| | 105 | <td>2 <a href="/wiki/Gibibyte" title="Gibibyte">GB</a>,<br> |
| | 106 | <small>使用 64KB 叢集時可達 4 <a href="/wiki/Gibibyte" title="Gibibyte">GB</a>,但非所有系統均支援</small></td> |
| | 107 | <td>2 <a href="/wiki/Tebibyte" title="Tebibyte">TB</a> <small><br> |
| | 108 | 使用 32KB 叢集時可達 8 <a href="/wiki/Tebibyte" title="Tebibyte">TB</a></small></td> |
| | 109 | |
| | 110 | </tr> |
| | 111 | <tr style="text-align: center; margin-left: inherit;" bgcolor="lightgreen"> |
| | 112 | <th>Features</th> |
| | 113 | <th><b>FAT12</b></th> |
| | 114 | <th><b>FAT16</b></th> |
| | 115 | <th><b>FAT32</b></th> |
| | 116 | </tr> |
| | 117 | <tr style="vertical-align: top;"> |
| | 118 | <th bgcolor="lightgrey">記錄日期</th> |
| | 119 | <td colspan="3">創建、修改、訪問</td> |
| | 120 | |
| | 121 | </tr> |
| | 122 | <tr style="vertical-align: top;"> |
| | 123 | <th bgcolor="lightgrey">日期範圍</th> |
| | 124 | <td colspan="3"><a href="/wiki/1980%E5%B9%B4">1980年</a><a href="/wiki/1%E6%9C%881%E6%97%A5">1月1日</a>至<a href="/w/index.php?title=2107%E5%B9%B4&action=edit&redlink=1" class="new" title="2107年 (頁面未存在)">2107年</a><a href="/wiki/12%E6%9C%8831%E6%97%A5">12月31日</a></td> |
| | 125 | </tr> |
| | 126 | <tr> |
| | 127 | <th bgcolor="lightgrey">日期解析度</th> |
| | 128 | <td colspan="3" style="text-align: center;">2 <a href="/wiki/%E7%A7%92" title="秒">s</a></td> |
| | 129 | |
| | 130 | </tr> |
| | 131 | <tr style="vertical-align: top;"> |
| | 132 | <th bgcolor="lightgrey"><a href="/w/index.php?title=Fork_%28filesystem%29&action=edit&redlink=1" class="new" title="Fork (filesystem) (頁面未存在)">岔流</a></th> |
| | 133 | <td colspan="3"><a href="#FAT_and_Alternate_Data_Streams">非原生</a></td> |
| | 134 | </tr> |
| | 135 | <tr style="vertical-align: top;"> |
| | 136 | <th bgcolor="lightgrey">屬性</th> |
| | 137 | <td colspan="3">唯讀,隱藏,系統,卷標,子目錄,歸檔<sup id="cite_ref-0" class="reference"><a href="#cite_note-0">[1]</a></sup></td> |
| | 138 | </tr> |
| | 139 | <tr style="vertical-align: top;"> |
| | 140 | <th bgcolor="lightgrey"><a href="http://en.wikipedia.org/wiki/File_system_permissions" class="extiw" title="en:File system permissions">訪問許可權</a></th> |
| | 141 | |
| | 142 | <td colspan="3" align="center">無</td> |
| | 143 | </tr> |
| | 144 | <tr style="vertical-align: top;"> |
| | 145 | <th bgcolor="lightgrey">透明壓縮</th> |
| | 146 | <td colspan="2">Per-volume, <a href="/w/index.php?title=Stac_Electronics&action=edit&redlink=1" class="new" title="Stac Electronics (頁面未存在)">Stacker</a>,<a href="/w/index.php?title=DoubleSpace&action=edit&redlink=1" class="new" title="DoubleSpace (頁面未存在)">DoubleSpace</a>,<a href="/w/index.php?title=DriveSpace&action=edit&redlink=1" class="new" title="DriveSpace (頁面未存在)">DriveSpace</a></td> |
| | 147 | <td>無</td> |
| | 148 | </tr> |
| | 149 | <tr style="vertical-align: top;"> |
| | 150 | |
| | 151 | <th bgcolor="lightgrey">透明加密</th> |
| | 152 | <td colspan="2">Per-volume only with <a href="/wiki/DR-DOS">DR-DOS</a></td> |
| | 153 | <td>無</td> |
| | 154 | </tr> |
| | 155 | </tbody> |
| | 156 | }}} |
| | 157 | |
| | 158 | |
| | 159 | 其實會使用的原因在於,用家中的mac mini server 可以對外接硬碟格式化的選擇,除了 mac 自家的檔案格式,就剩下 fat32 , exfat兩種可以選。 |
| | 160 | |
| | 161 | 而fat32 有單一檔案4G以下的限制,因此只剩下exfat 可以選。 |
| | 162 | |
| | 163 | 下面是讓linux 支援 exfat 的方式 |
| | 164 | |
| | 165 | {{{ |
| | 166 | apt-get install scons libfuse-dev subversion |
| | 167 | svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only |
| | 168 | cd exfat-read-only |
| | 169 | scons |
| | 170 | scons install |
| | 171 | }}} |
| | 172 | |
| | 173 | |
| | 174 | 不過陷阱在於,用mac mini server 選擇exfat 作格式化,似乎只有自己看得懂,安裝了patch的 windows 與 fuse-exfat 的linux 都無法讀取,一整個感覺良好。 |
| | 175 | |
| | 176 | {{{ |
| | 177 | $ sudo mount -t exfat-fuse -o allow_other /dev/sdc1 /mnt/ |
| | 178 | FUSE exfat 0.9.4 |
| | 179 | ERROR: invalid VBR checksum 0xd93a39db (expected 0xd93a39fb). |
| | 180 | }}} |
| | 181 | |
| | 182 | 以下經過用ubuntu 小小測試成功破解以上限制。 |
| | 183 | 到exfat的專案下,將 libexfat/mount.c 的 188~194 行註解,如下 |
| | 184 | {{{ |
| | 185 | #!c |
| | 186 | /* use zero_sector as a temporary buffer for VBR checksum verification * |
| | 187 | if (verify_vbr_checksum(ef->zero_sector, SECTOR_SIZE(*ef->sb), ef->fd) != 0) |
| | 188 | { |
| | 189 | free(ef->zero_sector); |
| | 190 | close(ef->fd); |
| | 191 | free(ef->sb); |
| | 192 | return -EIO; |
| | 193 | }*/ |
| | 194 | }}} |
| | 195 | |
| | 196 | 並重新執行 scons ; sudo scons install 即可 |