man linux — заметки админа

26 августа 2008

testdisk — восстановление таблицы разделов диска

Неожиданно пропали разделы диска? Были уничтожены в результате ошибки? Не паникуйте — есть выход.
Программа testdisk позволяет восстановить поврежденную или уничтоженную таблицу разделов жесткого диска. Поддерживает большое количество файловых систем, в том числе linux ext2, reiserfs и др., а также файловые системы Windows (ntfs, fat32). Если после какой-то ошибки, у вас «пропали» разделы диска, не стоит паниковать — программа testdisk может помочь. Проверено автором man-linux.ru, на собственном опыте.

Итак, у вас пропали разделы жесткого диска. Или вы удалили их сами (например случайно), главное что вы не стирали данные, не форматировали разделы, а просто удалили их.
Не паникуйте — ваши файлы в абсолютной целости и пока вы не начали делать каких-то манипуляций с жестким диском — в сохранности. Удалена лишь информация о разделах из таблицы разделов жесткого диска. Это как ссылка на файл — без ссылки файл вроде есть, а доступа к нему нет, потому-что адрес его неизвестен.

Окей, будем восстанавливать таблицу.
Если у Вас нет возможности запустить ОС на компьютере, с поврежденным винчестером, для начала, вам понадобится LiveCD (желательно с операционной системой Linux). Я делал это с помощью LiveCD Linux Ubuntu, поскольку под рукой не оказалось других LiveCD, но имея выбор, предпочел бы Linux Fedora Core.
Смысл LiveCD заключается в том, что на нем расположена операционная система, которой не требуется жестких дисков вообще, т.е. можно даже отключить винчестер и это не помешает загрузиться операционной системе, расположенной на LiveCD.
LiveCD доступны для бесплатного скачивания через интернет, их можно найти например так.

После того, как вы скачали образ диска, необходимо записать его на CD (скорее всего это будет DVD-носитель). Записали? Окей, вставляем диск и грузимся с него. Внимание — не перепутайте загрузку ОС, с установкой ОС — это две огромные разницы. Boot — это загрузка, Install или Setup — это установка, вам нужна именно загрузка ОС без установки ее на жесткий диск.

Либо, если на компьютере с поврежденным винчестером ОС загружается — можно обойтись без LiveCD, самое главное иметь рабочую ОС имеющую доступ к поврежденному винчестеру.

Окей, как бы там нибыло, ОС у нас загружена.
Теперь нам понадобится программа testdisk.
Эта программа умеет работать также под Windows, но все же надеюсь, что у вас загружена именно Linux и все дальнейшие рекомендации относятся именно к работе в Linux.
Для начала пробуем

~# testdisk --help

# testdisk --help
TestDisk 6.8, Data Recovery Utility, August 2007
Christophe GRENIER 
http://www.cgsecurity.org

Usage: testdisk [/log] [/debug] [file or device]
       testdisk /list  [/log]   [file or device]

/log          : create a testdisk.log file
/debug        : add debug information
/list         : display current partitions

TestDisk checks and recovers lost partitions
It works with :
- BeFS (BeOS)                           - BSD disklabel (Free/Open/Net BSD)
- CramFS, Compressed File System        - DOS/Windows FAT12, FAT16 and FAT32
- HFS, HFS+, Hierarchical File System   - JFS, IBM's Journaled File System
- Linux Ext2 and Ext3                   - Linux Raid
- Linux Swap                            - LVM, LVM2, Logical Volume Manager
- Netware NSS                           - NTFS (Windows NT/2K/XP/2003)
- ReiserFS 3.5, 3.6 and 4               - Sun Solaris i386 disklabel
- UFS and UFS2 (Sun/BSD/...)            - XFS, SGI's Journaled File System

If you have problems with TestDisk or bug reports, please contact me.

Выдало справочную информацию — окей, программа есть в комплекте. Выдало ошибку, что программа не найдена — придется устанавливать.
Для установки программы, в зависимости от того, какая у вас ОС Linux, откройте терминал (консоль) и наберите:
В системах класса RH (Red Hat, Fedora Core, CentOS)

sudo yum install testdisk

В системах типа Debian, Ubuntu:

sudo apt-get install testdisk

В системе Linux Gentoo:

sudo emerge testdisk

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

В целом, установка программы не должна составить больших проблем и скорее всего не придется компилировать ее из исходников — чаще всего она устанавливается с помощью менеджера пакетов (yum, apt-get или emerge, в зависимости от ОС).

Итак, программу установили.

Мучить многострадальный первый диск, восстановленный всего несколько часов назад, я не хочу. Поэтому, покажу на примере своего второго диска sdb, на котором находится (и всегда находился) лишь один раздел, что не очень подходит для нашего примера, к сожалению, но за неимением других вариантов подойдет и этот.
Запускаем:

testdisk

:

Запуск testdisk

Запуск testdisk


Нам предлагают выбрать, что делать с логом — создать новый файл лога, продолжить запись в существующий (если он существовал) или не создавать лог вообще. Осуществлять выбор можно с помощью клавиатуры, стрелками вверх и вниз.
Оставим первый вариант, жмем Enter:
testdisk - выбор диска для анализа

testdisk - выбор диска для анализа

Нам предлагают выбрать один из жестких дисков, для анализа. В моей системе их два, я выбираю sdb (второй), ну а если диск в системе один, то и выбирать не придется.
Выбирать можно стрелками вверх-вниз.
Стрелками влево-вправо, можно выбрать [ Proceed ] (продолжить), либо [ Quit ] (выход).
Выбираем [ Proceed ], жмем Enter:

testdisk - выбор платформы

testdisk - выбор платформы


Теперь, нам предлагают выбрать платформу. В большинстве случаев это будет «Intel», если же у вас другая платформа — вероятно вам об этом известно.
Выбираем платформу и жмем Enter:
testdisk - выбор опций

testdisk - выбор опций

Теперь нам предлагают выбрать, одну из возможных опций. Прочитать подробнее, о данных опциях можно используя справочную информацию к команде, в стандартном же случае, нем вполне подойдет опция [ Analyse ], более того, очень не советую трогать другие опции, если вы не знаете точно, что делаете.
Выбираем [ Analyse ], жмем Enter:

testdisk - анализ диска

testdisk - анализ диска


Здесь команда снова предлагает опции на выбор, а также показывает текущие разделы винчестера. В текущий момент, как вы помните, на жестком диске существует только один раздел, о чем и сообщила программа.
Оставляем свой выбор на [ Proceed ] (для этого достаточно ничего не менять) и снова жмем Enter:
testdisk - восстановление разделов Vista

testdisk - восстановление разделов Vista


Теперь нас спрашивают, нужно ли искать разделы, созданные ОС Windows Vista. Если только вы не используете Висту — нажмите N:
testdisk - список найденных разделов

testdisk - список найденных разделов


После анализа, перед нами открывается список найденных разделов. На моем втором винчестере как был один раздел, так и есть. Однако, если бы недавно их было несколько — они бы непременно нашлись.
Вы можете выбрать раздел (стрелками вверх-вниз) и нажать на клавишу P (английская «П»), что бы посмотреть список файлов, содержащихся на разделе (в том числе и на удаленном ранее разделе).
Так же, можно добавлять разделы (A), менять их тип (T), удалять разделы(D) или загружать резервную копию таблицы разделов(L) если она была создана ранее.
Нажав на Enter, вы заявите программе, о своем желании сохранить новую таблицу разделов и после подтверждения, программа запишет новую таблицу разделов, восстановив таким образом, удаленные (или поврежденные) ранее разделы.

Данная статья написана через несколько часов после того, как автор собственноручно восстановил три раздела с ОС Linux, зверски удаленных win-программой Partition Magick.


Автор: Виктор Симон
www.man-linux.ru
Права копирования
Опубликовано 26 августа 2008 - информация могла устареть.

34 комментария »

  1. Замечательная статья.
    Сделала все как здесь написано, чтоб вернуть себе потерянный раздел диска… но увы, после перезагрузки он так и не появился.
    Может подскажете в чем может быть дело,а? ^_^’

    Комментарий by NotreLenok — 1 июля 2009 @ 19:03

  2. Какая ОС у Вас и где конкретно он не появился? Если testdisk’ом удалось найти раздел, то после восстановления он обязан был появиться — возможно забыли сохранить новую таблицу разделов.

    Комментарий by admin — 14 июля 2009 @ 5:45

  3. Спасибо за информацию, она заставила меня серъёзно поработать над восстановлением файловой системы (UBUNTU 9.04). Вариант с testdisk, к сожалению не сработал. Однако используя программу gparted удалось восстановить файловую систему сразу. Загрузка, как и в варианте с testedit, с CD-LIVE. А далее идём по маршруту «System — Administration — Partition Editor». Далее Partition — Check. По окончании проверки, файловая система восстановилась. Вот так, всё оказалось просто, когда знаешь куда идти.

    Комментарий by zbrmsu — 28 сентября 2009 @ 21:17

  4. Здраствуйте! Самая понятная статья из всех, что я либо читала про восстановление жесткого диска! Спасибо огромное!!!
    У меня вот такой вопрос: Мне необходимо востановить жесткий диск после после того как выключилось питание у ноутбука во время сжатие ж. диска и увеличения диска С. с помощью программы Paragon Partition Manager 10.0. Acronis определил наличме ж. диска, а вот Linux, который я запускала с флешки его не видит… Подсажите что можно сделать в этой ситуации??? Насколько сильно я попортила жесткий диск, это очень плачевно, ноутбук совсем новехенький :.( ?????
    Буду несказанно благодарна за подробный ответ!!!

    Комментарий by Katik — 10 февраля 2010 @ 14:10

  5. У меня такая ситуация: было 3 раздела. Тестдиск нашел только 2 из них. После нажатия «глубокое сканирование» нашелся и 3-й диск, в отличие от тех 2-х, он помечен D(удаленный). Список файлов могу посмотреть, но после нажатия Enter, тестдиск указывает, что будет восстанавливать только те, которые были найдены после первого поиска. Нажатие L также не помогает. А мне очень нужны данные с 3-го диска. Подскажите, пожалуйста, что предпринять.

    Комментарий by anlini777 — 25 февраля 2010 @ 3:32

  6. Спасибо большое! Хотел изменить размер раздела и посреди процесса выключили свет; думал конец коллекции музыки, фильмов и картинок, накопленных непосильным трудом, ан нет, все восстановилось как будто и не было сбоя. Спасибо!

    Комментарий by kkech — 19 августа 2010 @ 15:54

  7. наведи курсор на раздел который удален нажми пробел. дальше обьяснять?

    Комментарий by toxic — 14 декабря 2010 @ 23:56

  8. Виктор, огромное спасибо за статью. Она меня просто спасла!

    Комментарий by Alex — 18 марта 2011 @ 20:54

  9. Виктор, спасибо Вам большое за статью…очень помогла…удалось восстановить разделы вместе с операционкой и не пропали данные…

    Комментарий by Sky2005 — 31 мая 2011 @ 1:22

  10. Подскажите пожалуйста, у меня проблема в следующем.
    Я через LiveCd загрузил программу Mbr Fix и так уж вышло поставил галку на разделе clen и очистил mbr разделы жестких дисков, что теперь делать ума не приложу помогите, у меня на одно система была, бог с ним, а на других двух вся информация проги фотки итд

    Комментарий by dennis-bmw — 7 октября 2011 @ 21:12

  11. Наверное уже не актуально и с программой MbrFix дела не имел, но если testdisk не помогает, то тут в комментах еще советовали программу gparted. Ну и гугл обычно отвечает на любые вопросы…

    Комментарий by admin — 29 октября 2011 @ 1:53

  12. тестдиск короче не сработал на диске C который является ssd накопителем, а вот все остальные диски просто восстановил раздел тестдиском, который поставил признак начала диска и признак конца диска и вся информация которая там была и осталась…

    Комментарий by dennis-bmw — 30 октября 2011 @ 12:55

  13. А с какими файловыми системами может работать эта утилита?

    Комментарий by amirash777 — 24 ноября 2011 @ 7:00

  14. У меня вот что нашла программа:
    > 1 * HPFS — NTFS 0 1 1 1911 254 63 30716217
    2 E extended 1912 0 1 5528 254 63 58107105
    3 P Linux 5529 0 1 30400 254 63 399568680

    Bad relative sector.
    5 L Linux Swap 1912 26 35 2173 242 53 4206592

    Bad relative sector.
    X extended 2174 0 1 2827 10 63 10491138
    6 L Linux 2174 20 23 2827 10 63 10489856

    Комментарий by amirash777 — 24 ноября 2011 @ 7:10

  15. Эта утилита работает с таблицей разделов диска, т.е. чуть более низкоуровневый подход, чем файловые системы.

    Комментарий by admin — 17 декабря 2011 @ 13:34

  16. Огромное Вам спасибо за эту статью, глубоким анализом восстановил все данные.

    Комментарий by Valkeru — 14 марта 2012 @ 16:51

  17. Специально зарегистрировался, что бы сказать спасибо за статью!

    Комментарий by vall0808 — 17 марта 2013 @ 13:26

  18. Приятно, что статья приносит пользу, спасибо :)

    Комментарий by admin — 5 апреля 2013 @ 22:48

  19. Решили переспросится перед применением вашей статьи.
    При попытке просмотреть содержимое(по ярлыку Компьютер) диска( с Win) LivePuppiL (не поддерж ntfs) било проигнорировано предупреждение об этом и разрешено действие-наверно примонтировать.
    Но копирование файлов не пошло(замки). Отмонтировать не даёт.
    W перестала грузится. partmegik прояснил — не видит разд С и Д
    Liv Puppy 5.6(es’t podderjka NTFS) видит только С без содержимого т.е.(изнутри в sda1 файлs Appinfo.xml и AppRun) ~/.pup_event/driv_sda1.
    Может просто отмонтировать!
    К благодарностям за «вывод из тупика» присоединяемся!

    Комментарий by robus — 27 августа 2013 @ 19:01

  20. Сложно сказать — нужно знать, что именно произошло при монтирования диска без поддержки файловой системы развернутой на нем.
    Попробовать можно, как testdisk, так и другие утилиты. Если повреждена таблица файлов — testdisk может помочь. Если повреждена сама файловая система, вместе с данными на ней — остается уповать на везение и сообразительность утилит восстановления, вполне возможно одним testdisk тут не обойдешься.
    В любом случае, testdisk не будет ничего делать с винтом, пока вы не дадите ему подтверждения. Если же он «увидит» таблицу разделов и файлы, которые не может увидить ОС — вероятно есть смысл попытаться восстановить с его помощью.

    Комментарий by admin — 30 августа 2013 @ 1:30

  21. здравствуйте.
    Такая ситуация: хотел изменить размер раздела через Gparted, но в итоге случайно удалил таблицу ФС. Стояли две системы — win7 и ubuntu13.04. Testdisk видит все разделы, но когда просит перезагрузиться, системы не грузятся — только курсор мигает. Подскажите, как решить данную ситуацию?

    Комментарий by dovim — 7 октября 2013 @ 17:53

  22. Вообще, в такой ситуации, я бы загрузился с лайв-сиди и посмотрел что не так с загрузчиком. По идее там загрузчик Ubuntu в MBR, а он уже отправляет в Windows по необходимости. В качестве загрузчика часто используется grub (не знаю, как в ubuntu, но в центосях, например, регулярно) так-что я бы просто загрузился с лайв-сиди и посмотрел раздел boot (в лайв-сиди может быть собственный boot, а системный раздел нужно смонтировать отдельно) и может-быть подправить имена разделов в grub.conf на нем (они могли измениться). Не имея проблемы «перед глазами» сложно сказать точнее, но общее направление где-то рядом :)

    Комментарий by admin — 21 октября 2013 @ 4:02

  23. Сможет ли TestDisk помочь восстановить данные с раздела отформатированного жесткого диска? Раздел диска был расширен а потом отформатирован (всегда использовалась файловая система NTFS).

    Комментарий by Norma — 29 октября 2013 @ 0:07

  24. Теоретически… зависит от уровня и способа форматирования. В целом — нужно смотреть, пробовать — он либо сможет, либо нет.

    Комментарий by admin — 15 ноября 2013 @ 3:53

  25. Здравствуйте, не подскажите что написано в окне testdisk:

    Disk \\.\PhysicalDrive1 — 1000 GB / 931 GiB — CHS 121601 255 63
    Partition Start End Size in sectors
    >*HPFS — NTFS 0 1 1 50991 254 63 819186417
    HPFS — NTFS 50992 0 1 96104 254 63 724740345
    HPFS — NTFS 76488 0 1 121600 254 63 724740345

    Structure^ Ok.

    NTFS, blocksize=4096, 419 GB / 390 GiB

    … и чего опасаться, как быть дальше. Проблема та же что и у многих: Во время работы в программе распределения свободного пространства (Paragon Partition Magick 9.0)на дисках, а именно было запущено увеличение объёма раздела за счёт соседнего раздела, произошёл сбой. Но система показала что вместо двух разделов уже один, но его прочитать она не может. Система знает что раздел на NTFS и всё. Раздел донор был пустой. Раздел, который расширялся имеет данные которые неоходимо восстановить.

    Помогите пожалуйста советом!

    Комментарий by Emeljen — 15 ноября 2013 @ 14:23

  26. Если я правильно понял из вашего сообщения — программа показала три раздела.
    По всей вероятности два нижних — это те, что были удалены, а третий верхний — новый.
    К сожалению, точнее не скажу — с тестдиском давно не работал, точный формат вывода подзабыл, а заново запускать и смотреть вместа с мануалом времени нет.

    По всей вероятности, один из нижних разделов является донором, второй — непустым, а верхний-третий это временный раздел. Что из них чем является определить сложно, но если доступа к данным нет — либо рисковать самому, восстанавливая таблицу разделов, либо отнести винт к специалистам.
    Ситуация сама по себе сложная — тут же не просто повреждена или удалена таблица разделов, тут еще и переразделение разделов, с соответствующим измененим структуры файловой системы. В общем сложно что-либо советовать.

    Комментарий by admin — 24 ноября 2013 @ 6:42

  27. Добрый день! Очень хорошая статься, и я очень надеялся, что мне она тоже поможет, судя по многочисленным положительным отзывам. Но что-то у меня пошло не так, и я хочу спросить у Вас, дорогой admin, что именно))) Сбой произошел после неоднократных «исчезновений» диска из-за дешевого китайского адаптера с SATA на USB, знал ведь, что это может привести к таким последствиям, но убедился в этом — когда было поздно))) ОС у меня Win7-64 разрядная, восстанавливаемый диск 1.5Тб (NTFS) один раздел, подключен по USB-2.0 (уже через нормальный адаптер), после анализа, появляется надпись «Warning: number of bytes per sector mismatches 4096 (NTFS) != 512 (HD)», но все равно разрешает продолжить и сохранить. После перезагрузки, ничего не меняется, жесткий диск не виден. Может я неправильно выхожу из программы, какая именно нужна последовательность, и какие атрибуты лучше выбирать для раздела если он используется как хранилище? Может еще что-то я не учел, хотя инструкция вроде очень подробная? Спасибо заранее за ответ.

    Комментарий by Pavel — 26 мая 2014 @ 20:32

  28. К сожалению, как то пропустил Ваш вопрос — не заметил его, поэтому ответ уже вероятно не своевременен :(
    А вообще, я бы попытался:
    1. Найти в точности такой же адаптер, который использовался до появления проблемы и если получится (а это могло бы помочь), слить с винта информацию.
    2. Воткнуть винт напрямую в комп, без всяческих адаптеров и смотреть.
    Больше, тут особо посоветовать нечего, к сожалению.

    Комментарий by admin — 17 августа 2014 @ 6:50

  29. К моей великой радости — все заработало!!! И, кстати, крайний ответ от admin не потребовался, хотя все еще был актуален и ожидаем (Спасибо Вам!). Все «заработало» само собой, когда отчаявшись, я напоследок решил попробовать самый первый совет нашего Гуру, а именно — взять Linux, и всю процедуру восстановления раздела произвести под оной. Почитал отзывы об неизвестной мне ОС, скачал свеженький «Ubuntu-бутив», немного полазил, ознакомился, и принялся, собственно, за то, ради чего, мы, не смотря ни на что… и т.д.)))) отвлекся.. И я даже не успел включить программу testdisk, похоже, запускавшись ранее под виндой, она давно уже восстановила всю разметку на HDD, но винда по каким то причинам разделы не видела, всегда предлагая мне простой и легкий способ выкинуть из моей жизни несколько лет воспоминаний нажатием всего одной кнопки!!! (Спасибо мне, что я не согласился). Включаю HDD… и удивленный, вижу свои папки…ничего не понимаю, захожу в одну, еще папки, …в них файлы… не верится! Выделяю кусочек бесценной инфы, копирую…- копируется)))) УРА!!! не долго думая, ставлю все папки по очереди на копирование (хорошо хоть спасательный корабль позволял спасти всех)))). Вот такое чудо произошло у меня. После того, как все спаслись, поставил этот HDD на полное форматирование (на всякий случай), не пожалел времени, а его потребовалось больше суток! Зато теперь у меня есть 100% рабочий HDD, и можно обратно весь архив на него залить и не бояться, что будут ошибки))) Теперь я, в добавок ко всему, стал еще и пользователем Ubuntu. Как говорится — «в нашем полку прибыло!» Всем рекомендую. Admin-у спасибо за статью!

    Комментарий by Pavel — 26 сентября 2014 @ 7:44

  30. Очень приятно читать такие комментарии.
    Спасибо Вам, Pavel!

    Комментарий by admin — 8 ноября 2014 @ 23:14

  31. День Добрый! Огромнейшее спасибо за статью! Как ни странно,она актуальна и сейчас,спустя почти 10 лет после её написания. Я только что восстановил раздел на 128 Гб.карте памяти. Правда,некоторые мои действия были другими,нежели описанные в статье… Чуть позже я повторю все действия по восстановлению раздела,и если кому надо будет,отпишусь,или напишу статью.

    Комментарий by semargl — 10 июля 2016 @ 11:13

  32. Приятно знать, что статья написана не зря и помогает даже спустя десять лет. Спасибо!

    Комментарий by admin — 21 августа 2016 @ 18:37

  33. Огромное спасибо!Я СПАСЁН!!! В первые в жизни кильнул целый диск с фотками на чужом ноутбуке. Думал голова лопнет от жути ))) подышал успокоился нашел Вашу статью и спасся! Респект Вам и уважуха! Статья написана языком хорошего доктора ))) на первых абзацах понимаешь что ты в нужном месте )

    Комментарий by lapson — 12 октября 2016 @ 1:52

  34. Приятно слышать, спасибо! :)

    Комментарий by admin — 18 ноября 2016 @ 23:36

RSS feed for comments on this post.

Leave a comment

Для отправки комментария вам необходимо авторизоваться.

Powered by WordPress