Другие языки программирования и технологии
Как работает восстановление данных в накопителях изнутри?
Пытался найти ответ в браузере, везде показывают как восстановить данные с помощью различных программ. Меня же интересует каким образом это происходит и откуда берутся удаленные данные. Мне кажется это тёмным лесом и чем-то невозможным. Ведь удаляя файл, он исчезает с накопителя, там какой-то от него опечаток остается или что? Не могу найти логического для себя объяснения, поможете?
На примере файловой системы NTFS, которая очень распространена, т. к. большинство используют Винду - там есть особый раздел, называемый "Файловая таблица" (MFT). Он содержит ссылки на ячейки для определенного файла.
К примеру, ты записываешь файл, его раскидало по разным местам диска в кластеры по 4 КБ, файловая таблица содержит сведения, как этот файл прочитать воедино.
Во время удаления файла чистится только информация с MFT, сами ячейки остаются физически, просто они помечены как "ненужные", и при записи нового файла их перезапишут. А если места на диске много свободного, или если диск - SSD, с функцией выравнивания износа, то новые файлы могут попасть в соседние ячейки, оставив старые нетронутыми.
Проги занимаются тем, что ищут ячейки, принадлежащие одному файлу. Вот так и восстанавливают. Не всегда удачно, но чаще всего все получается. Поэтому, если нужно удалить инфу так, чтобы считать не смогли, нужно низкоуровневое форматирование, когда все ячейки перезаписывается нулями. Процедура очень долгая (у меня, к примеру, старый HDD на 1 Тб часов 10 форматровался), но зато надёжно все удалится.
К примеру, ты записываешь файл, его раскидало по разным местам диска в кластеры по 4 КБ, файловая таблица содержит сведения, как этот файл прочитать воедино.
Во время удаления файла чистится только информация с MFT, сами ячейки остаются физически, просто они помечены как "ненужные", и при записи нового файла их перезапишут. А если места на диске много свободного, или если диск - SSD, с функцией выравнивания износа, то новые файлы могут попасть в соседние ячейки, оставив старые нетронутыми.
Проги занимаются тем, что ищут ячейки, принадлежащие одному файлу. Вот так и восстанавливают. Не всегда удачно, но чаще всего все получается. Поэтому, если нужно удалить инфу так, чтобы считать не смогли, нужно низкоуровневое форматирование, когда все ячейки перезаписывается нулями. Процедура очень долгая (у меня, к примеру, старый HDD на 1 Тб часов 10 форматровался), но зато надёжно все удалится.
>Ведь удаляя файл, он исчезает с накопителя
С чего бы ему исчезать?
При удалении файла его дескриптор помечается как свободный, вот и все. Сами данные никуда не деваются. Если восстановить дескриптор, восстановится и файл. Если, конечно, на его место не записали ничего новенького.
Так работает большинство программ восстановления.
Есть еще эвристические алгоритмы - они сканируют диск в поисках определенных сигнатур файлов. С одной стороны, они могут восстановить даже те файлы, дескрипторы которых утеряны безвозвратно. А с другой, они могут восстановить далеко не всё, да и то - без гарантии.
Как-то так.
С чего бы ему исчезать?
При удалении файла его дескриптор помечается как свободный, вот и все. Сами данные никуда не деваются. Если восстановить дескриптор, восстановится и файл. Если, конечно, на его место не записали ничего новенького.
Так работает большинство программ восстановления.
Есть еще эвристические алгоритмы - они сканируют диск в поисках определенных сигнатур файлов. С одной стороны, они могут восстановить даже те файлы, дескрипторы которых утеряны безвозвратно. А с другой, они могут восстановить далеко не всё, да и то - без гарантии.
Как-то так.
Дмитрий Иванов
Момент с неисчезновением файла мне был неизвестен ранее
Похожие вопросы
- утилита для восстановления данных, какие есть бесплатные
- Необходимо подготовить приложение, работающее с базой данных - какие рекомендации?
- MTP=>Флеш накопитель!
- ООП это когда данные управляют кодом а функциональное когда код данными?
- Насколько безопасно хранение данных на флешке?? Я храню все резервные данные с моего ноута на флешке 32 гб!
- Обмен данными между datagrid viewи базой данных
- Как вы считаете, сколько могут стоить данные дизайны сайтов, и какой дизайн вам нравится больше? :))
- Что такое восстановление системы? Объясните мне пожалуйста понятным языком
- PHP - как сделать на сайте "восстановление пароля", если пароли в бд хранятся в виде md5 хеш кодов?
- Не могу запустить восстановление системы, выдает "ошибка 0х81000202?