
Размер жесткого диска: 100 ГБ, и на нем содержалось множество файлов разного размера, измеряемого в мегабайтах, которые были добавлены в разное время и накапливались с течением времени... все они были удалены...
Затем я скопировал 25 ГБ данных (небольшие файлы размером в МБ) на пустой диск...
Какие удаленные файлы перезаписываются первыми? Те, которые были добавлены последними или те, которые были добавлены первыми? Или диск разбрасывает все файлы в случайном порядке по всем местам в пределах пространства в 100 ГБ.
Итак, перезаписываются ли случайно удаленные файлы независимо от даты добавления, или первыми перезаписываются самые ранние добавленные удаленные файлы?
решение1
Жесткие диски, будь то HDD или SSD, вообще не понимают концепцию файлов. Они только хранят последовательность байтов, и это все, что их волнует. [1]
Жесткие диски обычно разбиваются на разделы, а разделы форматируются с использованием выбранной файловой системы (FS). [2] Файловая система, которая определяет, как и где будут храниться файлы.
Ответ на ваш вопрос:это зависит.
Файловой системе все равно, когда файл был создан или удален. После удаления он больше не существует, файловая система будет относиться к нему как к мусорным байтам, а не как к файлу.
Более того, файлы не хранятся непрерывно: один файл может быть разбит на несколько частей и разбросан по всему разделу. Задача файловой системы — собрать его на лету, чтобы ОС не поняла, что он был разрезан изначально. Вопреки интуиции, это может фактически повысить производительность: контролируемая фрагментация может использоваться для того, чтобы внешние части пластин жесткого диска обеспечивали более высокую скорость чтения/записи, и чтобы избежать ситуаций, когда FS вынуждена фрагментировать файл неоптимальным образом, поскольку она не может поместить его ни в одну желаемую часть диска.
Написание шаблонов для определенных файловых систем может быть предсказуемым для определенных случаев, но не в целом. Размеры определенных файлов и порядок, в котором вы их сохраняете, будут влиять на это. При сохранении нового файла файловая система не будет учитывать, было ли использовано пространство, которое она собирается использовать; она не будет предпочитать ранее использованные адреса "чистым" или наоборот. После удаления файла FS обрабатывает занимаемое им пространство идентично пространству, которое никогда не использовалось.
[1] Современные диски имеют дополнительный уровень абстракции, поэтому области, фактически используемые для хранения этих байтов, могут не быть последовательными или непрерывными (например, из-за перераспределения плохих блоков в HDD и выравнивания износа в SSD). Однако это не имеет значения для сферы охвата вопроса, скажем так, что все жесткие диски подвергаются воздействию другого оборудования и ОС как устройства, которые могут хранить ряд надежно адресуемых последовательных байтов.
[2] Современные версии Windows используют NTFS на разделах ОС и NTFS или FAT32 на дополнительных. Флэш-диски обычно используют FAT32 или иногда exFAT. Linux обычно находится в файловой системе ext4. Apple использовала HFS+, а теперь переходит на APFS. Существуют также некоторые файловые системы для особых случаев использования, например, ориентированные на масштабируемость Btrfs и ZFS, которые были разработаны как комплексное отказоустойчивое решение для хранения данных.
решение2
Хотя это не совсем случайно в такой ситуации, но для всех практических целей это случайно. Однако следует отметить, что даже если каталоги были перезаписаны, иногда файлы могут быть найдены программами, которые ищут по всему диску. Хотя я делал такие вещи на глаз в эпоху дискет, в наши дни это возможно только в том случае, если у файла есть какая-то подпись.