機械硬碟如何決定複製資料時要覆蓋哪些文件

機械硬碟如何決定複製資料時要覆蓋哪些文件

硬碟大小:100GB,它確實包含一堆不同兆位元組文件大小的文件,這些文件都是在不同時間添加的,並隨著時間的推移累積......它們都被刪除了... …

然後我將 25GB 的資料(大小為 mbs 的小檔案)複製到空磁碟機上...

哪些已刪除的檔案首先被覆蓋?最後加入的還是最先加入的?或者磁碟機是否將所有檔案以分散的方式分佈在 100GB 空間內的隨機位置。

那麼,是隨機刪除的檔案無論新增日期如何都會被覆蓋,還是最早新增的刪除檔案會先被覆蓋?

答案1

硬碟,無論是HDD還是SSD,根本不懂檔案的概念。它們只儲存位元組序列,這就是它們所關心的。[1]

硬碟通常是分割的,並且分割區是使用選擇的檔案系統 (FS) 進行格式化的。[2]決定檔案儲存方式和位置的檔案系統。

你的問題的答案是:這取決於

文件系統並不真正關心文件何時創建或刪除。一旦刪除,它就不再存在,檔案系統會將其視為垃圾字節,而不是檔案。

更重要的是,檔案不是連續儲存的:單一檔案可能會被分割成多個區塊並分散在整個分割區上。檔案系統的工作就是動態地重新組裝它,這樣作業系統就不會意識到它首先被切片了。與直覺相反,它實際上可能會提高性能:受控碎片可用於促進HDD 盤片的外部部分提供更好的讀/寫速度,並避免FS 被迫以次優方式對文件進行碎片化的情況,因為它無法將其放入磁碟的任何所需部分。

對於特定情況,特定檔案系統的寫入模式可能是可預測的,但一般情況下是不可預測的。特定檔案的大小以及儲存它們的順序會影響它。當儲存一個新檔案時,檔案系統不會考慮它要使用的空間是否已被使用;與「乾淨」的地址相比,它不會更喜歡以前使用過的地址,反之亦然。一旦檔案被刪除,FS 就會將其佔用的空間視為從未使用過的空間。


[1] 現代驅動器具有額外的抽象層,因此實際用於儲存這些位元組的區域可能不是連續的或連續的(例如,由於 HDD 中的壞塊重新映射和 SSD 中的磨損均衡)。但這對於問題的範圍並不重要,我們只是說所有硬碟都將自己暴露給其他硬體和作業系統作為可以儲存大量可靠尋址的連續位元組的設備。

[2] 現代 Windows 版本在作業系統分割區上使用 NTFS,在其他分割區上使用 NTFS 或 FAT32。隨身碟通常使用 FAT32,有時也使用 exFAT。 Linux 通常使用 ext4 檔案系統。 Apple 之前使用 HFS+,現在正在遷移到 APFS。還有一些用於特殊用例的檔案系統,例如可擴充性的 Btrfs 和 ZFS,它們被設計為一體化的故障安全資料儲存解決方案。

答案2

雖然在這種情況下它並不是真正隨機的,但出於所有實際目的,它都是隨機的。但請注意,即使目錄已被覆蓋,有時搜尋整個磁碟的程式也可以找到檔案。雖然我在軟碟時代已經透過肉眼完成了這些事情,但只有當文件具有某種簽名時才可行。

相關內容