Комментарии 27
Много удивления, много вопросов.
Самый первый вопрос - почему восстановление NTFS, то есть явно диска из-под Windows, делается в Linux? Значительная часть тех, кто нуждается в восстановлении в описанных случаях, или вообще не имеют установленного Linux (хотя ничто не мешает загрузиться с LiveCD, но и что он есть, тоже не факт), или весьма туманно себе представляют работу в нём. А порта под Win я как-то не увидел. Аналогичных же утилит именно под Windows, способных сделать посекторное копирование, достаточно много, и единственная редкая функция - это совмещение нескольких последовательно снятых образов. Впрочем, мне лично ещё не приходилось сталкиваться со случаем, когда не вычитанный ранее сектор (а большинство программ делают несколько попыток чтения) вдруг да прочитался при следующем запуске программы копирования.
Раздел, посвящённый анализу образа, явно неполон, поскольку предполагает как минимум сохранность, а на самом деле ещё и валидность, скопированной таблицы разделов. Хотя случай, когда таблица повреждена, совсем даже не редкий. А ещё бывают и случаи, когда MBR-разметка и GPT-разметка противоречат друг другу... Надо было пройти по варианту невалидности/противоречивости сведений о разметке, ну хотя бы по касательной, хотя бы произнести вслух термин "эвристическое восстановление". К слову, оно полезно и в случаях, когда таблица разделов не повреждена.
Ну а рассмотрение случая, когда файловая система раздела повреждена, и раздел не монтируется, просто не выдерживает критики. Не, это надо было ж догадаться - предлагать вносить изменения в сделанный образ! Хоть бы написали, что это надо делать на сделанной с образа копии, чтобы неизменённый образ - не пострадал. А то так можно накорректировать - образ изменён, накопитель более не читается... И да - в этом случае надо не другой драйвер доступа к ФС использовать, а начинать работу с программами эвристического воссоздания и восстановления. Шансы восстановиться будут куда как больше. Тем более что некоторые эвристики позволяют настраивать процесс интерпретации и воссоздания.
Совет же запустить chkdsk иначе как вредным не назовёшь. Не зря его называют диск дестроером - после его работы на диске запросто можно получить совершенно ненужный маловменяемый фарш, но зато в валидной файловой системе. Вряд ли это то, что нужно пользователю. Да, и ключ /r явно лишний - если догадаться положить образ туда, где возможны проблемы чтения данных, то тут надо не диск восстанавливать, а прокладку лечить.
А общее впечатление - несмотря на большой объём работы и фактического материала, даже если не обращать внимания на описанные выше недочёты, материал статьи на практике будет малоприменим. В основном по причине, описанной в самом начале комментария.
В начале статьи автор указывает, что статья про сбойные диски:
диск начинает работать со сбоями, система зависает, файлы неожиданно исчезают.
Как я понял статья об этом, не понял к чему вы о мертвых файловых системах.
не понял к чему вы о мертвых файловых системах
Ну вообще-то я автору отвечаю на именно то, что он пишет. И про ошибки в файловой системе, из-за которых раздел может не монтироваться или некорректно интерпретироваться, начал именно автор. Если бы статья была ориентирована исключительно на "как вычитать с умирающего диска то, что ещё читается" и не затрагивала иных аспектов - вот слова бы не сказал.
В начале статьи автор указывает, что статья про сбойные диски:
Как я понял статья об этом
Точка сбоя может попасть в неиспользуемое пространство, в тело отдельного файла или в служебную структуру. Учитывая, что под метафайлы NTFS резервирует 1/8 часть тома, вероятность попадания проблемы в это пространство совсем даже не иллюзорна. А с учётом того, что файлы каталогов находятся в пользовательском пространстве, эта вероятность ещё немножко выше.
То есть повреждение логических структур - может иметь место. И, значит, это нужно рассматривать.
Аналогичных же утилит именно под Windows, способных сделать посекторное копирование, достаточно много
Только виндовс увидит свою ФС попробует её смонтировать, увидит что она битая и запустит chkdsk на убитом диске. Если на старых системах можно было отказаться, то последний раз на 10тке я не увидел возможности это сделать(может плохо смотрел, не до того было).
Впрочем, мне лично ещё не приходилось сталкиваться со случаем, когда не вычитанный ранее сектор (а большинство программ делают несколько попыток чтения) вдруг да прочитался при следующем запуске программы копирования.
Пару месяцев назад приносили диск, после первого прохода было нечитаемо 100метров, после ещё двух проходов удалось довести до 10 метров, последующее уже результатов не давалао. Ну и когдато давно, ещё вычитывал SSD так как раз отключение подключение помогало вычитать лишние 100-200 метров.
Только виндовс увидит свою ФС попробует её смонтировать, увидит что она битая и запустит chkdsk на убитом диске.
Попробует смонтировать - да. Запустит chkdsk - это вряд ли, и уж тем более точно не запустит без ручного подтверждения (а при старте ОС - нужно просто отказаться от проверки клавишей any key). А если подключение выполняется "на ходу" (отключить контроллер, подключить диск, подключить к нему питание, включить контроллер) или через, скажем, sata2usb - то никакой chkdsk не будет запущен гарантированно. И если после этого, не обращаясь к тому, отобрать у него букву (буде она будет присвоена), то никакого обращения к файловой системе не будет.
Что до прогрева дисков - верю, но сам практически не встречал пока.
(а при старте ОС - нужно просто отказаться от проверки клавишей any key)
Вот такое чувство что 10 уже не просила жать аникей. А сразу ещё на заставке начинала терзать убитый диск.
А если подключение
Слишком много если. У меня TinyLinux через PXE грузится, загрузился шару примонтировал и делай образы. Хотя в целом да это вкусовщина. можно и из под винды сделать, но привычка делать через ddrescue выработалось.
Да дело даже не chkdsk который вполне себе, если его применять к вычитанному образу. Я так понимаю что все беды с ним от того что microsoft предполагают что диск физически исправен, ага щаз!
Wind-а не может смонтировать диск чегой-то в нём не записав, опять-же предполагая исправность оного.
По сему используется либо специализированный контроллер, который много ещё чего умеет, например питание дёргать. Или у встроенного контроллера используемого виндой отключается один канал, и на нём ведётся работа с пациентами!
Профессиональный софт работает на прямую с контроллером и ему это не принципиально и даже хорошо, что винда своими лапами в диск не лезет и вычитывать его можно посекторно, поголовно и главное не спешно!
Кстати, да. Винда, если искусственно вызвать ошибку записи (например для виртуальной машины перевести хранилище в RO не на долго), делает вид что запись прошла, хотя сообщает об ошибке. Т.е. она пишет в дужнал что writeerror, но далее ведет себя так, как будто данные на самом деле записалилсь, а это часто бывает как раз метаданные файловой системы. И после такого временного фриза, который может быть вызван и зависание nvme или ssd, файловая система не только не монтируется, но и тотально убивается первым же запуском чекдиска.
Такой фигни нет в zfs )
Кто вообще будет восстанавливать данные с диска в Windows? Она же монтирует диски в RW сходу и вносит любые изменения, какие хочет.
Если нет возможности запустить установленный GNU/Linux, то в него можно загрузиться с LiveUSB и снять один или несколько образов (если есть проблемы с чтением), а уж потом загружаться в непригодные для восстановления данных системы типа Windows, когда образу диска уже ничего не угрожает.
Если у пользователя нет компетенции как сделать LiveUSB и запустить команду в терминале по туториалу, то можно кого-нибудь попросить, всё лучше, чем загубить данные.
У меня совершенно не вызывает удивления в основе метода использование ddrescue - это хорошая утилита, которая делает все что нужно, чтобы надёжно снять посекторный образ. Дальше кто во что горазд: можно этот образ сразу записывать на том lvm, но я предпочитаю zfs. Оба хранилища поддерживают снимки и откат к снимку. Соответственно, вместо того чтобы делать RO-копию, лучше поместить образ на хранилище со снимками.
Кстати ddrescue это не просто утилита запоминающая где она остановилась. Она строит карту прочитанных секторов и позволяет идти по поверхности сначала крупными шагами, перешагивая не читаемые области (на которых диски ещё и виснуть могут в неудачные моменты ,если долго по ним елозить), потом, сохранив основную массу информации, перейти к более мелким шагам вычитывающие данные вокруг дефектов, а на финальном этапе переключится на посекторное вычитывание с большими количеством попыток чтения, что скорее всего добьет диск, но 99% к этому моменту будет сохранено.
В особенно сложных случая, ddrescue позволяет читать диск задом наперед, подбираясь к дефектам вызывающим зависание диска с обратной стороны! Ну и кто ещё так может? Надо восстановить данные - ставьте linux (грузите с флешки) и используйте ddrescue.
Почему не под windows. Наверное, по тому что под windows есть куча комбайнов, которые не понятно как внутри работают, например, при сбое, может потребоваться создавать образ заново, что может окончательно добить диск. под windows работа со снимками не так удобна. Да и вообще весь этот софт под windows платный или/и протрояненный, а за красивым интерфейсом с рюшечками скрывается отсутствие гибкости и робастности.
Имя образ со снимком первоначального состояния, можно дальше с ним разбираться на linux: часто поврежденные файловые системы могут быть смонтированы ntfs-3g, даже если он уже не монтируется в windows. Можно и чекдиск запустить, вдруг сработает? Нет - окат к первоначальному состоянию сохраненному в снимке. При необходимости работы под windows, теоретически, можно экспортировать диск через iscsi, но мне это ни разу в жизни не потребовалось.
pipeline автора не вызывает никакого удивления, это совершенно правильный и логичный путь. Другое дело что да, изменения надо вносить на копии образа, а это бывает накладно, особенно если вы восстанавливаете данные с диска пару десятков ТБ, с другой стороны, это вроде и так понятно, что надо сделать копию или как-то сохранить состояние.
А представьте автор решил бы описать восстановление диска на винде. Статья была бы на 90% про то как именно получить PE-окружение и корректно развернуть его на какой-нибудь флешке. Причем вместо текста, там были бы скриншоты. Что может быть хуже для статьи?
Анекдот в тему:
- У нас упала база данных, но остались скриншоты.
- Может быть снепшоты?
- Нет.
Рекомендую почитать для начала:
Восстановление данных под Linux c диска, содержащего бэд-сектора
https://rlab.ru/doc/linuxharddatarecovery.html
Существует две разных реализации проги:
GNU ddrescue
https://www.gnu.org/software/ddrescue/
В deb-подобных gddrescue в остальных ddrescue
и
dd_rescue
https://www.garloff.de/kurt/linux/ddrescue/
Сборки автора под Debian, Raspbian, Ubuntu
https://software.opensuse.org/download/package?package=ddrescue&project=home%3Agarloff%3Astorage
В остальных:
https://pkgs.org/download/dd_rescue
ddrescue в разных своих ипостасях безусловно лучше и разумнее чем просто dd но на сколько она может быть альтернативой профессиональному софту, работающему на прямую с контроллером, не заглядывая в код не скажешь...
Не вижу никаких преимуществ работе с контроллером "напрямую". Уровень взаимодействия у ddrescue с блочным устройством вполне достаточен. Что именно поможет вам прочитать сектор работая какой-то магией с контроллером лучше чем простое чтение этого же сектора через стек ОС? По опыту могу сказать, что ddrescue корректно обрабатывает все ситуации работы с неисправным жестким диском. Наверное, можно лишь упомянуть возможность зависания особенно сильно поврежденных дисков, может быть через контроллер их можно было сбросить как-то программно. Впрочем и через ОС можно сбросить и контроллер и диск, но в единственном случае когда я такое видел, программные методы были полностью бессильны, перезагружали диск отключая от него питание.
После работы chkdsk появились файлы битых кластеров и неполные, обрезанные файлы PDF. Как правильно собрать из этих кусочков целые двоичные файлы PDF?
Спасибо!
Вручную. И с не очень высокой вероятностью успеха.
Вручную перебрать и проверить сотни тысяч комбинаций — нереальная задача.
А выбора-то нету. Есть полста тыщ голов, столько же хвостов, и только путём соединения их попарно с проверкой читабельности можно попытаться разобраться в этой каше.
Точнее говоря, есть мозаика из двух сотен серёдок и хвостов, и только путём сложения их в разные комбинации с проверкой читабельности... ...
По счастью, голов у меня только 50.
Я уж надеялся, что для такого перебора придумали софтинку.
Принудительное монтирование NTFS
Если стандартная команда mount -t ntfs не сработала, попробуйте отключить стандартный драйвер и явно указать ntfs-3g
Мдя
https://www.kernel.org/doc/Documentation/filesystems/ntfs.txt
https://wiki.gentoo.org/wiki/NTFS/ru
"...До версии 5.15 в ядре Linux сопровождался старый драйвер NTFS, имевший крайне ограниченную поддержку NTFS. Информация в ядре описывала эту поддержку «частичной, но безопасной». Старый драйвер мог только перезаписывать существующие файлы, но не мог создавать файлы и каталоги, удалять или переименовывать их. Начиная с Linux 5.15, старый код NTFS был заменен на новый драйвер ядра от Paragon под названием «NTFSv3». Этот драйвер обладает большей функциональностью и полностью поддерживает чтение/запись и возможности сжатия..."
modinfo ntfs3
mount -t ntfs3 /dev/device /path/to/mountpoint
mount -t ntfs-3g /dev/device /path/to/mountpoint
mount -t ntfs-3g -o remove_hiberfile /path/to/device /path/to/mountpoint
Надо учитывать!
https://www.outsidethebox.ms/22452/
"...Начиная с версии Windows 11 24H2 в системах, предустановленных изготовителем ПК, или в рамках чистой установки на любой компьютер с TPM и SecureBoot во всех изданиях и всех типах учетных записей включается автоматическое шифрование BitLocker..."
BitLocker - да, подержите моё пиво, ЕМНИП было какое-то не шифрованное место куда валились крэшдампы, ну короч вы меня поняли ;-) А если вы белый пушистик с учётной записью microsoft, то там где-то можно было вполне легитимно получить ключики....
О! Да! Раньше шифровальщики распространялись как вирусы, теперь они приходят в виде обновления винды и сами включаются! Не забывайте отключать, если вам дороги данные, потому, что на другом компьютере вы не увидите содержимое такого диска. Ну или надо разобраться в теме и сохранять ключи шифрования.
Сталкивался с задачей сделать образ логически повреждённого диска на 2 Tb и переслать по интернету, оставив диск себе — не получилось, т.к. работа с таким образом в домашних условиях не решаема )))
А тут ещё и правильно предлагается работать с копией образа.
Почему нерешаема-то? Если диск не имеет физических дефектов, любая (ну почти) программа эвристического восстановления данных - то, что надо... и вполне себе в домашних условиях, если есть, куда сливать восстановленное.
Бегло прочитал статью, и вначале ничего не предвещало беды. Вроде очередная статья про самостоятельное восстановление данных с поврежденного диска.
Но на настойчивых попытках смонтировать образ повреждённого ntfs диска, я прям очень удивился. А после совета воспользоваться chkdsk, считаю эту статью совершенно неправильной и даже вредительской.
Извлекаем файлы из образа повреждённого диска: ddrescue, losetup и немного магии