為什麼我無法對 USB 進行完全碎片整理?

為什麼我無法對 USB 進行完全碎片整理?

在我的 NTFS USB 隨身碟上,我需要對 isos 進行碎片整理才能啟動它們。但 Windows 的本機碎片整理和 UltraDefrag 都沒有對我的檔案進行完全碎片整理,這一點已透過 Windows 上的 contig 和 Linux 上的 filefrag 進行了驗證。

當然,我可以複製文件然後重新複製,但這真的讓我感到困惑...

螢幕截圖

驅動器上有足夠的可用連續空間,我檢查過

答案1

易啟動在分區根目錄包含一個強制執行此操作的腳本。這是有道理的,因為這確實是一個邊緣情況的要求。

我仍然感到困惑,沒有其他工具能夠做到這一點。

答案2

碎片整理程序的工作原理是將檔案複製到同一磁碟機上的連續可用空間區塊上,然後刪除原始檔案。有些人會嘗試先透過移動其他檔案(無論檔案是否已經沒有碎片)來建立連續可用空間的合併區域,以便刪除所有檔案之間的所有間隙。

例如,在 NTFS 磁碟區上,我們可能會有一個新格式化的 8GB 驅動器,其中包含 6GB 檔案:

FILE1_2GB FILE2_2GB FILE3_2GB(2GB 免費)

現在我們刪除 file2 並複製到 1GB file4 中,我們得到

FILE1_2GB(2GB 免費)FILE3_2GB文件4_1GB(1GB 免費)

現在我們刪除 file3 並複製到 1GB file5 中,我們得到

FILE1_2GB(2GB 免費)檔案5_1GB(1GB 免費)FILE4_1GB(1GB 免費)

現在我們新增了一個 3GB 的檔案6,它變得支離破碎...

文件1_2GB文件6A_3GB檔案5_1GB文件6B_3GBFILE4_1GB(1GB 免費)

現在 file6 已出現碎片,但只有 1GB 的可用空間,因此我們無法對 FILE6 或任何大於 1GB 的檔案進行碎片整理。如果我們刪除 FILE1 並得到

(2GB 免費)FILE6A_3GB FILE5_1GB FILE6B_3GB FILE4_1GB(1GB 免費)

但我們還沒有足夠的連續的用於將 FILE6 複製到並建立新的連續版本的可用空間。

因此,您會看到檔案系統可以包含碎片檔案和空閒空間碎片區域,具體取決於其歷史記錄。如果磁碟區上沒有足夠的可用空間,則碎片整理程式將無法建立新的連續檔案。

解決此問題的一種方法是將碎片檔案暫時移動到另一個驅動器,合併目標磁碟機上的所有可用空間,然後複製回檔案。

Windows 程式 WinContig 需要足夠大的連續可用空間區塊才能存在。 Windows GUI 程式 Defraggler 將首先嘗試合併可用空間,然後將檔案複製到新的可用空間區域。碎片整理程式還可以選擇合併磁碟機上的所有可用空間區塊。

將檔案複製到磁碟機時會出現另一個複雜情況- 某些程式在複製檔案時會開啟多個串流(例如預設模式下的xcopy 或使用瀏覽器從網路直接下載或使用多個複製會話到同一卷時)。即使目標磁碟機上有一大塊連續的可用空間,這幾乎總是會產生碎片檔案。

Defraggler 非常適合查看磁碟區上的檔案映射並檢查檔案如何在磁碟機上分割。

請注意,NTFS 通常也會將 MFT(主檔案表目錄)放置在 Windows 格式的 NTFS 磁碟區上 3GB 左右的位置。因此,如果您有一個 8GB NTFS 卷,則無論您如何嘗試都無法在其上放置連續的 6GB 文件,因為 MFT 區域始終位於驅動器的中間!

相關內容