為什麼有人說exfat會丟資料呢?

時間 2021-05-13 00:22:33

1樓:Pader

在只有 Fat32 的年代,大家用 Fat32 不也是用的很歡麼?怎麼公升級優化了的 exFat 反而更容易丟資料了呢?

fat 系的檔案系統只不過是沒有日誌系統,不能保證寫時出問題的一致性,也不代表資料就容易丟。這只是相對 ntfs, apfs, ext4, zfs 這類日誌檔案系統來講,並不是絕對的。

2樓:許諾雨祿

求救SOS

本人用聯想Y700筆記本,雙系統黑蘋果和win 儲存分割槽用 exfat 切換系統導致檔案丟失檔案錯亂的情況,不止一次發生, 有懂的大佬來解答一下我是啥原因我應該怎麼處理

3樓:

會,用了這麼多年了經常遇到。公司廣告機用的exfat格式不一定什麼時候就放不出檔案了,然後開啟後檔案都損壞,起初以為是優盤問題換了優盤問題依舊。另乙個廣告機用的就是fat32格式一直沒出問題,對掉過優盤發現exfat出問題。

然後今天我ns卡突然有的資料出問題了,我一搜尋看到這個。

別人告訴我才知道別用exfat格式儲存檔案,因為exfat就是個不定時炸彈,不一定什麼時候就出問題,而fat32就不會。

4樓:

我乙個U盤windows mac linux android四系統共用啊,exfat幾乎是唯一的選擇了。因為知道exfat可能會損壞所以用的還比較小心,一年多了還沒出過問題。

U盤使用後一定要安全彈出,別偷懶,資料無價。如果無法彈出,登出後再登入,再次嘗試彈出,如果還不行就關機後冷拔出,千萬不要強拔。最後,定期備份重要資料,我的U盤只做為檔案中轉,所有檔案都在電腦上有備份。

5樓:renhua

因為確實會丟啊

我淺嘗輒止用過一段時間exFAT,總莫名其妙丟資料,而且多是檔案系統損壞,換句話說全盤丟失

對了我是Windows + MacOS + Linux

6樓:我很帥

記住一點

u盤的設計不是用來儲存永久性檔案的,是用來交換檔案的從這種角度出發,應該格式化以最大相容的分割槽,即exfat這種情況下,電腦都該有乙份原始檔,所以檔案丟失啥影響不大無論u盤什麼格式,fat32,還是ntfs還是apfs,拿u盤存永久性檔案就是作死

以前我同樣碰到過掉盤的事情,格掉就好了,沒有另外乙份的就是電影,沒啥心痛的

還有那些拿著fat32當萬金油的,怕是沒看過高畫質的電影(車)當然,用來裝系統啥的,格成fat32,ext4啥的自己隨意啦

7樓:碳氮氟氧氖

exFAT「丟資料」的話,分配表是問題之一。

但其實如果不是用來裝大檔案的話(如相機上的SD卡,攝像機上的M2TS之類的),其實U盤或者行動硬碟上並不建議優先使用exFAT,主要原因就是因為預設檔案簇大小太大,256M~32G裝置格式化預設簇大小為32KB,32G~256T為128KB,也就意味著假設你是4T的行動硬碟全盤格式化為exFAT,那麼及時你在裡面放乙個1KB大小的檔案,它實際占用大小需要128KB,那麼當這種小檔案數量一多起來,浪費的空間也就越大。

其實大容量行動硬碟如果格式化為NTFS,只要你別自己亂該許可權,Windows預設情況下對普通檔案都是分配的Everyone可讀寫,日常使用沒啥問題。NTFS在單分割槽小於16T的情況下預設簇大小都是4K。

8樓:pansz

糾結這個問題沒意義,因為Mac它只能用exFAT。就算這個格式容易丟檔案,難道你從此不用Mac了?

如果是Windows專用U盤那你無論如何都應該弄成NTFS。如果是Linux專用U盤那弄成ext4就好了。蘋果專用的話其實搞成APFS也挺好。

日誌檔案系統全面取代非日誌檔案系統並不是沒有原因的。

沒日誌這個缺點別人已經說了。exFAT比FAT32的缺點是它的分配表只有乙份,而FAT32有兩份。

總的來說,exFAT缺點很多,除非為了跟Mac共享,否則沒有理由使用exFAT格式。

9樓:木頭龍

@醉臥沙場 對於日誌的說明很詳細了,但結論卻需要斟酌一下。exFAT的確是更容易「丟資料」的。

這個「丟資料」之所以加引號,是因為事實上並不是資料真的丟了,資料還在硬碟上。理論上是可以用資料恢復軟體找回來的——前提是沒有被覆蓋。但在使用者看來,這些檔案的確是找不到了。

補充:有時候可以用chkdsk命令找回來——但chkdsk不知道對應什麼目錄什麼檔案,就放到乙個FOUND.000資料夾(Linux是lost+found),重新命名為FILEK****.

CHK檔案。如果用16進製制編輯器開啟,並且能分析出檔案型別,用相應的應用開啟檢視內容後自行重新命名回來的話就算找回來了。但有時候找回來幾百上千甚至上萬個檔案,那也頭疼的很。

10樓:沈萬馬

首先exFAT自身的一致性很弱,沒有日誌,檔案分配表只有乙份,而且又是表式分配機制,所以一旦出一點點不一致就很容易導致不可恢復的結果。這是前提。

然而,看了其他大神的答案就應該明白,就算它弱,正常使用就不應該出問題啊。

——所以答案只有乙個,沒有正常使用,加上exFAT的弱一致性,導致了容易丟資料的印象。

當然要說的話,就算沒有人為錯誤,也是exFAT更容易因為其他時候沒有多少影響的非正常使用出問題。比如很多行動硬碟不新增額外供電的話雖然看起來可以載入可以讀,但一寫入就開始電壓不足丟資料。先進一些的檔案系統不至於出丟資料的問題,但exFAT就幾乎鐵定出問題。

然而根據我的觀察,更常見的原因是——要正確彈出移動資料儲存裝置啊。

乙個並不是很多人都知道的事情是,以前Windows為了降低故障發生的機會,預設在移動裝置上不開啟磁碟快取;然而,Windows 10 1809以後,為了提公升效能,移動裝置上預設開了磁碟快取。而Mac OS上則始終是啟用磁碟快取的,除非手動掛載禁用快取。

開了磁碟快取之後效能雖然好了不少,但帶來的乙個缺點就是一定要走彈出裝置的流程,確認彈出完成才能拔裝置,不然很可能丟失快取中的資料。

恰好exFAT又是Windows和Mac之間最常用的互動格式。

很多抱怨用exFAT丟資料的使用者都是不知道怎麼在Mac上Unmount裝置,和/或在Windows下點了彈出不等確認就拔盤的人。

11樓:醉臥沙場

U盤用什麼檔案系統好?

進入正題,首先exfat被傳「容易丟資料」這點從是不是日誌檔案系統角度來說,是不正確的,或者說是不太準確的。首先,日誌在檔案系統中的作用是為了保證資料一致性的,不是保證不丟資料的。那什麼是資料的一致性?

保證一致性並不等同於保證資料「不丟失」。舉個例子來理解一致性吧(說定義太抽象)。

比如你在一家銀行有兩張儲蓄卡,A卡和B卡。現在你想從A卡里轉1000塊錢到B卡,那銀行系統的操作可能是先從A賬戶扣除1000元,然後B賬戶增加1000元。或者先在B賬戶增加1000元,再從A賬戶扣除1000元。

不管是哪種方式,必須保證最終的結果是A少了1000,B多了1000,否則要麼你要麼銀行就虧了。這一多一少的對等就保證了資料的一致。

但是我們知道,任何系統都不保證絕對不出問題,比如斷電、儲存故障、系統崩潰等異常原因導致上述操作在進行到一半時斷掉了。比如剛從你的A賬戶扣除1000元,B賬戶還沒來得及增加,系統就down掉了,這種現象就叫資料出現不一致,出現這種現象使用者肯定是不樂意的。要知道乙個複雜系統每單位時間都要處理數不清的請求和操作,等系統再起來後,系統不知道自己剛才down掉前有什麼是進行了一半的操作,它也無從得知,直到使用者過來抱怨,通過人為的檢查各種票據銀行可能才能知道自己弄錯了,然後幫使用者的B賬戶增加1000來完成這一次完整業務。

或者給A賬戶增加1000算作撤銷這次業務操作。

檔案系統也有這樣的問題,要知道任何的資料最終都落到實際的儲存介質上(如硬碟),而儲存介質上資料的組織方式首先就靠檔案系統來負責。比如你向乙個檔案寫資料,至少你需要完成(注意是至少):

分配資料空間。

寫入資料。

修改檔案對應的各種元資料(如各種bmap,size等)。

更新free space管理的資訊。

這些理論上應該在乙個原子操作內完成,但是現實是它們只能一步一步做,而這中間就面臨著崩潰的危險。一旦中途崩潰,作為乙個沒有日誌的檔案系統,我們將不知道哪個操作在做到什麼步驟時沒做完就停止了。像上面的銀行問題一樣,造成了資料的不一致。

對於非日誌檔案系統,如exfat,怎麼保證或者說檢查資料的一致性呢?那就是自古傳下來的fsck類工具,每個檔案系統幾乎都為自己提供乙個這樣的工具,來進行檔案系統一致性檢查和必要時的修復工作。在過去,每隔一段時間,系統維護重啟時都要定期執行fsck,自檢有沒有出現不一致問題。

這在初期是很好用的,但是隨著儲存的不斷增大,資訊時代使用者資料的龐大讓fsck顯得非常吃力。因為fsck相當於全檔案系統掃瞄,計算檢查有沒有不一致的地方。但是隨著儲存的不斷增大,現在對乙個大型伺服器上的檔案系統做一次fsck的時間可能要好幾天甚至更多,這對於伺服器而言是不能忍受的。

出現系統崩潰後不能馬上從崩潰狀態上恢復回來繼續上線,即使是資本家也會告訴你「時間就是金錢」!檔案系統的程式設計師們更是不能容忍這種缺陷,於是他們效仿資料庫的日誌機制,給檔案系統也加了日誌的支援。

我這裡不想涉及過多技術細節,我會在專欄裡抽時間詳細闡述檔案系統日誌。對於這個回答的閱讀者,我覺得從道理上明白一下就可以。如果用檔案系統的資料和元資料舉例,恐怕很多人很難理解,所以我們還拿銀行舉例。

對於上面銀行的例子來說,加了日誌後從A賬戶轉賬1000元到B賬戶就是乙個完整的任務,這個任務要麼徹底完成,要麼一點都別做。怎麼保證呢?

為了更清楚的理解,我們這麼舉例,現在我們先從B賬戶轉2000到A賬戶,然後可能覺得轉多了,又從A賬戶轉1000回到B賬戶。這裡面就有兩個任務,分別是

B-2000, A+2000

A-1000, B+1000

帶有日誌的系統在做的時候可能這樣做(純舉例,實際日誌記錄要比這個複雜):

B - 2000A + 2000Check point1A - 1000B + 1000Check point2

如果操作在日誌設定完Check point1之前就崩潰了,則系統啟動後撤消(有的說回滾)已做的步驟,保證這個任務一點沒做。

如果操作在正好設定了Check point1時崩潰了,則系統處於一致狀態,不做任何修改。

如果操作在設定了Check point1但是沒到Check point2之間崩潰了,則在系統啟動後回滾到Check point1的狀態。

如果操作在設定了Check point2後崩潰,則系統處於一致狀態。

這就是日誌系統保證資料一致性的一種方式,對於檔案系統來說,每次掛載檔案系統時,都會檢查日誌,發現不一致則會做log replay,從而使檔案系統保持一致的狀態。

不知道大家看到"Check point"這個詞有沒有熟悉的感覺?是的,在玩遊戲的時候我們經常能碰到這個詞,俗稱「檢查點」! 對於從乙個檢查點開始,在沒玩到下乙個檢查點就Game over的玩家來說,任務失敗回滾到任務開始處簡直就是噩夢般的存在(手動滑稽)。

好了,上面說了這麼多。exfat容易丟資料這個論點顯然是不準確的,和日誌檔案系統相比,不帶日誌的檔案系統更不容易察覺自己處於不一致狀態,且不容易從不一致狀態中恢復回來(需要借助fsck工具手動修復)。但是說其「丟資料」是不準確的描述,確實在fsck後可能會丟掉一些資料來保證一致性,但是非日誌檔案系統和丟資料之間沒有直接聯絡,否則,即使是日誌檔案系統,回滾掉的操作你覺得算不算「丟」了呢?

比如你在編輯檔案,乙個寫的操作正在進行,即使你用sync強制同步資料到儲存上,這個資料對於檔案系統來說也不一定算寫進去了,檔案系統可能認為這個寫操作沒有完全完成,你即使已經寫進去資料的塊,也可能被認為是無效的塊,和檔案的元資料不對等,而被捨棄。所以不是你硬把資料從緩衝區「刷」進U盤了就一定算寫進去了,乖乖的解除安裝檔案系統保證日誌完整再拔優盤才是最保險的。

下次你的U盤插上時告訴你不能識別檔案系統,你應該知道先幹什麼了吧?當然是用你所用檔案系統對應的fsck工具先嘗試檢查和修復一下。實在不行再檢查是檔案系統問題,還是儲存硬體問題,還是fsck工具的問題(fsck工具也不保證能修復所有問題,也是有bug更新的)。

這點對於日誌檔案系統也適用,雖然日誌檔案系統可以自己恢復到一致性狀態,但是保不齊它就有回覆不了的情況,這種時候fsck工具就是你最後的救命稻草,快去用它進行手動修復把。如果它也救不了你,你就只能準備足夠的問題描述和證據尋求工程師的幫助了(不要單純的說我U盤打不開了怎麼辦,工程師需要可用於除錯和分析問題的東西)。

詹姆斯 哈登季後賽資料並不差,為什麼總有人說他季後賽表現不好?

釋懷 光看資料的話真的沒法體現乙個球星的表現,尤其是到了季後賽這樣的高壓環境下 就拿張伯倫來說,他的資料確實很漂亮,有年場均得分50 籃板25 但一到季後賽,張伯倫就開始變的水起來,無論是進攻還是防守都有些力不從心,尤其是轉會湖人後總決賽對陣尼克斯那場,被受傷的威利斯 里德打爆,季後賽的不盡人意也讓...

有人說深蹲會提高睪酮,為什麼?

帥到被人砍 能促睪,負重深蹲可以導致短時間內睪酮素含量增加,之後又回到正常情況。這是非常合理的狀態,你不可能練一下深蹲,然後導致24h都大量分泌睪酮素,那樣反而會影響其他生理狀態。 舉重教練張銀橋 睪酮水平和飲食作息體脂率關係更大一些。高碳水,適量蛋白,多補充鋅鎂,有規律的睡眠,低體脂狀態,可以提高...

為什麼有人愛看資料統計?

耀州窯青釉剔花倒 樓上有些扯得其實有些是沒有用的。這個問題沒有歸到社會學這兒,所以我就不系統地回答了。只能說統計的資料至少有三個功能 第一,直觀,樓上談到的很多東西都可以被劃歸到直觀這一層。第二,精準,樓上談到的很多東西也可以被劃歸到這一層,例如比較。但是請注意,這裡面有個需求需要分清,就是對資料本...