Время на прочтение
4 мин
Количество просмотров 423K
0. Intro.
Ситуация следующая. Есть винт на 160Гб. На нем 2 раздела — 40Гб и 120Гб. С целью установки убунты как второй системы была произведена разбивка 120Гб -> 100+10+2+8.
Далее, с целью отката изменений, были объединены диски (10, 2 и обратно в один 20Гб и отформатирован в NTFS. В нагрузку к этому, были проведены операции с MBR, результатом которой явилась ее смерть.
Итоги
1. При загрузке системы выводится сообщение MBR helper not found;
2. fdisk показывает один большой 160Гб диск.
Дураку понятно, что это начало веселой ночи.
Далее, под катом, решения вопроса.
1. Восстановление таблицы разделов
1.1. Parted magic
Данный LiveCDUSB дистрибутив, размером в 100Мб несет в себе огромную кучу софта, для работы с дисками. От разбивки, до восстановления.
Из них всех, нам нужны будут gpart, testdisk, fdisk и ms-sys.
1.2. Gpart
gpart — это утилита, сканирующая по-секторно диск на наличие разделов, которые присутствуют на носителе, но отсутствуют в таблице. В своей работе, она игнорирует уже существующую таблицу (если присутствует). Программа разаботана немецким программистом Michail Brzitwa и больше им не поддерживается. Вялотекущая разработка ведется командами Fedora и Debian. Текущая версия — 0.1h.
Утилита позволяет наиболее быстро и легко восстановить таблицу разделов, но она несет в себе несколько недостатков. Во-первых, разработка была давно заброшена, во-вторых, она иногда не совсем корректно определяет разделы.
gpart может работать в 2-х режимах. Это быстрый анализ и подробное сканирование. В некоторых случаях, первого режима достаточно. Мы же будем смотреть на второй.
gpart -if /dev/sda
-i — интерактивный режим. На каждую найденную партицию будет задан вопрос, сохранять ее, либо пропустить.
-f — полный скан диска.
После, довольно продолжительного времени, будет создан отчет с возможными разделами. Его-то и нужно обязательно максимально внимательно просмотреть перед записью.
Пример отчета (не мой):
Begin scan...
Possible partition(DOS FAT), size(1907mb), offset(0mb)
Possible partition(SGI XFS filesystem), size(5730mb), offset(1907mb)
End scan.
Checking partitions...
Partition(DOS or Windows 95 with 32 bit FAT, LBA): primary
Partition(Linux ext2 filesystem): primary
Ok.
Guessed primary partition table:
Primary partition(1)
type: 012(0x0C)(DOS or Windows 95 with 32 bit FAT, LBA)
size: 1907mb #s(3906544) s(16-3906559)
chs: (0/1/1)-(1023/19/16)d (0/1/1)-(12207/19/16)r
Primary partition(2)
type: 131(0x83)(Linux ext2 filesystem)
size: 5730mb #s(11736000) s(3906560-15642559)
chs: (1023/19/16)-(1023/19/16)d (12208/0/1)-(48882/19/16)r
Primary partition(3)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
Primary partition(4)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
Если все ОК, то соглашаемся на запись в таблицу разделов, скрещиваем пальцы и перезагружаемся.
В моем случае, программа определила разделы, которые были до разбивки (40 и 120), что не подходило и заставило искать альтернативные способы восстановления.
1.3. testdisk
Note: подробнее эта утилита описана в этом посте, здесь не буду повторяться.
Эта утилита аналогична предыдущей, но имеет ряд плюсов:
1. более свежая и активно поддерживается;
2. субъективно, работает намного быстрее;
3. функциональнее;
4. есть простой консольный интерфейс на базе ncurses.
Поехали!
1. в первом окне выбираем Create a new log file;
2. выбираем нужный диск (/dev/sda) -> Proceed;
3. отмечаем тип разделов как Intel;
4. выбираем Analyse current partition structure and search for lost partitions;
5. если найденные разделы верны, жмем Backup и переходим к пункту 6, есть возможность быстро пересканировать диск, если где-то ошибка (Quick search);
6. здесь уже виден зеленый список с разделами. Если ок, то записываем, иначе запускаем Deep search.;
В моем случае, результат был аналогичен результату gpart, что есть некорректен.
Запустив Deep search, выждав около 40 минут я получил ответ, от которого на душе так нехило отлегло.
Было найдено несколько партиций, которые накладывались одна на другую (это были изначальная (до манипуляций) 120Гб и новая, на 100Гб). Отметив ненужную, как удаленную, я записал таблицу на диск и перезагрузился. К счастью, все обошлось и компьютер вернулся к состоянию, который был изначально, а я мог с чистой совестью лечь спать.
3. Восстановление MBR
Для этой задачи, у нас в арсенале есть тулза ms-sys.
Сперва узнаем, что с нашей MBR.
ms-sys /dev/sda
/dev/sda has an x86 boot sector
it is unknown boot sector
Теперь видно, что на данном диске нет загрузочного сектора.
Утилита может работать с MBR различных операционных систем. Список можно получить, запустив программу без агрументов. В моем случае, необходим был от Windows 7.
Записываем MBR на диск:
ms-sys -7 /dev/sda
Windows 7 master boot record successfully written to /dev/sda
Проверяем:
ms-sys /dev/sda
it is Microsof 7 master boot record, like the one this
program creates with the switch -7 on a hard disk device.
Вот и все, нужная MBR установлена и можно перезагружаться.
3. Outro
Этот пост пример того, как на пустом месте можно создать себе проблему и полночи заниматься не тем, чем надо. Но это дало неоценимый опыт, который я постарался изложить здесь.
Возможно, кому-нибудь он пригодится. Ведь в такую ситуацию попасть очень не сложно, а детального мануала особо-то и нет.
I recently had trouble with the MBR/partition table on my laptop. I managed to rebuild the partition table using testdisk, and install GRUB to get it booting properly again (I’m using a dual-boot with Windows 7). However, I can no longer run gparted properly as I get the error Can't have a partition outside the disk!
.
fdisk -l
output looks like this:
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x188f12a9
Device Boot Start End Blocks Id System
/dev/sda1 * 1 154 1228800 7 HPFS/NTFS/exFAT
/dev/sda2 154 13446 106775171 7 HPFS/NTFS/exFAT
/dev/sda3 13447 28745 122880000 83 Linux
/dev/sda4 28745 30402 13317664+ f W95 Ext'd (LBA)
/dev/sda5 28745 29127 3069944 82 Linux swap / Solaris
/dev/sda6 29127 30402 10240000 7 HPFS/NTFS/exFAT
So the disk has 30401 cylinders
, but sda6
ends at cylinder 30402
; presumably that’s where the problem is.
When I run testdisk it has the 6th partition ending at cylinder 30401
, but writing it to the partition table does not make any difference.
Is there an easy way to fix this?
I’ve read elsewhere that I could fix this by manually editing the partition table, but I’d like really specific instructions as I don’t really know much about this area!
Содержание
- Восстановление таблицы разделов в Linux
- Введение
- Восстановление таблицы разделов
- Восстановление mdadm массива
- Восстановление таблицы разделов на mdadm
- Заключение
- Восстановление убитых MBR и таблицы разделов
- 0. Intro.
- 1. Восстановление таблицы разделов
- 3. Восстановление MBR
- testdisk — восстановление таблицы разделов средствами Linux
- testdisk — восстановление таблицы разделов диска
- Возможно вас заинтересует:
- Добавить комментарий Отменить ответ
- 26 Август 2008
- 34 комментариев »
- Оставить комментарий
Восстановление таблицы разделов в Linux
В моем домашнем NAS внезапно отказал один из дисков. Это был единственный диск не в raid, данные на котором вроде как не важные (торренты, софт и т.д., все, что можно заново выкачать из инетрнета), поэтому диск не дублировался. Ничего критичного не произошло, но мне все равно стало жалко данные, поэтому я заменил диск, а этот отложил в сторонку, чтобы попытаться восстановить информацию. У меня это получилось, поэтому решил задокументировать результат, чтобы самому не забыть и с вами поделиться.
Введение
Симптомы поломки были следующие. Заметил, что пропал сетевой диск. Зашел на сервер и увидел, что диск не инициализирован. Таблица разделов пустая. При этом, диск работал нормально и SMART ошибок не показывал. Я сразу заподозрил, что проблема именно с таблицей разделов. Данные должны быть на месте.
Я подключил сбойный диск в обычный системник. Сделал загрузочную флешку с Ubuntu Live CD и загрузился с нее. Настроил там сеть, стандартные репозитории.
Восстановление таблицы разделов
Я давно знаю утилиту testdisk. С ее помощью мне уже удавалось восстанавливать данные в linux. Она есть в репозиториях ubuntu, так что я ее установил. Далее все было просто. К сожалению, скриншотов нет, так как делал все на отдельном системнике. Расскажу на словах, что сделал:
Если восстанавливаете таблицу разделов обычного диска, то уже сейчас можно было бы смонтировать найденный раздел и попытаться прочитать данные. В моем же случае, нужно было собрать mdadm массив и подмонтировать уже его. Вот тут и начались самые сложности, с которыми больше всего провозился.
Восстановление mdadm массива
Установил в live систему mdadm:
Первым делом проверил суперблоки на восстановленном разделе:
На вид все было в порядке. Дальше рассчитывал сразу найти массив и примонтировать его.
Тут я приуныл, потому что не мог понять, в чем проблема. Пробовал разные команды для запуска массива, но он упорно не стартовал. При этом на вид все было в порядке. Потом в какой-то момент я додумался посмотреть dmesg.
Решение этой ошибки достаточно быстро нагуглилось.
После этого массив нормально стартовал и cat /proc/mdstat показывал его состояние. Тут я думал, что мои мучения окончены и я сейчас получу свои данные. Но это тоже было еще не все.
Восстановление таблицы разделов на mdadm
Просто подмонтировать запущенный mdadm массив к системе не получилось.
Я так понял, что тут либо таблица разделов так же была уничтожена, либо файловая система. Я не знал, как был разбит на разделы сам массив, поэтому просто решил еще раз прогнать анализ таблицы разделов уже массива md2 через утилиту testdisk.
К счастью, она нашла единственный раздел на диске и восстановила его. Таким образом у меня получилось устройство /dev/md2p1. Дальше я успешно смонтировал этот раздел в /mnt и получил доступ к данным. Они все были на месте.
В заключении я к этой же системе подмонтировал сетевой диск через cifs и начал копировать данные.
Заключение
В итоге у меня все получилось, но считаю, что просто повезло, так как любое неверное действие в восстановлении таблицы разделов могло привести к фатальным последствиям. Если вы будете восстанавливать реально важные данные, то обязательно сделайте посекторную копию носителя и работайте с ней. И внимательно смотрите на восстановленные разделы перед их записью. Если что-то пойдет не так, то восстановить данные будет в разы сложнее. Наверняка таблицу разделов придется править уже вручную, а для этого нужны хорошие знания. У меня, к примеру, их нет.
Непонятной осталась причина сбоя, и это хуже всего. На вид все в порядке, но я теряю доступ к данным. Любой другой пользователь, не разбирающийся в linux, просто потерял бы данные, либо пришлось обращаться в специализированные фирмы по восстановлению информации, а это стоит дорого. И еще, как я понял, я точно так же мог потерять доступ и к массиву из нескольких дисков. К слову, потерпевший NAS это Synology, где под капотом обычный linux и mdadm, поэтому я понимал, как надо действовать. На этом же устройстве есть несколько массивов на много Tb и если бы кто-то из них сглючил, то было бы плохо.
Несколько моих статей по восстановлению загрузки linux после различных сбоев:
Источник
Восстановление убитых MBR и таблицы разделов
0. Intro.
Итоги
1. При загрузке системы выводится сообщение MBR helper not found;
2. fdisk показывает один большой 160Гб диск.
Дураку понятно, что это начало веселой ночи.
Далее, под катом, решения вопроса.
1. Восстановление таблицы разделов
1.1. Parted magic
Данный LiveCDUSB дистрибутив, размером в 100Мб несет в себе огромную кучу софта, для работы с дисками. От разбивки, до восстановления.
Из них всех, нам нужны будут gpart, testdisk, fdisk и ms-sys.
1.2. Gpart
gpart — это утилита, сканирующая по-секторно диск на наличие разделов, которые присутствуют на носителе, но отсутствуют в таблице. В своей работе, она игнорирует уже существующую таблицу (если присутствует). Программа разаботана немецким программистом Michail Brzitwa и больше им не поддерживается. Вялотекущая разработка ведется командами Fedora и Debian. Текущая версия — 0.1h.
Утилита позволяет наиболее быстро и легко восстановить таблицу разделов, но она несет в себе несколько недостатков. Во-первых, разработка была давно заброшена, во-вторых, она иногда не совсем корректно определяет разделы.
gpart может работать в 2-х режимах. Это быстрый анализ и подробное сканирование. В некоторых случаях, первого режима достаточно. Мы же будем смотреть на второй.
После, довольно продолжительного времени, будет создан отчет с возможными разделами. Его-то и нужно обязательно максимально внимательно просмотреть перед записью.
Пример отчета (не мой):
Begin scan.
Possible partition(DOS FAT), size(1907mb), offset(0mb)
Possible partition(SGI XFS filesystem), size(5730mb), offset(1907mb)
End scan.
Checking partitions.
Partition(DOS or Windows 95 with 32 bit FAT, LBA): primary
Partition(Linux ext2 filesystem): primary
Ok.
Guessed primary partition table:
Primary partition(1)
type: 012(0x0C)(DOS or Windows 95 with 32 bit FAT, LBA)
size: 1907mb #s(3906544) s(16-3906559)
chs: (0/1/1)-(1023/19/16)d (0/1/1)-(12207/19/16)r
Primary partition(2)
type: 131(0x83)(Linux ext2 filesystem)
size: 5730mb #s(11736000) s(3906560-15642559)
chs: (1023/19/16)-(1023/19/16)d (12208/0/1)-(48882/19/16)r
Primary partition(3)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
Primary partition(4)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
Если все ОК, то соглашаемся на запись в таблицу разделов, скрещиваем пальцы и перезагружаемся.
В моем случае, программа определила разделы, которые были до разбивки (40 и 120), что не подходило и заставило искать альтернативные способы восстановления.
1.3. testdisk
Note: подробнее эта утилита описана в этом посте, здесь не буду повторяться.
Эта утилита аналогична предыдущей, но имеет ряд плюсов:
1. более свежая и активно поддерживается;
2. субъективно, работает намного быстрее;
3. функциональнее;
4. есть простой консольный интерфейс на базе ncurses.
В моем случае, результат был аналогичен результату gpart, что есть некорректен.
Запустив Deep search, выждав около 40 минут я получил ответ, от которого на душе так нехило отлегло.
Было найдено несколько партиций, которые накладывались одна на другую (это были изначальная (до манипуляций) 120Гб и новая, на 100Гб). Отметив ненужную, как удаленную, я записал таблицу на диск и перезагрузился. К счастью, все обошлось и компьютер вернулся к состоянию, который был изначально, а я мог с чистой совестью лечь спать.
3. Восстановление MBR
Для этой задачи, у нас в арсенале есть тулза ms-sys.
Сперва узнаем, что с нашей MBR.
ms-sys /dev/sda
/dev/sda has an x86 boot sector
it is unknown boot sector
Теперь видно, что на данном диске нет загрузочного сектора.
Утилита может работать с MBR различных операционных систем. Список можно получить, запустив программу без агрументов. В моем случае, необходим был от Windows 7.
Записываем MBR на диск:
Источник
testdisk — восстановление таблицы разделов средствами Linux
Иногда случается так что, неожиданно после вроде бы обычного завершения работы, пропадает диск или несколько дисков (разделов)
В некоторых случаях можно восстановить стандартными утилитами типа Easy recovery. Но практически ни одна из программ не поможет вам восстановить раздел linux.
Мы рассмотрим одну из самых мощнейших программ по восстановлению потерянных разделов- testdisk.
Программа testdisk восстанавливает не рабочую или уничтоженную таблицу разделов на жестком диске,с поддержкой основных файловых систем, например reiserfs, linux ext3 и других, кроме того — testdisk способен восстановить файловые системы Windows (fat32, ntfs).
Testdisk – сканирует весь НЖМД, после чего выдаёт информацию о всех найденных разделах, после чего вы уже сможете сами определить какой раздел вам необходим для восстановления информации с жёсткого диска.
Главное правило – как только вы заметили что с разделом беда, не записывайте не форматируйте и не переустанавливайте систему, пока вы не начали делать каких-либо манипуляций с диском – вероятность восстановления очень высока. Удалена лишь некоторая информация из таблицы разделов диска, отвечающая за разделы.
Самый простой способ использования testdisk, это создание LIVE CD или загрузочной флешки.
Качаем образ SYSTEMRESCUECD, который уже содержит все необходимые утилиты для реанимации HDD.
После создания загрузочной флешки, перезагружаемся и грузимся с флешки.
Загрузочное меню SYSTEMRESCUECD
Если вы используете какой либой другой дистрибутив Linux, и у вас нет етой программы, необходимо установить TestDisk.
В системах Red Hat, CentOS, Fedora Core
В системах Debian, Ubuntu:
Запустим программу TestDisk, из командной строки:
Выбираем — будем ли мы использовать новый Log файл или уже существующий.
Выбираем Create и жмём клавишу Enter:
выбор физического жёсткого диска
Выбираем пункт Proceed, жмем клавишу Enter:
Выбираем Intel жмем клавишу Enter:
Выбор опций программы TestDisk
TestDisk, выбор типа файловой системы.
Оставляем выбор по умолчанию.
Выбираем Proceed, жмем клавишу Enter:
список найденных разделов TestDisk.
Выбираем раздел (стрелками вверх/вниз) и жмём клавишу P, мы сможем посмотреть список файлов на найденом разделе.
Чтобы добавить разделы — жмём клавишу A, изменить тип раздела жмём клавишу T, удалить раздел D или загрузить резервную копию таблицы разделов L, при условии что — она была создана ранее.
Если нажать на клавишу Enter, вы начнёте процедуру сохранения новой таблицы разделов, после подтверждения, будет записана новая таблица разделов, и ранее удаленные или поврежденные разделы будут восстановлены.
Источник
testdisk — восстановление таблицы разделов диска
UPD: картинки сделаю позже
Неожиданно пропали разделы диска? Были уничтожены в результате ошибки? Не паникуйте — есть выход.
Программа 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.
Для начала пробуем
Выдало справочную информацию — окей, программа есть в комплекте. Выдало ошибку, что программа не найдена — придется устанавливать.
Для установки программы, в зависимости от того, какая у вас ОС Linux, откройте терминал (консоль) и наберите:
В системах класса RH (Red Hat, Fedora Core, CentOS)
В системах типа Debian, Ubuntu:
В системе Linux Gentoo:
В зависимости от вашей системы, одна из этих команд попытается установить testdisk. Если установка завершится с ошибкой — придется компилировать программу из исходников. Взять исходные тексты программы, а так же прочитать рекомендации по установке, можно на сайте разработчика.
В целом, установка программы не должна составить больших проблем и скорее всего не придется компилировать ее из исходников — чаще всего она устанавливается с помощью менеджера пакетов (yum, apt-get или emerge, в зависимости от ОС).
Итак, программу установили.
Мучить многострадальный первый диск, восстановленный всего несколько часов назад, я не хочу. Поэтому, покажу на примере своего второго диска sdb, на котором находится (и всегда находился) лишь один раздел, что не очень подходит для нашего примера, к сожалению, но за неимением других вариантов подойдет и этот.
Запускаем:
Нам предлагают выбрать, что делать с логом — создать новый файл лога, продолжить запись в существующий (если он существовал) или не создавать лог вообще. Осуществлять выбор можно с помощью клавиатуры, стрелками вверх и вниз.
Оставим первый вариант, жмем Enter :
Теперь, нам предлагают выбрать платформу. В большинстве случаев это будет “Intel”, если же у вас другая платформа — вероятно вам об этом известно.
Выбираем платформу и жмем Enter :
Теперь нам предлагают выбрать, одну из возможных опций. Прочитать подробнее, о данных опциях можно используя справочную информацию к команде, в стандартном же случае, нем вполне подойдет опция [ Analyse ], более того, очень не советую трогать другие опции, если вы не знаете точно, что делаете.
Выбираем [ Analyse ], жмем Enter :
Здесь команда снова предлагает опции на выбор, а также показывает текущие разделы винчестера. В текущий момент, как вы помните, на жестком диске существует только один раздел, о чем и сообщила программа.
Оставляем свой выбор на [ Proceed ] (для этого достаточно ничего не менять) и снова жмем Enter :
Теперь нас спрашивают, нужно ли искать разделы, созданные ОС Windows Vista. Если только вы не используете Висту — нажмите N:
Возможно вас заинтересует:
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник
26 Август 2008
Окей, будем восстанавливать таблицу.
Если у Вас нет возможности запустить ОС на компьютере, с поврежденным винчестером, для начала, вам понадобится LiveCD (желательно с операционной системой Linux). Я делал это с помощью LiveCD Linux Ubuntu, поскольку под рукой не оказалось других LiveCD, но имея выбор, предпочел бы Linux Fedora Core.
Смысл LiveCD заключается в том, что на нем расположена операционная система, которой не требуется жестких дисков вообще, т.е. можно даже отключить винчестер и это не помешает загрузиться операционной системе, расположенной на LiveCD.
LiveCD доступны для бесплатного скачивания через интернет, их можно найти например так.
Окей, как бы там нибыло, ОС у нас загружена.
Теперь нам понадобится программа testdisk.
Эта программа умеет работать также под Windows, но все же надеюсь, что у вас загружена именно Linux и все дальнейшие рекомендации относятся именно к работе в Linux.
Для начала пробуем
В системах типа Debian, Ubuntu:
В системе Linux Gentoo:
Итак, программу установили.
Мучить многострадальный первый диск, восстановленный всего несколько часов назад, я не хочу. Поэтому, покажу на примере своего второго диска sdb, на котором находится (и всегда находился) лишь один раздел, что не очень подходит для нашего примера, к сожалению, но за неимением других вариантов подойдет и этот.
Запускаем:
Теперь нам предлагают выбрать, одну из возможных опций. Прочитать подробнее, о данных опциях можно используя справочную информацию к команде, в стандартном же случае, нем вполне подойдет опция [ Analyse ], более того, очень не советую трогать другие опции, если вы не знаете точно, что делаете.
Выбираем [ Analyse ], жмем Enter :
Данная статья написана через несколько часов после того, как автор собственноручно восстановил три раздела с ОС Linux, зверски удаленных win-программой Partition Magick.
34 комментариев »
Замечательная статья.
Сделала все как здесь написано, чтоб вернуть себе потерянный раздел диска… но увы, после перезагрузки он так и не появился.
Может подскажете в чем может быть дело,а? ^_^’
Комментарий от NotreLenok — 1 Июль 2009 @ 19:03
Комментарий от admin — 14 Июль 2009 @ 5:45
Комментарий от zbrmsu — 28 Сентябрь 2009 @ 21:17
Комментарий от Katik — 10 Февраль 2010 @ 14:10
У меня такая ситуация: было 3 раздела. Тестдиск нашел только 2 из них. После нажатия “глубокое сканирование” нашелся и 3-й диск, в отличие от тех 2-х, он помечен D(удаленный). Список файлов могу посмотреть, но после нажатия Enter, тестдиск указывает, что будет восстанавливать только те, которые были найдены после первого поиска. Нажатие L также не помогает. А мне очень нужны данные с 3-го диска. Подскажите, пожалуйста, что предпринять.
Комментарий от anlini777 — 25 Февраль 2010 @ 3:32
Спасибо большое! Хотел изменить размер раздела и посреди процесса выключили свет; думал конец коллекции музыки, фильмов и картинок, накопленных непосильным трудом, ан нет, все восстановилось как будто и не было сбоя. Спасибо!
Комментарий от kkech — 19 Август 2010 @ 15:54
наведи курсор на раздел который удален нажми пробел. дальше обьяснять?
Комментарий от toxic — 14 Декабрь 2010 @ 23:56
Виктор, огромное спасибо за статью. Она меня просто спасла!
Комментарий от Alex — 18 Март 2011 @ 20:54
Виктор, спасибо Вам большое за статью…очень помогла…удалось восстановить разделы вместе с операционкой и не пропали данные…
Комментарий от Sky2005 — 31 Май 2011 @ 1:22
Подскажите пожалуйста, у меня проблема в следующем.
Я через LiveCd загрузил программу Mbr Fix и так уж вышло поставил галку на разделе clen и очистил mbr разделы жестких дисков, что теперь делать ума не приложу помогите, у меня на одно система была, бог с ним, а на других двух вся информация проги фотки итд
Комментарий от dennis-bmw — 7 Октябрь 2011 @ 21:12
Наверное уже не актуально и с программой MbrFix дела не имел, но если testdisk не помогает, то тут в комментах еще советовали программу gparted. Ну и гугл обычно отвечает на любые вопросы…
Комментарий от admin — 29 Октябрь 2011 @ 1:53
тестдиск короче не сработал на диске C который является ssd накопителем, а вот все остальные диски просто восстановил раздел тестдиском, который поставил признак начала диска и признак конца диска и вся информация которая там была и осталась…
Комментарий от dennis-bmw — 30 Октябрь 2011 @ 12:55
А с какими файловыми системами может работать эта утилита?
Комментарий от amirash777 — 24 Ноябрь 2011 @ 7:00
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
Комментарий от amirash777 — 24 Ноябрь 2011 @ 7:10
Эта утилита работает с таблицей разделов диска, т.е. чуть более низкоуровневый подход, чем файловые системы.
Комментарий от admin — 17 Декабрь 2011 @ 13:34
Огромное Вам спасибо за эту статью, глубоким анализом восстановил все данные.
Комментарий от Valkeru — 14 Март 2012 @ 16:51
Специально зарегистрировался, что бы сказать спасибо за статью!
Комментарий от vall0808 — 17 Март 2013 @ 13:26
Приятно, что статья приносит пользу, спасибо 🙂
Комментарий от admin — 5 Апрель 2013 @ 22:48
Решили переспросится перед применением вашей статьи.
При попытке просмотреть содержимое(по ярлыку Компьютер) диска( с Win) LivePuppiL (не поддерж ntfs) било проигнорировано предупреждение об этом и разрешено действие-наверно примонтировать.
Но копирование файлов не пошло(замки). Отмонтировать не даёт.
W перестала грузится. partmegik прояснил — не видит разд С и Д
Liv Puppy 5.6(es’t podderjka NTFS) видит только С без содержимого т.е.(изнутри в sda1 файлs Appinfo.xml и AppRun)
/.pup_event/driv_sda1.
Может просто отмонтировать!
К благодарностям за “вывод из тупика” присоединяемся!
Комментарий от robus — 27 Август 2013 @ 19:01
Комментарий от admin — 30 Август 2013 @ 1:30
Комментарий от dovim — 7 Октябрь 2013 @ 17:53
Вообще, в такой ситуации, я бы загрузился с лайв-сиди и посмотрел что не так с загрузчиком. По идее там загрузчик Ubuntu в MBR, а он уже отправляет в Windows по необходимости. В качестве загрузчика часто используется grub (не знаю, как в ubuntu, но в центосях, например, регулярно) так-что я бы просто загрузился с лайв-сиди и посмотрел раздел boot (в лайв-сиди может быть собственный boot, а системный раздел нужно смонтировать отдельно) и может-быть подправить имена разделов в grub.conf на нем (они могли измениться). Не имея проблемы “перед глазами” сложно сказать точнее, но общее направление где-то рядом 🙂
Комментарий от admin — 21 Октябрь 2013 @ 4:02
Сможет ли TestDisk помочь восстановить данные с раздела отформатированного жесткого диска? Раздел диска был расширен а потом отформатирован (всегда использовалась файловая система NTFS).
Комментарий от Norma — 29 Октябрь 2013 @ 0:07
Комментарий от admin — 15 Ноябрь 2013 @ 3:53
Здравствуйте, не подскажите что написано в окне testdisk:
Structure^ Ok.
…
NTFS, blocksize=4096, 419 GB / 390 GiB
… и чего опасаться, как быть дальше. Проблема та же что и у многих: Во время работы в программе распределения свободного пространства (Paragon Partition Magick 9.0)на дисках, а именно было запущено увеличение объёма раздела за счёт соседнего раздела, произошёл сбой. Но система показала что вместо двух разделов уже один, но его прочитать она не может. Система знает что раздел на NTFS и всё. Раздел донор был пустой. Раздел, который расширялся имеет данные которые неоходимо восстановить.
Помогите пожалуйста советом!
Комментарий от Emeljen — 15 Ноябрь 2013 @ 14:23
Комментарий от admin — 24 Ноябрь 2013 @ 6:42
Комментарий от Pavel — 26 Май 2014 @ 20:32
Комментарий от admin — 17 Август 2014 @ 6:50
Комментарий от Pavel — 26 Сентябрь 2014 @ 7:44
Очень приятно читать такие комментарии.
Спасибо Вам, Pavel!
Комментарий от admin — 8 Ноябрь 2014 @ 23:14
День Добрый! Огромнейшее спасибо за статью! Как ни странно,она актуальна и сейчас,спустя почти 10 лет после её написания. Я только что восстановил раздел на 128 Гб.карте памяти. Правда,некоторые мои действия были другими,нежели описанные в статье… Чуть позже я повторю все действия по восстановлению раздела,и если кому надо будет,отпишусь,или напишу статью.
Комментарий от semargl — 10 Июль 2016 @ 11:13
Приятно знать, что статья написана не зря и помогает даже спустя десять лет. Спасибо!
Комментарий от admin — 21 Август 2016 @ 18:37
Огромное спасибо!Я СПАСЁН. В первые в жизни кильнул целый диск с фотками на чужом ноутбуке. Думал голова лопнет от жути ))) подышал успокоился нашел Вашу статью и спасся! Респект Вам и уважуха! Статья написана языком хорошего доктора ))) на первых абзацах понимаешь что ты в нужном месте )
Комментарий от lapson — 12 Октябрь 2016 @ 1:52
Приятно слышать, спасибо! 🙂
Комментарий от admin — 18 Ноябрь 2016 @ 23:36
Оставить комментарий
Вы должны войти чтобы оставить комментарий.
Источник
# |
|
Темы: 47 Сообщения: 4767 Участник с: 08 января 2011 |
Я подозреваю, что если создать нужные разделы заранее, убунту всё же можно уговорить на них ставиться. Правда, есть другая проблема – груб будет ставиться только в MBR, уже и так занятую тем грубом, который в Арч. Выхода два – или загружать убунту через груб от Арч, или загружать АРч через груб от убунты. |
anode |
# |
Темы: 8 Сообщения: 997 Участник с: 30 августа 2011 |
Не совсем логично. Или это один раздел ext4 для /home или пятый раздел для «фильмы …» я бы сделал «понимаемым» для Восьмерки, тогда к фильмам и т.д. можно иметь доступ из всех ОСей. |
stmc |
# |
Темы: 14 Сообщения: 126 Участник с: 13 октября 2012 |
проблема решаема как бы обидно не было с помощью проприетарщины чтобы gparted увидел разделы нужно изменить любой раздел с помощью acronis, тем самым перепишется таблица разделов и все будет ок сам столкнулся с этой проблемой еще 6 лет назад |
malody |
# |
Темы: 39 Сообщения: 321 Участник с: 10 октября 2010 |
Нашёл 3 пути решения проблемы. 1. Удалить dmraid и libdmraid — не помогло (по крайней мере мне, т.к. запускался с установочной флешки, и система ругалась что диск только для чтения. Кто в установленной системе будет это проделывать, пакеты конечно удалятся, и возможно поможет) 2. http://forum.ubuntu.ru/index.php?topic=130373.45 — совет воспользоватся fixparts не помог (вдруг кому поможет). 3. Acronis Disk Director Home — спасибо stmc! — помогло. Gparted видит разделы, установщик Mint тоже. Что я делал: удалил раздел который предназначался для Mint. Не помогло. Потом сделал раздел на месте удалённого (вместо основного получился логический), тоже не помогло. Удалил этот раздел вновь. И ура! gparted
стал видеть все разделы как надо. Русская команда переводчиков ArchWiki |
Natrio |
# |
Темы: 47 Сообщения: 4767 Участник с: 08 января 2011 |
Правильно, я же так и сказал – parted/gparted – довольно глючный и кривой комбайн, потому что нормальные инструменты видели вашу таблицу разделов и так. |
vasek |
# |
Темы: 47 Сообщения: 11600 Участник с: 17 февраля 2013 |
Вообщем то дело не в parted/gparted , а в том, как он готовил диск. Обратите внимание — общее количество секторов 488397168, а расширенный раздел sda4 заканчивается 488408129 сектором, т.е. выходит за пределы диска, parted/gparted это не переносят — при правильном их использовании они вообщем то не глючат. PS………… Поэтому и testdisk ругается (на несоответствие геометрии диска) Ошибки не исчезают с опытом — они просто умнеют |
Natrio |
# |
Темы: 47 Сообщения: 4767 Участник с: 08 января 2011 |
Конечно, fdisk/cfdisk последнее время тоже демонстрируют неадекватность, зачастую не позволяя пересоздать с прежним начальным сектором раздел, созданный их же предыдущей версией с меньшим отступом по-умолчанию, чем позволяет нынешняя версия, но они, в конце концов, теоретически не рассчитаны на изменение размеров раздела и не позиционируются как универсальное средство для всего.
А комбайн parted, который по идее и должен быть таким средством, на деле ведёт себя ещё хуже, и вместо коррекции разделов тупо отказывается работать, не давая даже вменяемой диагностики проблемы, не говоря уже о возможности её устранить. |
vasek |
# |
Темы: 47 Сообщения: 11600 Участник с: 17 февраля 2013 |
Главное непонятно — почему некоторые виндовые утилиты по работе с диском позволяют себе нелепости выхода за пределы диска. Но отрадно одно — они же спокойно позволяют и читать такие таблицы разделов. В то время как линуксовые parted/gparted отказываются, но зато они и не позволяют создавать такие ошибочные таблицы разделов. Поэтому я сделал для себя вывод — если на диске только линукс — применяй утилиты линукса — если винда — то и утилиты только винды — если винда и линукс — то готовить диск (разбивка на разделы) целесообразно утилитами винды, форматировать разделы целесообразнее при установке системы ее же родными утилитами. — и конечно, проверять границы разделов. Ошибки не исчезают с опытом — они просто умнеют |
malody |
# |
Темы: 39 Сообщения: 321 Участник с: 10 октября 2010 |
Хорошо. Вернёмся немного назад. Допустим у меня по прежнему parted не видит диск, из-за того что расширенный раздел выходит за его пределы. Как это можно исправить? Вариант один — удалить раздел и создать его как надо?
Не все Линуксовые отказываются. Есть программа кажется называется «Дисковая утилита» (дома буду напишу точное название). Она спокойно видит, в то время как gparted капризничает. Русская команда переводчиков ArchWiki |
nafanja |
# |
Темы: 94 Сообщения: 9252 Участник с: 02 июня 2012 заблокирован |
Подозреваю что первоначально разбивка делалась виндячими утилитами, которые и допустили ошибку с границами разделов. Поэтому думаю что в цитату выше прокралась ошибка — если винда и линукс — то готовить диск (разбивка на разделы) целесообразно утилитами линукса. Псевдографический инсталлятор Arch Linux ver. 3.8.2 |
Thank you for reading this post, don’t forget to subscribe!
Эти методы заставляют ядро перезагружать таблицу разделов и повторно заполнять ее идентификаторы в /dev.
Если вы ищете утилиты для разделов диска, вы можете попробовать одну из них.
Утилиты дискового разделения — это fdisk и parted.
Вы можете получить вывод, подобный приведенному ниже, в большинстве случаев в виртуальной среде, когда вы выполняете разделение диска.
The partition table has been altered. Syncing disks. |
Вы можете получить такой же вывод в большинстве случаев в физической среде, когда вы выполняете разделение диска.
The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8). |
Я протестировал приведенные ниже команды в системе Arch Linux, и они работали нормально, кроме команды partx.
Потому что я не вижу никаких логов журнале dmesg после запуска команды partx.
Однако он работал нормально, как и ожидалось в системах RHEL 7.
Я бы посоветовал вам выполнить любую из приведенных ниже команд после добавления раздела в систему Linux, чтобы проинформировать ОС об изменениях таблицы разделов.
Это можно сделать с помощью следующих четырех методов.
- partprobe: partprobe — это программа, которая информирует ядро операционной системы об изменениях таблицы разделов, запрашивая у операционной системы перечитывание таблицы разделов.
- blockdev: Утилита blockdev позволяет вызывать ioctl для блочных устройств из командной строки.
- hdparm: hdparm предоставляет интерфейс командной строки для различных интерфейсов ядра, поддерживаемых подсистемой «libata» Linux SATA / PATA / SAS и более старой подсистемой драйверов IDE.
- partx: partx сообщает ядру о наличии и нумерации разделов на диске.
Как перезагрузить таблицу разделов в Linux с помощью команды partprobe
partprobe — это программа, которая информирует ядро операционной системы об изменениях таблицы разделов, запрашивая у системы, чтобы она перечитала таблицу разделов.
Это стандартная и нативная команда для выполнения этой задачи.
В этом примере я собираюсь использовать /dev/sdb. Помните, что вам нужно ввести имя вашего устройства вместо нашего.
$ sudo partprobe /dev/sdb |
dmesg используется для проверки или управления кольцевым буфером ядра.
Итак, используйте следующую команду, чтобы увидеть изменения в ядре.
Да, я вижу изменения, потому что в dmesg есть новый лог для устройства SDB.
$ dmesg | grep sdb [ 3.143163] sd 3:0:0:0: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB) [ 3.143186] sd 3:0:0:0: [sdb] Write Protect is off [ 3.143192] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 3.143276] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn’t support DPO or FUA [ 3.145620] sd 3:0:0:0: [sdb] Attached SCSI disk [ 188.810583] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > [ 219.112109] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > |
Как перезагрузить таблицу разделов в Linux с помощью команды blockdev
Утилита blockdev позволяет вызывать ioctl блочных устройств из командной строки.
Мы можем использовать команду blockdev для выполнения этой задачи.
$ sudo blockdev —rereadpt -v /dev/sdb |
Используйте следующую команду dmesg, чтобы увидеть изменения в ядре.
Да, я вижу изменения, потому что в dmesg снова появился новый лог для устройства sdb.
$ dmesg | grep sdb [ 3.143163] sd 3:0:0:0: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB) [ 3.143186] sd 3:0:0:0: [sdb] Write Protect is off [ 3.143192] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 3.143276] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn’t support DPO or FUA [ 3.145620] sd 3:0:0:0: [sdb] Attached SCSI disk [ 188.810583] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > [ 219.112109] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > [ 422.506376] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > |
Как перезагрузить таблицу разделов в Linux с помощью команды hdparm
hdparm предоставляет интерфейс командной строки для различных интерфейсов ядра, поддерживаемых подсистемой «libata» Linux SATA / PATA / SAS и более старой подсистемой драйверов IDE.
В качестве альтернативы, мы можем использовать команду hdparm для выполнения этой задачи.
$ sudo hdparm -z /dev/sdb /dev/sdb: re-reading partition table |
Используйте следующую команду dmesg, чтобы увидеть изменения в ядре.
Да, я вижу изменения, потому что в dmesg снова появился новый лог для устройства sdb.
$ dmesg | grep sdb [ 3.143163] sd 3:0:0:0: [sdb] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB) [ 3.143186] sd 3:0:0:0: [sdb] Write Protect is off [ 3.143192] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 3.143276] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn’t support DPO or FUA [ 3.145620] sd 3:0:0:0: [sdb] Attached SCSI disk [ 188.810583] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > [ 219.112109] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > [ 422.506376] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > [ 504.328312] sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 > |
Как перезагрузить таблицу разделов в Linux с помощью команды partx
partx сообщает ядру о наличии и нумерации разделов на диске.
Команда partx является частью пакета util-linux и доступна из архива ядра Linux.
В качестве альтернативы, мы можем использовать команду partx для выполнения этой задачи.
$ sudo partx -a /dev/sdb или $ sudo partx -u /dev/sdb partx: /dev/sdb: error adding partitions 1-5 |
Вы можете дважды подтвердить это, выполнив следующую команду.
Если таблица разделов успешно перезагружена и видна ядру, вы можете увидеть эти новые разделы в этом месте.
$ cat /proc/partitions major minor #blocks name 8 0 31457280 sda 8 1 31455232 sda1 8 16 10485760 sdb 8 17 1048576 sdb1 8 18 512000 sdb2 8 19 512000 sdb3 8 20 1 sdb4 8 21 1048576 sdb5 8 32 10485760 sdc |
Эту же информацию можно найти с помощью следующей команды ls.
$ ls -l /dev/sdb* brw-rw—— 1 root disk 8, 16 Mar 8 07:23 /dev/sdb brw-rw—— 1 root disk 8, 17 Mar 8 07:23 /dev/sdb1 brw-rw—— 1 root disk 8, 18 Mar 8 07:23 /dev/sdb2 brw-rw—— 1 root disk 8, 19 Mar 8 07:23 /dev/sdb3 brw-rw—— 1 root disk 8, 20 Mar 8 07:23 /dev/sdb4 brw-rw—— 1 root disk 8, 21 Mar 8 07:23 /dev/sdb5 |
Эту же информацию можно найти с помощью следующей команды partx.
$ sudo partx -l /dev/sdb # 1: 2048- 2099199 ( 2097152 sectors, 1073 MB) # 2: 2099200- 3123199 ( 1024000 sectors, 524 MB) # 3: 3123200- 4147199 ( 1024000 sectors, 524 MB) # 4: 4147200- 20971519 ( 16824320 sectors, 8614 MB) # 5: 4149248- 6246399 ( 2097152 sectors, 1073 MB) |