Почему системы Linux иногда восстанавливают данные, а Windows - нет?
Почему вы можете использовать компьютер на базе Linux или Linux Live CD для восстановления данных, которые Windows не смогла?
Сегодняшняя сессия вопросов и ответов пришла к нам благодаря SuperUser - подразделению Stack Exchange, группе веб-сайтов вопросов и ответов, управляемой сообществом..
Вопрос
Читатель SuperUser Филипп Алгайер (Philip Allgaier) хочет знать, почему он смог восстановить данные с Linux Live CD, который, как сообщалось, не восстанавливается в Windows:
Фон: Ранее в этом году у меня была проблема с SSD-диском, которую Windows распознала бы больше. Но в итоге загрузочный Parted Magic 2012-10-10 добился цели. Смотрите эту решенную тему. Один вопрос застрял у меня с того момента ...
Вопрос: Я знаю, что Linux, как правило, немного более технический и сырой, но кто-то может приблизительно обрисовать, почему система Linux (или фактически только эта конкретная, поскольку Ubuntu не добилась цели) способна все еще получать доступ / общаться с половиной устройство, если Windows не?
-
Они просто игнорируют любые потенциальные индикаторы того, что что-то может быть не так??
-
Есть ли какие-то конкретные причины вообще?
-
Было ли просто удачей, что эта конкретная среда смогла получить SSD для ответа, хотя бы в течение ограниченного времени?
Хотя это, безусловно, могло быть удачей, скорее всего, в игре есть несколько факторов. Давайте исследуем.
Ответ
Участник SuperUser Эйк предлагает несколько потенциальных объяснений, помимо удачи, для его способности сохранять данные:
Обычно это сводится к тому, к чему конкретно обращаются и как именно происходит сбой устройства. Например, если рассматриваемый твердотельный накопитель не может извлечь, скажем, сектор 5 и начнет останавливаться, как только что-то прочитает сектор 5, разница может просто заключаться в том, что разные системы автоматически получают доступ после распознавания нового диска..
Когда Windows обнаруживает новый диск, она читает таблицу разделов и автоматически пытается открыть любые файловые системы, которые она умеет читать. Если какая-либо из структур / блоков, читаемых во время этого процесса «монтирования», побуждает ваш неисправный SSD идти до свидания, разница с этим конкретным дистрибутивом Linux заключается просто в том, что он не может автоматически монтировать все рассматриваемые разделы или может при монтировании просто читайте другое подмножество секторов (реализация NTFS в Linux очень отличается от реализации в Windows - хотя формат на диске такой же, все зависит от ОС, какие структуры он считает необходимыми для чтения. Windows может читать вторичные копии MFT или может начать предварительное кэширование некоторых данных, и в этом может быть разница. Ubuntu находится в подобной лодке - она не предназначена для восстановления из коробки, она будет пытаться смонтировать любую файловую систему, которую найдет на вновь обнаруженных носителях, автоматически. Именно по этой причине лучше использовать специализированные дистрибутивы, предназначенные для восстановления, так как они выполняют только то, что вы явно просите их, а не делать это автоматически.
Конечно, вам тоже просто повезло. Я не знаю достаточно о режиме отказа SSD, чтобы сказать.
Linux обычно не игнорирует признаки того, что что-то не так. Он будет получать те же ошибки SCSI от набора микросхем SATA, что и Windows - если вы посмотрите журнал ядра, на неисправном диске вы увидите множество сообщений об ошибках. Зависит от того, какие программы на самом деле обращаются к диску, что будет дальше. Если это программное обеспечение ориентировано на восстановление, оно может пытаться перечитать один и тот же сектор ограниченное количество раз, оно может пропустить его и т. Д. Обычно лучше всего получить образ диска с максимально чистым чтением секторов, и затем попытайтесь восстановить ваши данные из этого образа (выполнение любого анализа непосредственно на диске, как правило, плохая идея, поскольку его состояние может ухудшиться, и только потому, что вы смогли прочитать что-то один раз, это не значит, что вы сможете прочитать это снова .)
Другой участник AthonSfere предлагает другой взгляд на вещи:
Во многом это то, как среда обрабатывает файловую систему и списки ACL или жесткий диск.
Windows собирается сделать все возможное для выполнения своих ACL-списков и секторов, помеченных как плохие или пустые. Таким образом, разделы NTFS или FAT, созданные и поддерживаемые в Windows, а также Windows MBR будут обрабатываться Windows, как Windows пометила.
Кроме того, если диск выходит из строя, чем чаще вы его используете, тем больше вероятность того, что он столкнется с серьезной проблемой и произойдет сбой среды. Затем, как операционная система обрабатывает входящие в игру Windows, BSOD или перезагрузка, процесс загрузки Windows генерирует сообщения MBR, сообщения об отсутствующих файлах (файл NTDLR.dll отсутствует или поврежден) и останавливается, поскольку эти плохие файлы необходимы.
Когда вы используете живой диск, вы не полагаетесь ни на что из этого. Плохая MBR обойдена, потому что вы загружаетесь с диска. Плохой сектор, который повредил NTDLR.dll, не нужен. Все на диске. Вы можете попытаться прочитать. Если он сталкивается с «пустым» сектором или плохим битом, эта среда обрабатывает его, как это было запрограммировано. Ubuntu, скорее всего, предпочел бы поддерживать нормальное поведение ОС и продолжать то, что, скорее всего, происходит. Сектор пуст, сделай что-нибудь еще. Этот сектор плох, держись подальше, не читай снова, не пиши, или это вызовет проблемы.
Платформа восстановления, однако, захочет прочитать все данные. Маркеры файла говорят, что файл должен быть на 0,5, 13…. если файловая система сообщает, что 13 отсутствует, игнорируйте пустой заголовок и в любом случае прочитайте файл или прочитайте поврежденный сектор как можно лучше и попытайтесь восстановить.
Кроме того, Windows МОЖЕТ сделать это с помощью сторонних приложений, Recuva может найти множество этих «пропущенных» файлов, например. Но вы не хотите находиться в среде, которая может записать обратно на диск и привести к настоящей постоянной потере.
Я упростил это и добавил некоторую интерпретацию, но она должна заполнить некоторые пробелы для того, что вы просите.
Есть что добавить к объяснению? Звук выключен в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полным обсуждением здесь.
http://superuser.com/questions/586666/why-can-linux-systems-sometime-recover-data-windows-cant-any-concrete-reasons