Восстановление таблицы разделов linux

Восстановление таблицы разделов в Linux

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

Если у вас есть желание научиться профессионально строить и поддерживать высокодоступные виртуальные и кластерные среды, рекомендую познакомиться с онлайн-курсом Администратор Linux. Виртуализация и кластеризация в OTUS. Курс не для новичков, для поступления нужно пройти вступительный тест.

Введение

Симптомы поломки были следующие. Заметил, что пропал сетевой диск. Зашел на сервер и увидел, что диск не инициализирован. Таблица разделов пустая. При этом, диск работал нормально и SMART ошибок не показывал. Я сразу заподозрил, что проблема именно с таблицей разделов. Данные должны быть на месте.

Дополнительная важная информация — диск был в составе mdadm массива, состоящим из одного диска. LVM не использовался.

Я подключил сбойный диск в обычный системник. Сделал загрузочную флешку с Ubuntu Live CD и загрузился с нее. Настроил там сеть, стандартные репозитории.

Восстановление таблицы разделов

Я давно знаю утилиту testdisk. С ее помощью мне уже удавалось восстанавливать данные в linux. Она есть в репозиториях ubuntu, так что я ее установил. Далее все было просто. К сожалению, скриншотов нет, так как делал все на отдельном системнике. Расскажу на словах, что сделал:

  1. Запустил утилиту. Она вывела список всех подключенных дисков. В моем случае диск был /dev/sda.
  2. Выбрал нужный диск, указал в выборе partition table types первый вариант — Intel.
  3. Запустил сканирование. Утилита нашла разделы, которые там были ранее. Я прикинул, вроде бы то, что и должно быть.
  4. Записал таблицу разделов на диск.

Далее через fdisk я увидел разделы диска sda, в том числе тот, что меня интересовал — Linux raid autodetect.

Восстановление таблицы разделов

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

Читайте также:  Linux закрыть открытый файл

Восстановление mdadm массива

Установил в live систему mdadm:

Первым делом проверил суперблоки на восстановленном разделе:

# mdadm --misc --examine /dev/sda2

Информация о mdadm массиве

На вид все было в порядке. Дальше рассчитывал сразу найти массив и примонтировать его.

# mdadm --assemble --scan mdadm: failed to add /dev/sda2 to /dev/md3: Invalid argument mdadm: failed to RUN_ARRAY /dev/md3: Invalid argument

mdadm: failed to add /dev/sda2 to /dev/md3: Invalid argument

Тут я приуныл, потому что не мог понять, в чем проблема. Пробовал разные команды для запуска массива, но он упорно не стартовал. При этом на вид все было в порядке. Потом в какой-то момент я додумался посмотреть dmesg.

# dmesg | grep sda2 md: sda2 does not have a valid v1.2 superblock, not importing!

md: sda2 does not have a valid v1.2 superblock, not importing!

Решение этой ошибки достаточно быстро нагуглилось.

# mdadm --assemble --verbose /dev/md2 /dev/sda2 --update=devicesize

mdadm --assemble --verbose /dev/md2 /dev/sda2 --update=devicesize

После этого массив нормально стартовал и cat /proc/mdstat показывал его состояние. Тут я думал, что мои мучения окончены и я сейчас получу свои данные. Но это тоже было еще не все.

Восстановление таблицы разделов на mdadm

Просто подмонтировать запущенный mdadm массив к системе не получилось.

# mount -t ext4 /dev/md2 /mnt mount: /mnt: wrong fs type, bad option, bad superblock on /dev/md2, missing codepage or helper program, or other error.

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

К счастью, она нашла единственный раздел на диске и восстановила его. Таким образом у меня получилось устройство /dev/md2p1. Дальше я успешно смонтировал этот раздел в /mnt и получил доступ к данным. Они все были на месте.

В заключении я к этой же системе подмонтировал сетевой диск через cifs и начал копировать данные.

# mount -t cifs //192.168.15.50/data /mnt/data -o user=admin,password=adminpass

Заключение

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

Непонятной осталась причина сбоя, и это хуже всего. На вид все в порядке, но я теряю доступ к данным. Любой другой пользователь, не разбирающийся в linux, просто потерял бы данные, либо пришлось обращаться в специализированные фирмы по восстановлению информации, а это стоит дорого. И еще, как я понял, я точно так же мог потерять доступ и к массиву из нескольких дисков. К слову, потерпевший NAS это Synology, где под капотом обычный linux и mdadm, поэтому я понимал, как надо действовать. На этом же устройстве есть несколько массивов на много Tb и если бы кто-то из них сглючил, то было бы плохо.

Читайте также:  Arch linux pacman update

Несколько моих статей по восстановлению загрузки linux после различных сбоев:

Надеюсь, вам они не пригодятся.

Онлайн курс по Linux

  • Умение строить отказоустойчивые кластера виртуализации для запуска современных сервисов, рассчитанных под высокую нагрузку.
  • Будете разбираться в современных технологиях кластеризации, оркестрации и виртуализации.
  • Научитесь выбирать технологии для построения отказоустойчивых систем под высокую нагрузку.
  • Практические навыки внедрения виртуализации KVM, oVirt, Xen.
  • Кластеризация сервисов на базе pacemaker,k8s, nomad и построение дисковых кластеров на базе ceph, glaster, linstore.

Источник

Как восстановить таблицу разделов в Linux

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

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

В этом уроке вы узнаете:

Как восстановить таблицу разделов в Linux

  • Где скачать живой Linux ISO для восстановления
  • Как загрузиться в режим live/recovery
  • Как установить тестдиск
  • Как восстановить удаленную таблицу разделов
Требования к программному обеспечению и соглашения командной строки Linux
Категория Требования, соглашения или используемая версия программного обеспечения
Система Любой дистрибутив Linux
Программное обеспечение тестовый диск
Другой Привилегированный доступ к вашей системе Linux как root или через судо команда.
Соглашения # — требует данного линукс команды выполняться с привилегиями root либо непосредственно от имени пользователя root, либо с помощью судо команда
$ — требует данного линукс команды выполняться как обычный непривилегированный пользователь.

Как восстановить таблицу разделов в Linux пошаговая инструкция

Чтобы начать восстановление таблицы разделов, нам нужно загрузиться в режиме live CD дистрибутива Linux. На самом деле не имеет значения, какой дистрибутив вы решите использовать для этого, но мы рассмотрим инструкции для Убунту Линукс , так как мы должны выбрать один для охвата и не можем охватить каждый дистрибутив или Live CD.

Читайте также:  Linux команда загрузка системы

Вы можете скачать ISO-образ Ubuntu с Страница загрузки Ubuntu или ознакомьтесь с нашим руководством по Загрузки Live CD/DVD Linux
если вы хотите использовать другой дистрибутив. После этого создайте загрузочный USB-накопитель с вашим ISO-образом или запишите live CD или DVD.

Загрузитесь в живом режиме вашего дистрибутива Linux.

  1. Вставив загрузочный носитель, включите компьютер и загрузитесь в режиме реального времени. В случае с Ubuntu это означает нажатие на опцию «Попробовать Ubuntu».
  2. Как только вы загрузитесь в живую среду, откройте терминал и установите тестовый диск package с помощью менеджера пакетов вашего дистрибутива. В случае Ubuntu команды будут такими:
$ sudo add-apt-repository вселенная. $ sudo apt установить тестовый диск.
  • Выберите Нет журнала вариант и продолжайте. Выберите параметр «Без журнала» в командной строке testdisk.
  • Выделите диск с удаленным разделом, который необходимо восстановить, и выберите Продолжить когда готов. Выберите диск, содержащий удаленный раздел, который вы хотите восстановить.
  • Выберите тип раздела. Скорее всего это будет Интел/ПК если вы не используете более специализированную систему. Выберите тип раздела (вероятно, IntelPC)
  • Продолжить с Анализировать возможность поиска таблиц разделов. Используйте опцию «Анализ»
  • Выбрать Быстрый поиск возможность найти таблицы разделов. Выберите вариант быстрого поиска
  • Выделите найденный раздел, называемый просто линукс в нашем случае и нажмите Войти продолжить восстановление таблицы разделов. Выделите правильную таблицу разделов и восстановите ее
  • Если таблица разделов кажется вам правильной, выберите Написать вариант восстановить его. Запишите изменения для восстановления таблицы разделов
  • Testdisk еще раз спросит, хотите ли вы подтвердить эти изменения. Отвечать Д продолжать.
  • Когда закончите, выйдите из меню testdisk. Выйти из тестового диска
  • Теперь вы можете перезагрузить систему, чтобы изменения вступили в силу. Также не забудьте перед этим извлечь загрузочный носитель.
  • Заключительные мысли

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

    Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, информацию о вакансиях, советы по карьере и рекомендации по настройке.

    LinuxConfig ищет технического писателя (писателей), ориентированного на технологии GNU/Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU/Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU/Linux.

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

    Источник

    Оцените статью
    Adblock
    detector