使用 mkfs 更改檔案系統是否會損壞資料?

使用 mkfs 更改檔案系統是否會損壞資料?

我的專案檔案有一個 USB,在重新安裝 USB 時間歇性出現問題。 mount 命令表示,由於 ntfs 檔案類型,這是 mftmirr 不匹配,因此我決定將檔案系統前端更改為 mkfs.ext4 。現在我的隨身碟內容完全消失了。經過進一步調查,我可以確認 mkfs 不會刪除這些文件,所以我的問題是什麼原因導致的?

答案1

mkfs命令使用新的檔案系統格式化目標磁碟機。格式化會建立一個不包含檔案的空白檔案系統。這就是格式化的目的。

停止使用該驅動器現在並將其重新安裝為唯讀。如果幸運的話,您將能夠使用photorec或類似的軟體來恢復您的檔案。

答案2

mkfs不明確刪除檔案。在目標裝置中,它會建立特定於所需檔案系統的結構,而不處理已經存在的任何內容。新的檔案系統被創建為空。

實際上舊文件消失了。確實,除非使用清除整個裝置的選項建立新檔案系統(例如,將零寫入現在標記為未使用的空間),否則舊資料和元資料部分存在。仍然沒有直接的方法來獲取舊數據,因為標識舊檔案系統的最基本結構已被新檔案系統的最基本結構覆蓋。後者說有一個新的檔案系統,但它是空的。在這種情況下,沒有作業系統會搜尋可能的舊檔案系統的殘留物,因此檔案似乎消失了。

仍然與正確的工具他們的工作是搜尋殘餘物,有時你可以拿回一些數據。為了最大限度地提高機會,您應該立即停止寫入新檔案系統。卸載它。如果需要安裝它,請將其安裝為唯讀。

將一個檔案系統就地變更為另一個檔案系統並且不會遺失檔案稱為轉換。家庭的工具mkfs無法做到這一點。一般來說,無法從一個任意檔案系統轉換為另一個任意檔案系統。有一些工具可以將某些內容轉換為具體的檔案系統類型到另一個具體的類型。我不知道有什麼工具可以將 NTFS 轉換為 ext4。由於這些非常不同,如果有這樣的工具,我會感到驚訝。更改檔案系統類型的一般方法是將資料複製到其他地方,建立新的空檔案系統(就像您所做的那樣),然後將資料複製回來。

即使新類型與舊類型相同,mkfs也不會修復舊檔案系統。它的工作是創建一個空檔案系統重新。修復檔案系統需要另一個工具(從系列開始fsck),但是Linux 沒有足夠的能力來修復 NTFS。我認為在你的情況下,修復整個舊檔案系統已經太晚了。您應該集中精力恢復檔案。

相關內容