Ubuntu не загружается модуль

Обновлено: 04.07.2024

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

Но зато здесь есть режим восстановления системы, в котором вы с помощью терминала сможете сделать всё, чтобы заставить свой компьютер работать, а также получите возможность переустановки системы без потери программ и пользовательских данных.

Чёрный экран в Ubuntu

Давайте сначала разберем, почему может возникнуть чёрный экран в Ubuntu, и на каких этапах загрузки системы это происходит.

  • Первое: аппаратная проблема - если вы не видели приветствия BIOS, или, как часто делается в современных ноутбуках, заставки производителя машины или материнской платы; если при этом вы не можете войти в меню настройки BIOS с помощью клавиш F2, Del, F8, Shtift+F2 или других клавиш того же назначения, значит проблема аппаратная, и в этой статье вы не найдете её решение. Тут нужно нести ваше устройство в ремонт или попытаться самому проверить, если есть навыки.
  • Второе: проблема Grub - прошла заставка BIOS, но вы не видите меню Grub, есть только надписи, похожие на Minimal bash like interface или Resuce Mode. Это значит, что повреждён загрузчик, подробно об этом написано в статье "Как восстановить загрузчик Grub2".
  • Третье: чёрный экран при загрузке - вы выбрали нужный пункт меню Grub, началась загрузка системы, но потом либо всё зависло, либо возник экран с терминалом. Это может означать повреждение файловой системы, отсутствие какого-нибудь важного пакета, несовместимость драйверов.
  • Четвёртое: чёрный экран оболочки - система загрузилась, вы ввели логин и пароль, но вместо оболочки Unity или любой другой вы видите чёрный экран с курсором. Проблема в графической оболочке, её настройке или кэше может возникать в KDE после обновления.

Чёрный экран при установке Ubuntu

Большинство ошибок, вроде "чёрный экран Ubuntu во время установки", возникают потому, что образ был неправильно либо скачан, либо записан на носитель. Сначала проверьте md5 сумму образа. Подсчитать её можно командой:

Полученное значение должно совпадать со значением md5, которое указанно на сайте, откуда вы скачали образ:


Если значения не совпадают, образ придётся загрузить ещё раз. Дальше надо проверить записанный образ на ошибки, возможно, проблема возникла во время записи. Для это выберите пункт Check disk for errors в меню диска:

checkdisk

Если проблема всё ещё не была решена, возможно, система не загружается из-за несовместимости свободного драйвера и вашего оборудования. К счастью, этому есть решение. Необходимо использовать параметр ядра nomodeset. Он используется для того, чтобы включить особый режим работы драйвера. Нажмите в меню установщика F6 и выберите из выпавшего списка nomodeset:

blackscreen1

Дальше нажмите Esc, а затем Enter, чтобы начать загрузку:

blackscreen2

Затем можете запускать установку Ubuntu. Чёрный экран Ubuntu после установки может быть вызван, опять же, несовместимостью оборудования - вам придётся повторить все шаги, описанные выше, а затем установить необходимые драйверы.

Чёрный экран в Ubuntu при загрузке

Чёрный экран в Ubuntu при загрузке, может быть вызван разными причинами, например:

  • Обновлением системы;
  • Повреждением файловой системы из за неожиданного отключения от сети;
  • Несовместимостью драйверов видеокарты;
  • Отсутствием необходимых для инициализации программ.

Выше уже описано, как решить проблему "чёрный экран Ubuntu" при загрузке, если причиной стала несовместимость оборудования. Рассмотрим теперь подробнее.

1. Несовместимое оборудование

Если ваше оборудование несовместимо со свободным графическим драйвером, можно попытаться использовать параметр nomodeset, чтобы запустить систему и установить проприетарный драйвер. Чтобы изменить параметры ядра в Grub, достаточно установить рамку-курсор на нужный пункт меню и нажать E:


Дальше в конец строки допишите nomodeset, а также можете убрать quiet splash и добавить verbose для отображения информации о загрузке вместо заставки. Так вы сможете быстрее понять, в чём проблема. Для продолжения загрузки нажмите Ctrl+X. Теперь система загрузится, и вы сможете установить проприетарные драйверы, необходимые для нормальной работы системы.

2. Чёрный экран в Ubuntu при шифровании

Если вы использовали шифрование жёсткого диска LVM или LUKS во время установки, то возможно чёрный экран Ubuntu означает, что система просто спрашивает у вас пароль, но вы этого не видите. Попробуйте переключиться между виртуальными терминалами с помощью Alt + вправо или Alt + влево. Это может вернуть запрос пароля обратно. Также вы можете просто попробовать ввести свой пароль и нажать Enter. Если всё хорошо, система загрузится.

3. Нерабочий проприетарный графический драйвер

Неправильно установленный проприетарный графический драйвер, NVIDIA или AMD, тоже может вызвать чёрный экран Ubuntu при загрузке. Такой драйвер нужно удалить и затем установить его правильно или найти другой драйвер. В таких случаях обычно система загружается нормально, но не может запустить X-сервер. Поэтому перейдите в первую виртуальную консоль с помощью сочетания клавиш Ctrl+Alt+F1 и введите логин и пароль:


Затем вы увидите привычное приглашение ввода командной строки. Для удаления драйвера NVIDIA выполните:

sudo apt purge nvidia*

sudo apt purge amdgpu*

Также некоторые драйверы, например NVIDIA, вносят модификации в файл /etc/X11/xorg.conf, поэтому, возможно, придётся обновить конфигурацию X-сервера:

sudo dpkg-reconfigure xserver-xorg

Осталось перезагрузить систему:

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

4. Повреждение файловой системы или имён дисков

Обычно файловая система, даже при повреждениях, восстанавливается автоматически, но если этого не произошло, появится чёрный экран Ubuntu 16.04. Можно попытаться восстановить всё вручную. Нам понадобится режим восстановления. Для этого в Grub откройте пункт Дополнительные параметры Ubuntu, а в нём выберите пункт, в котором написаны название Ubuntu и версия, а в скобках Recovery Mode, например:


Система загрузится в в меню восстановления, где надо выбрать пункт Перейти в командный интерпретатор суперпользователя:


После этого перед вами откроется консоль, где вы сможете выполнять все нужные действия. Для восстановления файловой системы выполните:

Теперь можно перезагружать систему.

5. Чёрный экран Ubuntu после обновления

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

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


Также будет переустановлен Grub, а это значит, что любые проблемы с загрузчиком также будут решены. Если вы беспокоитесь о важных файлах и данных, можете запустить диск в режиме Попробовать Ubuntu. Здесь вы сможете открыть файловый менеджер, подключить диск с домашней папкой и скопировать оттуда все нужные данные на внешний USB диск.

Чёрный экран оболочки

Иногда после крупных обновлений мы можем получить чёрный экран Ubuntu уже после входа в систему и загрузки оболочки. Это происходит из-за несовместимости старых настроек оболочки и её новой версии. Решить эту проблему просто: достаточно просто удалить файлы настроек и кэша, но лучше их на всякий случай просто переименовать.

Сначала перейдите в виртуальную консоль с помощью сочетания клавиш Ctrl+Alt+F1. Затем введите логин и пароль. Чтобы сбросить настройки Gnome, достаточно несколько команд:

dconf reset -f /org/gnome/

Затем можно перезапустить графический сервер:

sudo systemctl restart display-manager

Если вы используете KDE, нужно перемещать файлы вручную:

В Gnome та же история:

Выводы





Оцените статью:

(14 оценок, среднее: 5,00 из 5)

Об авторе

50 комментариев

спасибо за отличную статью

У меня следующая ситуация; при старте компа загрузка проходит штатно затем, когда по идее должна загрузится система и рабочий стол я вижу черный экран, спустя минуту появляется курсор мыши на черном экране и секунд через 30 - 40 появляется рабочий стол и все прекрасно работает. в чем может быть прикол?

Скорее всего проблема в настройках рабочего окружения или драйверах. При чем первое поправимо, просто сбросьте настройки Unity до начального состояния или попробуйте создать нового пользователя. Также в логах

/.xsession-erros должна была засветиться ошибка, если она есть.

я на линуксе примерно неделю и пака вообще не понимаю местную экосистему=)
Настройки юнити и компиз для верности сбросил к дефолтным настройкам, проблема осталась.

в .xsession-errors следующая строчка:

openConnection: connect: Нет такого файла или каталога
cannot connect to brltty at :0

до сброса настроек юнити и компиз я попытался решить проблему откатом системы видимо файл был создан до отката. откат системы проблему не решил, ниже содержимое файла .xsession-errors.old

openConnection: connect: Нет такого файла или каталога
cannot connect to brltty at :0
upstart: Процесс indicator-bluetooth main (1557) завершен с помощью сигнала TERM
upstart: Процесс indicator-power main (1558) завершен с помощью сигнала TERM
upstart: Процесс indicator-datetime main (1559) завершен с помощью сигнала TERM
upstart: Процесс indicator-printers main (1562) завершен с помощью сигнала TERM
upstart: Процесс indicator-session main (1563) завершен с помощью сигнала TERM
upstart: Процесс indicator-application main (1564) завершен с помощью сигнала TERM
upstart: Процесс indicator-bluetooth main (3081) завершен с помощью сигнала TERM
upstart: Процесс indicator-power main (3086) завершен с помощью сигнала TERM
upstart: Процесс indicator-datetime main (3087) завершен с помощью сигнала TERM
upstart: Процесс indicator-session main (3091) завершен с помощью сигнала TERM
upstart: Процесс indicator-application main (3101) завершен с помощью сигнала TERM
upstart: Процесс unity-settings-daemon main (1408) завершен с помощью сигнала HUP
upstart: Процесс bamfdaemon main (1409) завершен с помощью сигнала TERM
upstart: Процесс hud main (1417) завершен с помощью сигнала HUP
upstart: Процесс at-spi2-registryd main (1431) завершен с помощью сигнала HUP
upstart: Процесс unity-panel-service main (3394) завершен с помощью сигнала HUP
upstart: Процесс indicator-bluetooth main (3410) завершен с помощью сигнала TERM
upstart: Процесс indicator-power main (3416) завершен с помощью сигнала TERM
upstart: Процесс indicator-datetime main (3418) завершен с помощью сигнала TERM
upstart: Процесс indicator-keyboard main (3421) завершен с помощью сигнала HUP
upstart: Процесс indicator-sound main (3422) завершен с помощью сигнала HUP
upstart: Процесс indicator-session main (3423) завершен с помощью сигнала TERM
upstart: Процесс indicator-application main (3431) завершен с помощью сигнала TERM
upstart: Процесс indicator-application pre-stop (3687) завершен с помощью сигнала TERM
upstart: Процесс gnome-session (Unity) pre-stop (3688) завершен с помощью сигнала TERM
upstart: Процесс gnome-session (Unity) main (1437) завершен с помощью сигнала HUP
upstart: Disconnected from notified D-Bus bus
upstart: Процесс unity7 main (3395) завершен с кодом 1

Сама по себе эта строчка ничего мне не говорит, покажите еще вывод команды sudo dmesg. Какая видеокарта? Драйвера на нее установлены?

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

Почему Linux не загружается дальше initramfs


1. Неверный корневой раздел в загрузчике

В данном случае она сообщает, что не может найти раздел /dev/sda10:

Alert: /dev/sda10 does not exist. Dropping to a shell


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

ls /dev/ | grep sd


В этом окружении есть BusyBox, а значит есть большинство утилит Unix. Вы можете примонтировать каждый из этих разделов с помощью команды mount и узнать где находится ваш новый корневой раздел, например:

mkdir /mnt
mount /dev/sda5 /mnt
ls

Вы также можете узнать здесь же UUID данного раздела диска, для этого выполните:


В данном случае, корневой раздел имеет имя /dev/sda5. Именно это имя можно передать ядру в конфигурации загрузчика Grub, а можно UUID, но если в этом нет крайней необходимости, то короткое имя использовать гораздо проще. Надо перезагрузить компьютер, в меню Grub выбрать нужную загрузочную запись и нажать клавишу E:


Далее найти пункт, начинающейся со слова linux и в нём параметр root. Его значение вместе со словом UUID надо стереть, а вместо него прописать имя корневого раздела:


После этого система загрузится, а вам останется только создать новый конфигурационный файл grub с помощью команды:

2. Повреждённая файловая система

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

The root filesystem on /dev/sda5 requires a manual fsck

Вы можете прямо здесь же попытаться восстановить файловую систему. Для этого выполните:

Здесь /dev/sda5 - это корневой раздел, его нужно заменить на свой. Опция -y указывает утилите, что на все вопросы надо ли исправлять блок нужно отвечать утвердительно. После успешного восстановления надо перезагрузить компьютер и попытаться загрузить систему снова.

Выводы

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.



Ядро — это та часть операционной системы, работа которой полностью скрыта от пользователя, т. к. пользователь с ним не работает напрямую: пользователь работает с программами. Но, тем не менее, без ядра невозможна работа ни одной программы, т.е. они без ядра бесполезны. Этот механизм чем-то напоминает отношения официанта и клиента: работа хорошего официанта должна быть практически незаметна для клиента, но без официанта клиент не сможет передать заказ повару, и этот заказ не будет доставлен.
В Linux ядро монолитное, т.е. все его драйвера и подсистемы работают в своем адресном пространстве, отделенном от пользовательского. Сам термин «монолит» говорит о том, что в ядре сконцентрировано всё, и, по логике, ничего не может в него добавляться или удаляться. В случае с ядром Linux — это правда лишь отчасти: ядро Linux может работать в таком режиме, однако, в подавляющем большинстве сборок возможна модификация части кода ядра без его перекомпиляции, и даже без его выгрузки. Это достигается путем загрузки и выгрузки некоторых частей ядра, которые называются модулями. Чаще всего в процессе работы необходимо подключать модули драйверов устройств, поддержки криптографических алгоритмов, сетевых средств, и, чтобы уметь это правильно делать, нужно разбираться в строении ядра и уметь правильно работать с его модулями. Об этом и пойдет речь в этой статье.

В современных ядрах при подключении оборудования модули подключаются автоматически, а это событие обрабатывается демоном udev, который создает соответствующий файл устройства в каталоге "/dev". Все это выполняется в том случае, если соответствующий модуль корректно установлен в дерево модулей. В случае с файловыми системами ситуация та же: при попытке монтирования файловой системы ядро подгружает необходимый модуль автоматически, и выполняет монтирование.
Если необходимость в модуле не на столько очевидна, ядро его не загружает самостоятельно. Например, для поддержки функции шифрования на loop устройстве нужно вручную подгрузить модуль «cryptoloop», а для непосредственного шифрования — модуль алгоритма шифрования, например «blowfish».

Поиск необходимого модуля

Модули хранятся в каталоге "/lib/modules/<версия ядра>" в виде файлов с расширением «ko». Для получения списка всех модулей из дерева можно выполнить команду поиска всех файлов с расширением «ko» в каталоге с модулями текущего ядра:

find /lib/modules/`uname -r` -name ‘*.ko’

Полученный список даст некоторое представление о доступных модулях, их назначении и именах. Например, путь «kernel/drivers/net/wireless/rt2x00/rt73usb.ko» явно указывает на то, что этот модуль — драйвер устройства беспроводной связи на базе чипа rt73. Более детальную информацию о модуле можно получить при помощи команды modinfo:

Загрузка и выгрузка модулей

Загрузить модуль в ядро можно при помощи двух команд: «insmod» и «modprobe», отличающихся друг от друга возможностью просчета и удовлетворения зависимостей. Команда «insmod» загружает конкретный файл с расширением «ko», при этом, если модуль зависит от других модулей, еще не загруженных в ядро, команда выдаст ошибку, и не загрузит модуль. Команда «modprobe» работает только с деревом модулей, и возможна загрузка только оттуда по имени модуля, а не по имени файла. Отсюда следует область применения этих команд: при помощи «insmod» подгружается файл модуля из произвольного места файловой системы (например, пользователь скомпилировал модули и перед переносом в дерево ядра решил проверить его работоспособность), а «modprobe» — для подгрузки уже готовых модулей, включенных в дерево модулей текущей версии ядра. Например, для загрузки модуля ядра «rt73usb» из дерева ядра, включая все зависимости, и отключив аппаратное шифрование, нужно выполнить команду:

После загрузки модуля можно проверить его наличие в списке загруженных в ядро модулей при помощи команды «lsmod»:

Module Size Used by
rt73usb 17305 0
crc_itu_t 999 1 rt73usb
rt2x00usb 5749 1 rt73usb
rt2x00lib 19484 2 rt73usb,rt2x00usb

Из вывода команды ясно, что модуль подгружен, а так же в своей работе использует другие модули.
Чтобы его выгрузить, можно воспользоваться командой «rmmod» или той же командой «modprobe» с ключем "-r". В качестве параметра обоим командам нужно передать только имя модуля. Если модуль не используется, то он будет выгружен, а если используется — будет выдана ошибка, и придется выгружать все модули, которые от него зависят:

Для автоматической загрузки модулей в разных дистрибутивах предусмотрены разные механизмы. Я не буду вдаваться здесь в подробности, они для каждого дистрибутива свои, но один метод загрузки всегда действенен и удобен: при помощи стартовых скриптов. В тех же RedHat системах можно записать команды загрузки модуля прямо в "/etc/rc.d/rc.local" со всеми опциями.
Файлы конфигурация модулей находится в каталоге "/etc/modprobe.d/" и имеют расширение «conf». В этих файлах преимущественно перечисляются альтернативные имена модулей, их параметры, применяемые при их загрузке, а так же черные списки, запрещенные для загрузки. Например, чтобы вышеупомянутый модуль сразу загружался с опцией «nohwcrypt=1» нужно создать файл, в котором записать строку:

options rt73usb nohwcrypt=1

Черный список модулей хранится преимущественно в файле "/etc/modules.d/blacklist.conf" в формате «blacklist <имя модуля>». Используется эта функция для запрета загрузки глючных или конфликтных модулей.

Сборка модуля и добавление его в дерево

Иногда нужного драйвера в ядре нет, поэтому приходится его компилировать вручную. Это так же тот случай, если дополнительное ПО требует добавление своего модуля в ядро, типа vmware, virtualbox или пакет поддержки карт Nvidia. Сам процесс компиляции не отличается от процесса сборки программы, но определенные требования все же есть.
Во первых, нужен компилятор. Обычно установка «gcc» устанавливает все, что нужно для сборки модуля. Если чего-то не хватает — программа сборки об этом скажет, и нужно будет доустановить недостающие пакеты.
Во вторых, нужны заголовочные файлы ядра. Дело в том, что модули ядра всегда собираются вместе с ядром, используя его заголовочные файлы, т.к. любое отклонение и несоответствие версий модуля и загруженного ядра ведет к невозможности загрузить этот модуль в ядро.
Если система работает на базе ядра дистрибутива, то нужно установить пакеты с заголовочными файлами ядра. В большинстве дистрибутивов это пакеты «kernel-headers» и/или «kernel-devel». Для сборки модулей этого будет достаточно. Если ядро собиралось вручную, то эти пакеты не нужны: достаточно сделать символическую ссылку "/usr/src/linux", ссылающуюся на дерево сконфигурированных исходных кодов текущего ядра.
После компиляции модуля на выходе будет получен один или несколько файлов с расширением «ko». Можно попробовать их загрузить при помощи команды «insmod» и протестировать их работу.
Если модули загрузились и работают (или лень вручную подгружать зависимости), нужно их скопировать в дерево модулей текущего ядра, после чего обязательно обновить зависимости модулей командой «depmod». Она пройдется рекурсивно по дереву модулей и запишет все зависимости в файл «modules.dep», который, в последствие, будет анализироваться командой «modprobe». Теперь модули готовы к загрузке командой modprobe и могут загружаться по имени со всеми зависимостями.
Стоит отметить, что при обновлении ядра этот модуль работать не будет. Нужны будут новые заголовочные файлы и потребуется заново пересобрать модуль.

Ошибка «Invalid argument» может говорить о чем угодно, саму ошибку ядро на консоль написать не может, только при помощи функции «printk» записать в системный лог. Посмотрев логи можно уже узнать в чем ошибка:

В этом примере выведена только последняя строка с ошибкой, чтобы не загромаждать статью. Модуль может написать и несколько строк, поэтому лучше выводить полный лог, или хотя бы последние строк десять.
Ошибку уже легко найти: значение «2» неприемлемо для параметра «nohwcrypt». После исправления, модуль корректно загрузится в ядро.

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

В данной статье постараюсь рассмотреть некоторые типовые ошибки, связанные с загрузкой системы. Бывает так, что сервер с Ubuntu по какой-то причине не загружается из-за поврежденного загрузчика или еще каких-то проблем. Я покажу методику, как решать подобные проблемы с запуском, а заодно расскажу, как можно быстро восстановить систему.

Система Ubuntu не загружается

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

Далее я отдельно рассмотрю второй и третий случаи. Начнем со стандартного режима восстановления grub.

Entering rescue mode

Итак, в случае проблем с загрузкой Ubuntu вы можете оказаться в режиме grub rescue.

grub rescue

Первым делом запускаем команду ls и смотрим, какие разделы у нас доступны.

В моем случае доступен только один 3-й раздел, скорее всего корневой. Раздела /boot, который обычно 1-й или 2-й нет. Проверим это наверняка. Смотрим содержимое доступного раздела:

восстановление загрузки ubuntu

Далее загружаем некоторые модули. Какие будут нужны, точно не известно и зависит от типов разделов диска. Показываю самые популярные:

Можно для начала попробовать вообще без модулей, а потом добавлять по одному. В самом конце загружаем модуль normal.

Восстановление поврежденных разделов ubuntu

Если же у вас вообще не найден раздел для загрузки, надо попробовать его восстановить. Для этого загружаемся с установочного диска Ubuntu и на первом экране инсталлятора выходим в консоль через раздел Help.

live cd ubuntu

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

установка testdisk

Запускаем утилиту и указываем, что будем создавать новый log файл.

запуск testdisk

Выбираем диск, на котором у нас установлена система. В моем случае это sda.

выбор диска для восстановления

В качестве partition table type сначала укажите Intel. Если не получится ничего найти, попробуйте еще раз с другими типами.

тип таблицы разделов

Дальше выбираем Analyze.

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

И запускаем Quick Search.

Запуск поиска

У меня testdisk нашел 2 раздела, причем первый это boot раздел, который по какой-то причине исчез.

Восстановление boot раздела в ubuntu

Из-за его отсутствия виртуальная машина с ubuntu не грузилась. Далее выбираю первый раздел и восстанавливаю его с помощью testdisk. Записываю изменения и выхожу в консоль. Проверяю с помощью fdisk разделы диска /dev/sda.

Раздел /boot восстановлен

Появился первый загрузочный раздел. По идее я выполнил восстановление boot раздела. Теперь можно проверить, запустится ли система. Для этого отключаем установочный диск и загружаемся с основного.

В случае, если все загрузилось, вам повезло. Отделались малой кровью. Если же ubuntu не загружается, а вы опять попадаете в grub rescue, значит придется еще потрудиться над восстановлением загрузки системы. Будем восстанавливать сам grub.

Восстановление grub

Продолжаем восстановление загрузки ubuntu. Сам /boot раздел мы вернули, но загрузчик grub почему-то не работает и система не грузится. Загружаемся опять с установочного диска и переходим в консоль. Напомню, что у меня такая картина по разделам:

Первый раздел это /boot, второй корень / . Смонтируем их в /mnt, а так же добавим несколько системных директорий.

Теперь чрутимся в /mnt, чтобы оказаться в нашей системе:

И уже отсюда восстанавливаю загрузчик grub:

По идее, ошибок получить не должны. Если получили, то гуглите их. Надо обязательно их решить, иначе система так и не начнет загружаться корректно.

Теперь выходим отсюда и перезагружаем сервер. Вынимаем установочный диск и загружаемся с основного диска. У меня пошла загрузка.

Давайте еще раз повторим все, что мы сделали:

  1. Мы увидели, что система не грузится и валится в grub rescue. Загрузчик не может найти раздел, с которого продолжить загрузку. Мы попробовали в rescue console посмотреть все имеющиеся разделы и не нашли там boot. Если же нашли, то сразу же загрузились с него.
  2. После этого загрузились с загрузочного диска ubuntu, перешли в консоль. Установили утилиту testdisk и просканировали наш диск. Нашли пропавший раздел, восстановили /boot. Если раздел не нашли, то создали вручную.
  3. После этого смонтировали к livecd системе локальные диски, зачрутились в эту систему и штатно восстановили grub загрузчик.
  4. После этого система нормально загрузилась.

Заключение

В целом, мы выполнили типовую процедуру восстановления загрузки любого linux сервера, в том числе ubuntu. Если бы раздел boot не получилось восстановить, его нужно было бы создать вручную и проделать все то же самое с восстановлением grub. Это ключевой элемент загрузки linux. Система перестает загружаться чаще всего из-за проблем с ним. Он может быть поврежден установкой рядом других систем или неправильной разбивкой диска.

Читайте также: