3

Предыстория: Ранее в этом году у меня была проблема с SSD-диском, которую Windows больше не распознала. Но в итоге загрузочный "Parted Magic 2012-10-10" сделал свое дело. Смотрите эту решенную тему. Однако один вопрос застрял у меня в результате ...

Вопрос: Я знаю, что Linux, как правило, немного более технический и сырой, но может кто-то приблизительно описать, почему система Linux (или на самом деле только эта конкретная, поскольку Ubuntu не справилась с задачей) по-прежнему способна осуществлять доступ / связь с полу-поврежденное устройство, когда Windows не?

  • Они просто игнорируют потенциальные индикаторы того, что что-то может быть не так?
  • Есть ли какие-то конкретные причины вообще?
  • Было ли просто удачей, что именно эта среда смогла получить ответ SSD хотя бы в течение ограниченного времени?

4 ответа4

5

Обычно это сводится к тому, к чему конкретно обращаются и как именно происходит сбой устройства. Например, если рассматриваемый твердотельный накопитель не может извлечь, скажем, сектор 5 и начнет останавливаться, как только что-то прочитает сектор 5, разница может быть просто в том, что разные системы автоматически получают доступ после распознавания нового диска.

Когда Windows обнаруживает новый диск, она читает таблицу разделов и автоматически пытается открыть любые файловые системы, которые она умеет читать. Если какая-либо из структур / блоков, читаемых во время этого процесса "монтирования", побуждает ваш неисправный SSD идти до свидания, разница с этим конкретным дистрибутивом Linux заключается просто в том, что он не может автоматически монтировать все рассматриваемые разделы или может при монтировании просто читайте другое подмножество секторов (реализация NTFS в Linux очень отличается от реализации в Windows - хотя формат на диске такой же, это зависит от ОС, какие структуры он считает необходимыми для чтения , Windows может читать вторичные копии MFT или может начать предварительное кэширование некоторых данных, и это может быть разницей. Ubuntu находится в подобной лодке - она не предназначена для восстановления из коробки, она будет пытаться автоматически смонтировать любую файловую систему, найденную на вновь обнаруженном носителе. Именно по этой причине лучше использовать специализированные дистрибутивы, предназначенные для восстановления, поскольку они выполняют только то, что вы явно просите их, а не выполняете действия автоматически.

Конечно, вам тоже просто повезло. Я не знаю достаточно о режиме отказа SSD, чтобы сказать.

Linux обычно не игнорирует признаки того, что что-то не так. Он будет получать те же ошибки SCSI от набора микросхем SATA, что и Windows - если вы посмотрите журнал ядра, на неисправном диске вы увидите множество сообщений об ошибках. Зависит от того, какие программы на самом деле обращаются к диску, что будет дальше. Если это программное обеспечение ориентировано на восстановление, оно может пытаться перечитать один и тот же сектор ограниченное количество раз, оно может пропустить его и т.д. Обычно лучше всего получить образ диска с максимально чистым чтением секторов, и затем попытайтесь восстановить ваши данные из этого образа (выполнение любого анализа непосредственно на диске, как правило, плохая идея, поскольку его состояние может ухудшиться, и только потому, что вы смогли прочитать что-то один раз, это не значит, что вы сможете прочитать это снова .)

3

Windows абстрагирует аппаратное обеспечение от API, чтобы все вызовы аппаратного обеспечения работали одинаково (и предположительно безопасно). Тем не менее, это означает, что для выполнения любой функции на небольшом количестве аппаратного обеспечения MS должна была предвидеть ваше желание выполнить задачу и написать функцию API для получения желаемого результата.

в linux меньше абстракции, и абстракция является добровольной, поэтому вы можете написать программное обеспечение, которое напрямую обращается к аппаратному обеспечению, если вы того пожелаете, открывая множество возможностей, которые не были заранее спланированы и предварительно реализованы.

3

Во многом это то, как среда обрабатывает файловую систему и ACL или жесткий диск.

Windows собирается сделать все возможное для выполнения своих ACL-списков и секторов, помеченных как плохие или пустые. Таким образом, разделы NTFS или FAT, созданные и поддерживаемые в Windows, а также MBR Windows будут обрабатываться Windows, как это помечено Windows.

Кроме того, если диск выходит из строя, чем чаще вы его используете, тем больше вероятность того, что он столкнется с серьезной проблемой и произойдет сбой среды. Затем, как операционная система обрабатывает входящий в игру Windows, BSOD или перезагрузка, процесс загрузки Windows будет генерировать сообщения MBR, сообщения об отсутствующих файлах (файл NTDLR.dll отсутствует или поврежден) и останавливаться, поскольку эти плохие файлы необходимы.

Когда вы используете живой диск, вы не полагаетесь ни на что из этого. Плохая MBR обойдена, потому что вы загружаетесь с диска. Плохой сектор, который повредил NTDLR.dll, не нужен. Все на диске. Вы можете попытаться прочитать. Если он сталкивается с «пустым» сектором или плохим битом, эта среда обрабатывает его, как это было запрограммировано. Ubuntu, скорее всего, предпочел бы поддерживать нормальное поведение ОС и продолжать то, что, скорее всего, происходит. Сектор пуст, сделай что-нибудь еще. Этот сектор плохо, держитесь подальше, не читайте снова, не пишите, или это вызовет проблемы.

Платформа восстановления, однако, захочет прочитать все данные. Маркеры файлов говорят, что файл должен быть на 0,5, 13 .... если файловая система сообщает, что 13 отсутствует, игнорируйте пустой заголовок и в любом случае прочитайте файл или прочитайте поврежденный сектор как можно лучше и попытайтесь восстановить ,

Кроме того, Windows МОЖЕТ сделать это с помощью сторонних приложений, Recuva может найти множество этих "пропущенных" файлов, например. Но вы не хотите находиться в среде, которая может выполнить обратную запись на диск и привести к настоящей постоянной потере.

Я упростил это и добавил некоторую интерпретацию, но она должна заполнить некоторые пробелы для того, что вы просите.

2

В системах Windows, как правило, возникают всевозможные фоновые проблемы, связанные с аппаратным обеспечением. В системе Windows, когда подключен новый диск, все виды процессов начинают возиться с ним. Если диск ненадежен, это обычно приводит к его отказу. В системе Linux гораздо более вероятно, что диск будет затронут только тем, что вы специально указали, чтобы связываться с ним, что позволит вам получить доступ к диску, не вызывая ни один из его режимов отказа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .