Entering rescue mode что это
Booting from Hard Disk error, Entering rescue mode
Пример решения проблемы, от которой холодок пробегает по коже, когда ее видишь на рабочем сервере в продакшене. После плановой перезагрузки виртуальная машина не загрузилась, показав ошибку и перейдя в grub rescue. Я уже не первый раз сталкиваюсь с подобным и примерный план восстановления в голове присутствует. Делюсь информацией с вами.
Введение
Есть сильно нагруженная виртуальная машина, для которой нужно было добавить ядер и оперативной памяти. Аптайм у нее был примерно пол года. Ничего не предвещало беды. Я предупредил, что простой будет секунд 30 и ребутнул машину. Как только увидел консоль виртуалки, понял, что дальше начинается веселье с непредсказуемым результатом. Адреналина добавила информация от разработчиков, что бэкапов у них нет 🙂
Для тех, кто еще не знаком с подобным, поясню. Начальный загрузчик не смог найти /boot раздел для продолжения загрузки. Вместо этого он сообщил, что раздел с указанным lvmid, где располагается boot, он не видит и дальше загрузиться не может. Машина находится в режиме grub rescue. Причин появления этого режима может быть много. Мне всегда приходится с чем-то новым сталкиваться, но методика решения проблемы примерно одна, и я дальше о ней расскажу. А потом поясню, что было с этой конкретной виртуалкой.
grub rescue
В grub rescue mode доступно всего четыре команды:
Для начала воспользуемся командой ls и посмотрим, какие разделы видит grub.
В моем случае несколько отдельных разделов диска и lvm том. К слову сказать, в моем случае раздел /boot расположен на lvm разделе, но по какой-то причине загрузчик не смог с него загрузиться. У вас может вообще не быть lvm, а проблема в чем-то другом. Например, если у вас в grub.cfg указан UUID раздела, с которого надо грузиться (это может быть массив mdadm), а раздел этот по какой-то причине исчез, или изменил свой uuid, вы как раз получите эту ошибку.
Сейчас нам нужно найти раздел, на котором расположен загрузчик. Первая часть загрузчика, которая записана в MBR диска очень примитивная и почти ничего не умеет. Она даже разделы диска толком не определила, решив почему-то, что там файловая система msdos, хотя это не она. Нам нужно проверить все разделы диска hd0 и найти реальный загрузчик. Проверяем это командами:
Я нашел на msdos1 искомый раздел /boot. Понял это по содержимому. В разделе есть директория /grub, где располагается вторая часть загрузчика. Искомая директория может называться /grub2 или /boot/grub. Указываем загрузчику использовать этот раздел при выполнении дальнейших команд.
Далее загружаем необходимые модули. Какие будут нужны, зависит от конкретной ситуации. На всякий случай показываю самые популярные:
Начать стоит вообще без модулей, а потом добавлять, в зависимости от вашей ситуации. В завершении загружаем модуль normal и вводим одноименную команду:
После этого вы должны увидеть стандартное меню загрузчика grub. Дальше вы загрузитесь в операционную систему.
Обновление загрузчика
Дальнейшее решение проблемы с загрузкой будет зависеть от того, что у вас сломалось. Возможно будет достаточно просто переустановить загрузчик:
Эта команда переустановит в MBR код загрузчика, который будет подхватывать тот раздел /boot, с которого вы в данный момент загрузились. Если это не поможет, то внесите необходимые изменения в в конфиг grub и пересоздайте его командой:
А после этого установите на диск:
Конфиг груба находится в разных дистрибутивах в разных местах. Какие туда вносить изменения, заранее тоже не могу сказать, будет зависеть от проблем. Скорее всего все это придется вам гуглить, если не получится сходу починиться по моим рекомендациям.
Почему система не загрузилась
Теперь рассказываю, что было в моем случае. Корень системы / располагался на lvm разделе вместе с /boot разделом. В какой-то момент корневой раздел был увеличен в размере за счет расширения тома lvm еще одним диском. Все это было сделано на лету, без перезагрузки системы. Причем сделано было мной давно, и с тех пор сервер ни разу не перезагружался до настоящего времени. Я не знаю почему, но данная операция привела к тому, что grub перестал загружаться с этого lvm раздела.
UUID физического тома и логического раздела не поменялись. То есть там информация, в начале загрузки, с ошибкой загрузки диска с lvmid, верная. Уиды правильные. Я понял, что причина в изменении размера диска только по аналогичным сообщениям в интернете. Наткнулся на несколько человек, которые обращались с похожей проблемой, где перед этим они тоже изменяли корневой раздел. Похоже это какой-то системный баг, возможно даже конкретной системы.
В моем случае на диске почему-то оказался отдельный раздел на 500 мб с файловой системой ext2. На нем как раз и был загрузчик, с которого я загрузился в rescue boot. Откуда взялся этот раздел, я не знаю. По идее, если он был создан автоматически во время установки системы, на нем бы и должен быть актуальный раздел /boot. Но нет, его не было в fstab и он не использовался. Я не стал долго разбираться, почему так получилось, а просто подмонтировал этот раздел в систему, обновил на нем grub и записал обновленный grub в MBR. После этого система благополучно загрузилась с этого раздела.
Если кто-то знает, почему мой загрузчик не смог загрузиться с lvm раздела, при том, что uuid указан правильно, прошу подсказки. Самому очень интересно, так как ситуация получилась неприятная и совершенно мне не понятная. Я часто расширяю корневой lvm раздел на ходу, но первый раз сталкиваюсь с тем, что это приводит к поломке загрузчика. Grub уже давно умеет грузиться с lvm раздела и каких-то дополнительных действий для этого делать не надо.
Что еще предпринять, чтобы починить загрузку
Если ничего из описанного не помогает, то дальше могут быть такие варианты:
Если ничего не помогло и вы не понимаете, что нужно сделать, то посмотрите вот это руководство по grub. Здесь очень хорошо и подробно все описано.
Еще совет. Если у вас живы сами данные, то зачастую бывает проще настроить новую виртуалку, подключить к ней диск от старой и перенести все данные. Так вы точно сможете спрогнозировать время восстановления системы. Обычно за час на все про все можно уложиться. Когда вы начинаете чинить упавшую систему, никогда точно не знаете, сколько времени уйдет на восстановление. В моем случае я загрузку за 30 минут и запустил машину. Потом еще 2 часа разбирался на копии виртуальной машины, что случилось и пытался найти решение проблемы без переустановки виртулаки. Получил некоторый опыт, но если бы я сразу все перенес на новую виртуальную машину, то потратил бы меньше времени.
Ubuntu не грузится, как исправить
В данной статье постараюсь рассмотреть некоторые типовые ошибки, связанные с загрузкой системы. Бывает так, что сервер с Ubuntu по какой-то причине не загружается из-за поврежденного загрузчика или еще каких-то проблем. Я покажу методику, как решать подобные проблемы с запуском, а заодно расскажу, как можно быстро восстановить систему.
Система Ubuntu не загружается
Рассмотрим, с чем в первую очередь может быть связана проблема с загрузкой системы. Вот список наиболее вероятных причин:
Далее я отдельно рассмотрю второй и третий случаи. Начнем со стандартного режима восстановления grub.
Entering rescue mode
Итак, в случае проблем с загрузкой Ubuntu вы можете оказаться в режиме grub rescue.
Это может символизировать как простую ошибку, которую легко исправить, так и серьезные проблемы. Рассказываю, что нужно делать в таком случае и как починить загрузку системы.
Первым делом запускаем команду ls и смотрим, какие разделы у нас доступны.
В моем случае доступен только один 3-й раздел, скорее всего корневой. Раздела /boot, который обычно 1-й или 2-й нет. Проверим это наверняка. Смотрим содержимое доступного раздела:
По содержимому раздела видно, что это корневой. Самого раздела /boot, с которого должна начинаться загрузка ubuntu тут не видно. Если его никто специально не удалял и не затирал, то он пропал в результате какого-то сбоя или ошибки. Можно попробовать это исправить. Сделаем это отдельно ниже, а пока рассмотрим случай, когда boot раздел тут все же присутствует и имеет имя, к примеру, (hd0,gpt2). Тогда там же в консоли grub продолжаем.
Далее загружаем некоторые модули. Какие будут нужны, точно не известно и зависит от типов разделов диска. Показываю самые популярные:
Можно для начала попробовать вообще без модулей, а потом добавлять по одному. В самом конце загружаем модуль normal.
После этого у вас должно открыться стандартное меню загрузки Ubuntu. Если это так, то вам повезло. Дальше загрузится система. Вам нужно будет в нее зайти и далее перейти в раздел по восстановлению grub в этой статье. Получилось так, что у вас сам загрузочный раздел жив, но сбились его настройки, поэтому он сам не смог загрузить основную систему. Это не трудно исправить и ниже я показываю как.
Восстановление поврежденных разделов ubuntu
Если же у вас вообще не найден раздел для загрузки, надо попробовать его восстановить. Для этого загружаемся с установочного диска Ubuntu и на первом экране инсталлятора выходим в консоль через раздел Help.
Вы окажетесь в консоли системы, которая по сути является livecd сервера. В целом, тут подойдет любой livecd дистрибутив с linux. Эта система видит все подключенные диски и вообще все оборудование. Первым делом вам надо настроить выход в интернет на сервере так же, как вы это делаете обычно. После этого нужно обновить пакеты и установить утилиту testdisk. С ее помощью мы попробуем найти исчезнувший загрузочный раздел.
Запускаем утилиту и указываем, что будем создавать новый log файл.
Выбираем диск, на котором у нас установлена система. В моем случае это sda.
В качестве partition table type сначала укажите Intel. Если не получится ничего найти, попробуйте еще раз с другими типами.
Дальше выбираем Analyze.
И запускаем Quick Search.
У меня testdisk нашел 2 раздела, причем первый это boot раздел, который по какой-то причине исчез.
Из-за его отсутствия виртуальная машина с ubuntu не грузилась. Далее выбираю первый раздел и восстанавливаю его с помощью testdisk. Записываю изменения и выхожу в консоль. Проверяю с помощью fdisk разделы диска /dev/sda.
Появился первый загрузочный раздел. По идее я выполнил восстановление boot раздела. Теперь можно проверить, запустится ли система. Для этого отключаем установочный диск и загружаемся с основного.
В случае, если все загрузилось, вам повезло. Отделались малой кровью. Если же ubuntu не загружается, а вы опять попадаете в grub rescue, значит придется еще потрудиться над восстановлением загрузки системы. Будем восстанавливать сам grub.
Восстановление grub
Продолжаем восстановление загрузки ubuntu. Сам /boot раздел мы вернули, но загрузчик grub почему-то не работает и система не грузится. Загружаемся опять с установочного диска и переходим в консоль. Напомню, что у меня такая картина по разделам:
Теперь чрутимся в /mnt, чтобы оказаться в нашей системе:
И уже отсюда восстанавливаю загрузчик grub:
По идее, ошибок получить не должны. Если получили, то гуглите их. Надо обязательно их решить, иначе система так и не начнет загружаться корректно.
Теперь выходим отсюда и перезагружаем сервер. Вынимаем установочный диск и загружаемся с основного диска. У меня пошла загрузка.
Давайте еще раз повторим все, что мы сделали:
Заключение
В целом, мы выполнили типовую процедуру восстановления загрузки любого linux сервера, в том числе ubuntu. Если бы раздел boot не получилось восстановить, его нужно было бы создать вручную и проделать все то же самое с восстановлением grub. Это ключевой элемент загрузки linux. Система перестает загружаться чаще всего из-за проблем с ним. Он может быть поврежден установкой рядом других систем или неправильной разбивкой диска.
Важно понимать, что если корневой раздел системы жив, то восстановление непосредственно загрузки — дело техники. Чаще все это все исправляется и система продолжает работать.
Восстановление GRUB
Содержание
На любом загрузочном винчестере есть так называемая Главная загрузочная запись (англ. master boot record, MBR), к которой обращается BIOS при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах, которые хранятся уже на разделах винчестера.
Восстановление с помощью LiveCD/USB
Первый способ
Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:
Далее необходимо узнать Вашу таблицу разделов. Используйте команду:
На экран должна быть выведена примерно такая таблица:
Из таблицы видим, что Linux (загрузочный /-корень отмечен звёздочкой) стоит, в нашем случае, на разделе /dev/sdc1.
Теперь подключим этот раздел в /mnt следующей командой (следим за пропусками между кодами и порядковыми номерами разделов):
Затем, для записи grub в MBR, вводите следующую команду:
В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно, закрываем терминал и перезагружаем.
Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:
Восстановление используя chroot
Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:
Далее необходимо узнать Вашу таблицу разделов. Используйте команду:
На экран должна быть выведена примерно такая таблица:
Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:
Теперь перейдем в окружающую среду chroot:
Теперь необходимо установить GRUB, используя команду:
Также в некоторых случаях может помочь вариант:
Если все прошло успешно, выходим из chroot командой:
Теперь необходимо отмонтировать разделы:
Если Вы монтировали раздел /boot воспользуйтесь командой:
Затем перезагрузим Ваш компьютер командой:
При необходимости Вы можете обновить меню загрузчика командой:
Восстановление в rescue mode
При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом: сначала нужно подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела. Как известно, Grub состоит из двух частей. Первая часть записана в MBR диска. Она содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела. В rescue mode доступно всего четыре команды:
Вначале следует дать команду:
В ответ она выведет, например, следующее:
Иногда Grub может неправильно опеределить, какие файловые системы находятся на разделах дисков. В данном случае определяет их как msdos. Нам нужно постараться угадать, какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела, диск с индексом 1 содержит два раздела. Зная структуру своих дисков несложно определить нужный диск.
Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то, что нам нужно. Даем команду:
если в ответ получаем список всех файлов в этой директории, то диск и раздел выбраны правильно. Подгружаем модули:
После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки, которые можно подгружать, и покажет своё Grub-меню.
Дальнейшее восстановление сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:
Где sdX, диск, на который нужно установить Grub.
grub rescue – что делать?
Содержание
В случае возникновения проблем с загрузчиком появляется надпись grub rescue. Чаще всего проблема появляется, когда на компьютере установлено сразу две операционные системы: Linux и Windows. Обычно установка производится в такой последовательности.
Сначала на жёсткий диск устанавливается Windows после чего на отдельный раздел производится установка Linux. При такой схеме в загрузочную область диска добавится загрузчик grub2 что позволяет выбирать в какую из систем производить запуск.
grub rescue – что делать?
Итак, мы находимся консоли загрузчика. Она имеет небольшой командный интерпретатор наподобие bash. Список всех доступных команд можно получить, набрав:
Введите команду для просмотра существующих разделов:
В данном примере всего один раздел msdos1 на жёстком диске hd0.
Убедимся, что это нужный раздел. Для этого выводим список файлов загрузчика:
Находим файл grub.cfg значит всё в порядке, продолжаем. Если каталог не обнаружен, то перебираем остальные разделы дисков пока не найдём.
Следующая команда создаёт префикс для каталога загрузчика:
Установим раздел в качестве корневого:
Затем необходимо подключить ещё пару модулей и стартовать загрузку системы:
После успешной загрузки в Linux не забудьте переустановить загрузчик командой:
(вместо «_» введите букву загрузочного жёсткого диска).
Далее выполните команду обновления конфигурации файла grub.cfg:
Обычно grub2 автоматически определяет установленные системы, в том числе Windows, и добавляет их в список загрузки.
Восстановление ubuntu с флешки
Если все проделанные выше действия не помогли, то придётся раздобыть загрузочную флешку.
Лучше подготовить USB или CD носитель с Ubuntu той же версии и разрядности что и восстанавливаемая система. Я покажу на примере системы Ubuntu 18.04 LTS x64. Загрузитесь в Live режиме и откройте терминал комбинацией Ctrl+Alt+T.
Для удобства сразу активируйте права суперпользователя root. Знак минус в конце команды означает перемещение в домашний каталог:
Теперь нужно посмотреть список дисков и разделов программой fdisk:
Обнаруживаем раздел с установленной системой Linux. В этом примере раздел /dev/sda1 единственный, он же корневой и загрузочный.
Выбирайте раздел аккуратно, буква диска может отличаться от моих примеров. Не потеряйте свои данные!
Смонтируем его в каталог /mnt/ :
Убедитесь, что каталог /boot/ находится на этом же разделе диска выполнив команду:
В случае отсутствия каталога, монтируйте его отдельно. Для этого нужно найти раздел в результате вывода утилиты fdisk (на скриншоте выше) и смонтировать командой:
Сейчас необходимо произвести логин в ту систему, которую будем чинить. Но перед этим смонтируем из Live системы несколько служебных разделов:
Двойной амперсанд && между командами означает проверку выполнения предыдущей команды. Выполнение последующей команды происходит только при условии, что предыдущая завершена успешно.
Всё, мы в системе. Можно устанавливать загрузчик и обновлять его конфигурацию. Будьте внимательны, используется именно корневой раздел диска /dev/sda без цифры:
На всякий случай размонтируем корректно разделы и перезагружаемся:
Процедура восстановления загрузчика grub2 на этом завершена.
Видео
Способы восстановления Grub или восстановление меню Grub
Этим прекрасным утром вы запустили свой ноутбук и БУМ! Вы получили черный экран с сообщением “Неизвестная файловая система” и сообщением о спасении grub. Теперь вы здесь, на LinuxCool, чтобы узнать, как решить эту проблему, сохранить ваши драгоценные данные и снова нормально загрузиться в Linux. Давайте обсудим некоторые команды восстановления grub.
Способы спасения или восстановления загрузчика Grub
Вы, возможно, думаете о том, что случилось с дистрибутивом. Причин может быть много. Вы могли установить какое-то программное обеспечение, могли испортить GRUB2, кто знает, вы использовали другой дистрибутив при попытке двойной загрузки и многое другое. Независимо от причины, в большинстве случаев проблема заключается в GRUB. Ниже приведены некоторые способы, которые вы можете использовать, чтобы вернуть свой дистрибутив с экрана Grub Rescue.
Способ 1 Для восстановления Grub
Введите ls и нажмите enter.
Теперь вы увидите множество разделов, которые присутствуют на вашем компьютере. [например, (hd0),(hd0,msdos1)(hd0,msdos2)]. Выберите раздел, в котором установлен дистрибутив Linux.
Предполагая, что вы установили дистрибутив во втором варианте, введите эту команду
(Совет: – если вы не помните раздел, попробуйте ввести команду с каждым вариантом. Если вы ошиблись, вы получите сообщение об ошибке. Если правильно – вы продолжите)
После того, как вы нашли диск, введите эту команду insmod normal, а затем normal.
Теперь ваш компьютер/ноутбук перезагрузится, и вы окажетесь на рабочем столе. Теперь нажмите Ctrl+Alt+T, откройте терминал и введите
sudo grub-install /dev/sda
Вас могут попросить ввести пароль; введите его, пароль останется невидимым, это нормально.
У вас может быть запрошено подключение для передачи данных, если файлы GRUB потеряны и система хочет их загрузить. Ваша ошибка исправлена, и дистрибутив восстановлен.
Способ 2 Для восстановления Grub
Возьмите флешку Live USB. Я предпочту флешку Ubuntu Live USB.
Откройте терминал после загрузки на live рабочем столе.
Вы должны заменить /dev/sda на правильный раздел или диск. Теперь обновите grub, набрав
Это может занять некоторое время, поэтому подождите. После успешного обновления перезагрузитесь, и вуаля – проблема решена.
Метод 3 для восстановления Grub
Если у вас двойная загрузка и ни один из вышеперечисленных шагов не работает, вам может пригодиться следующий способ.
Возьмите установочный DVD-диск Windows OS, одолжите его у друга или у кого-нибудь еще. (Не берите DVD с Windows XP или Vista.)
Запустите его на своем компьютере и запустите программу установки. Это можно сделать, выбрав загрузочный носитель либо нажатием F12, либо установив порядок загрузки в загрузчике. Доступ к нему можно получить, нажав F2 или Del. или любую клавишу, предложенную производителем.
После того как все файлы Windows загрузятся, выберите Восстановление ОС. Обычно эта опция появляется в нижней части диалогового окна после выбора нескольких опций.
При появлении запроса выберите ОС, затем в опции восстановления системы выберите командную строку. Теперь введите по очереди следующие команды
bootrec /fixboot
bootrec /fixmbr
Теперь завершите установку и перезагрузите компьютер/ноутбук. Окно восстановлено и переопределило GRUB.
Ваш дистрибутив Linux по-прежнему присутствует в нем. Только GRUB отменен. Вы можете вернуть его обратно, следуя методу 2, описанному выше.
Метод 4 Восстановление Grub
Возьмите USB/DVD-накопитель Ubuntu live и загрузитесь с него на рабочий стол.
Подключитесь к Интернету и откройте терминал.
Установите Boot Repair Tool, введя следующие команды –
Появится инструмент восстановления загрузки. Выберите рекомендуемый вариант и выполните все шаги в точности, как там написано. Ваш ПК будет восстановлен, и ничего не будет потеряно.
Помните, что скорость восстановления зависит от вашего интернет-соединения.
Советы профи:-
Если вы задаетесь вопросом, где взять Live USB, вы можете посетить своего друга и скачать Ubuntu iso и создать загрузочный USB-накопитель с помощью Rufus и загрузочный DVD с помощью PowerISO, а также с помощью Ventoy.
Вы можете посетить общественное место, если вам нужен WiFi. Есть много мест, таких как аэропорты, железнодорожные вокзалы, больницы, где есть открытый Wi-Fi. Это поможет, только если у вас есть ноутбук.
Заключение
Наша команда LinuxCool готова помочь вам с вашим ПК. Если вы столкнулись с какими-либо трудностями, не стесняйтесь оставлять комментарии. Также, если у вас есть потрясающий способ выхода из этой ситуации, оставьте комментарий; мы с удовольствием добавим его в статью. Однако, несмотря на все ваши усилия, если вы не сможете спасти свой ноутбук или данные будут испорчены, мы в LinuxCool не будем нести ответственность за разгневанную мать, взбешенного отца, мертвого котенка или ядерную войну.
























