Как восстановить ядро ubuntu

Обновлено: 04.07.2024

GRUB - это основной загрузчик Ubuntu начиная с версии 9.10. Ранее он был известен как GRUB2 и пришёл он на смену старой версии GRUB, известной теперь как GRUB Legacy. Если вам необходимо восстановить GRUB Legacy, например поскольку у Вас стоит версия Ubuntu старше 9.10, то вам необходимо прочитать соответствующую статью.

Несмотря на то, что это фактически две версии одного приложения с названием GRUB, они не имеют ничего общего и являются совершенно разными программами.

На любом загрузочном винчестере есть так называемая Главная загрузочная запись (англ. master boot record, MBR), к которой обращается BIOS при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах, которые хранятся уже на разделах винчестера.

Каждый раз при установке или восстановлении систем от Microsoft загрузчики Linux заменяются и их необходимо заново устанавливать.

Восстановление с помощью LiveCD/USB

Первый способ

Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:

Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

На экран должна быть выведена примерно такая таблица:

Из таблицы видим, что Linux (загрузочный /-корень отмечен звёздочкой) стоит, в нашем случае, на разделе /dev/sdc1.

Теперь подключим этот раздел в /mnt следующей командой (следим за пропусками между кодами и порядковыми номерами разделов):

Затем, для записи grub в MBR, вводите следующую команду:

В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно, закрываем терминал и перезагружаем.

Если нужно обновить и меню grub (например, после установки Windows), то нужно сделать:

Восстановление используя chroot

Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:

Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

На экран должна быть выведена примерно такая таблица:

Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:

Если раздел /boot или /var находится отдельно, то Вам необходимо примонтировать их в /mnt/boot и /mnt/var

Теперь перейдем в окружающую среду chroot:

Теперь необходимо установить GRUB, используя команду:

Также в некоторых случаях может помочь вариант:

Если все прошло успешно, выходим из chroot командой:

Теперь необходимо отмонтировать разделы:

Если Вы монтировали раздел /boot воспользуйтесь командой:

Затем перезагрузим Ваш компьютер командой:

При необходимости Вы можете обновить меню загрузчика командой:

Восстановление в rescue mode

При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом: сначала нужно подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела. Как известно, Grub состоит из двух частей. Первая часть записана в MBR диска. Она содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела. В rescue mode доступно всего четыре команды:

Вначале следует дать команду:

В ответ она выведет, например, следующее:

Иногда Grub может неправильно опеределить, какие файловые системы находятся на разделах дисков. В данном случае определяет их как msdos. Нам нужно постараться угадать, какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела, диск с индексом 1 содержит два раздела. Зная структуру своих дисков несложно определить нужный диск.

Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) - первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов - с 1. Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1). Даем команду:

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

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

Проверьте правильность написания первой команды для файловых систем ext3 и ext4 Если ОС расположена на разделе, отформатированном в btrfs, то выполняем следующие команды:

После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки, которые можно подгружать, и покажет своё Grub-меню.

Дальнейшее восстановление сводится к тому, чтобы загрузить нужный нам Linux, и в нем от рута дать команду:


Команда разработчиков Ubuntu Kernel каждый месяц выпускает новые обновления ядра, исправления ошибок и патчи системы безопасности. Если вы постоянный пользователь Ubuntu и регулярно обновляете свою систему, то в вашей системе постепенно накапливается больше количество неиспользованных старых ядер.
Таким образом, есть вероятность того, что загрузочный раздел /boot на жестком диске будет заполнен в определенный период времени. Если ваш раздел /boot полон, вы не сможете больше обновить систему или не можете даже обновить ядро до любой последней доступной версии. В этом случае очень важно регулярно обновлять ядро и программное обеспечение. Для этого вы должны иметь достаточно свободного пространства в разделе /boot. Чтобы система Ubuntu функционировала правильно, вы должны иметь достаточно свободного места в загрузочном /boot и корневом /root разделах.

Конечно, мы можем легко удалить накопившийся системный кэш, ненужные пакеты и зависимости с помощью следующих команд:

sudo apt-get autoremove
sudo apt-get autoclean

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

Одним из разработчиков Ubuntu - Dustin Kirkland, отвечающим за развитие и стратегию продукта, была создана утилита purge-old-kernels, которая самым безопасным образом удаляет из системы неиспользованные пакеты ядер из десктопных и серверных систем Ubuntu.

Как использовать утилиту purge-old-kernels?

Утилита purge-old-kernels поставляется в Ubuntu 16.04 LTS по умолчанию, но прежде нужно установить утилиту byobu. В более старших версиях Ubuntu, вы должны прежде установить дополнительно утилиту bikeshed.

Для предыдущих дистрибутивов Ubuntu

sudo apt-get install bikeshed

В Ubuntu 16.04

sudo apt-get install byobu

Затем, чтобы удалить старые неиспользуемые ядра, выполните в терминале следующую команду:

sudo purge-old-kernels

Пример вывода команды:

Чтение списков пакетов . Готово
Построение дерева зависимостей
Чтение информации о состоянии . Готово
был автоматически установлен следующий пакет и больше не требуется:
linux-headers-4.4.0-21
Используйте sudo apt-get autoremove, чтобы удалить его.
Следующий пакеты, которые будут УДАЛЕНЫ:
linux-headers-4.4.0-21-generic* linux-image-4.4.0-21-generic* linux-image-extra-4.4.0-21-generic*обновлено 0, установлено 0 новых пакетов, 3 для удаления, и 0 пакетов обновлено.
После этой операции будет освобождено 224 Мб дискового пространства.
Вы хотите продолжить? [Y/n]

Введите Y и нажмите Enter, чтобы избавиться от неиспользуемого ядра и освободить место в системе.

Как видно, в приведенном выше выводе команды, старые ядра занимали 224 Мб на ж/диске моей Ubuntu 16.04.



No kernels are eligible for removal (Нет ядер для удаления).

Безопасность использование данной утилиты заключается в том, что она никогда не удалит последнее установленное ядро, а если точнее, утилита purge-old-kernels удаляет все неиспользованные ядра, за исключением ДВУХ последних - актуальное и предыдущее. Но пользователь может переопределить это значение с помощью параметра --keep.

Например, чтобы удалить все старые ядра, за исключением 3-х последних, выполните следующую команду:

sudo purge-old-kernels --keep 3 -qy

Для получения более подробной информации об утилите purge-old-kernels, посмотрите мануал (руководство пользователя):

В данном пошаговом руководстве вы узнаете, как правильно собрать и установить ядро ветвей >2.6 в семействе ОС Ubuntu.

Шаг 1. Получение исходного кода ядра

Исходники ядра Ubuntu можно получить двумя способами:

Установив архив из репозитория, с автоматическим наложением последних официальных патчей. При этом скачается пакет размером

150 Мб в текущую папку. Чтобы получить исходники ядра, версия которого установлена на компьютере выполните команду:

Или вместо `uname -r` можно указать конкретную версию из имеющихся в репозитории.

Список имеющихся в репозитории версий можно увидеть набрав команду: «apt-get source linux-image-» и, не нажимая Enter , нажать два раза клавишу Tab .

Не забудьте включить общий доступ к исходникам в репозитории ( Параметры системы → Программы и обновления → Программное обеспечение Ubuntu → Исходный код ). Из консоли это сделать можно раскомментировав строки начинающиеся с deb-src в файле /etc/apt/sources.list, а затем выполнить обновление командой: «sudo apt-get update».

Самая свежая версия ядра доступна по git. Размер скачиваемого пакета

Где <release codename> - имя релиза, например:

Другие ядра

Архив с базовой версий без патчей, т.е. например «4.8.0», «4.8.10»:

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

Или в случае с linux-source:

Шаг 2. Получение необходимых для сборки пакетов

Данный шаг необходимо выполнить, только если ядро собирается на компьютере в первый раз

Выполните следующие команды для установки основных пакетов:

Далее всё зависит от того, каким способом вы хотите произвести конфигурацию ядра. Это можно сделать несколькими способами.

config - традиционный способ конфигурирования. Программа выводит параметры конфигурации по одному, предлагая вам установить для каждого из них свое значение. Не рекоммендуется для неопытных пользователей. oldconfig - файл конфигурации создаётся автоматически, основываясь на текущей конфигурации ядра. Рекомендуется для начинающих. defconfig - файл конфигурации создаётся автоматически, основываясь на значениях по-умолчанию. menuconfig - псевдографический интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. Рекомендуется для использования в терминале. xconfig - графический (X) интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. gconfig - графический (GTK+) интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. Рекомендуется для использования в среде GNOME. localmodconfig - файл конфигурации, создающийся автоматически, в который включается только то, что нужно данному конкретному устройству. При вызове данной команды большая часть ядра будет замодулирована localyesconfig - файл конфигурации, похожий на предыдущий, но здесь большая часть будет включена непосредственно в ядро. Идеальный вариант для начинающих.

В случае, если вы хотите использовать config, oldconfig, defconfig, localmodconfig или localyesconfig, вам больше не нужны никакие дополнительные пакеты. В случае же с оставшимися тремя вариантами необходимо установить также дополнительные пакеты.

Для установки пакетов, необходимых для использования menuconfig выполните следующую команду:

Для установки пакетов, необходимых для использования gconfig выполните следующую команду:

Для установки пакетов, необходимых для использования xconfig выполните следующую команду:

Шаг 3. Применение патчей

Официальные патчи уже наложены на исходники, если ядро получалось описанной выше командой:

Если вы никогда до этого не применяли патчей к исходному коду, то выполните следующую команду:

Эта команда установит программу patch, необходимую для, как можно догадаться, применения патчей. Теперь скачайте файл патча в папку, куда вы распаковали ядро. Это может быть либо архивный файл (напр. Bzip2 или Gzip), либо несжатый patch-файл.

На данный момент подразумевается, что вы уже сохранили файл в ту папку, куда ранее распаковали ядро, и установили программу patch.
Если скачанный вами файл был в формате Gzip (*.gz), тогда выполните следующую команду для распаковки содержимого архива:

Если скачанный вами файл был в формате Bzip2 (*.bz2), тогда выполните следующую команду для распаковки содержимого архива:

где 2.6.x.y - версия патча ядра. Соответствующие команды распакуют файл патча в папку с исходным кодом ядра. Прежде чем применить патч, необходимо удостовериться, что он заработает без ошибкок. Для этого выполните команду:

где 2.6.x.y - версия патча ядра. Эта команда сымитирует применение патча, не изменяя сами файлы.

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

где 2.6.x.y - версия патча ядра. Если не было никаких ошибок, значит к исходному коду был успешно применён патч.

где 2.6.x.y - версия патча и ваших исходников

Шаг 4. Конфигурация будущей сборки ядра

Перейдите в папку, куда вы распаковали ядро, выполнив команду

где 2.6.x.y - версия загруженного вами ядра.

На данный момент вы уже должны были определиться с методом конфигурации ядра (если нет, то ознакомьтесь с ними в разделе «Получение необходимых для сборки пакетов». В зависимости от этого, выполните следующую команду для запуска выбранного вами способа конфигурации:

config - традиционный способ конфигурирования. Программа выводит параметры конфигурации по одному, предлагая вам установить для каждого из них свое значение. Вызывается командой oldconfig - файл конфигурации создаётся автоматически, основываясь на текущей конфигурации ядра. Рекомендуется для начинающих. Вызывается командой defconfig - файл конфигурации создаётся автоматически, основываясь на значениях по-умолчанию для данной конкретной архитектуры. Вызывается командой menuconfig - псевдографический интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. Рекомендуется для использования в терминале. Вызов: gconfig и xconfig - графические конфигураторы для ручной настройки. Вызов: localmodconfig и localyesconfig - автоматические конфигураторы. Конфиг создается на основе вызванных в данных момент модулей и запущенного ядра. Разница между этими двумя конфигураторами в количестве модулей. В первом случае их будет не менее 50% ядра, а во-втором не больше 2 модулей. Вызов:

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

Шаг 5. Сборка ядра

Итак, приготовления завершены. Теперь можно запустить процесс сборки ядра. Чтобы это сделать, выполните команду:

Сборка ядра может занимать от 20 минут до нескольких часов в зависимости от конфигурации ядра и технических параметров компьютера. Сборка при многодерном процессоре может быть в несколько раз быстрее

Шаг 6. Установка образов и заголовков ядра

Когда сборка ядра подошла к концу, в вашей домашней папке появятся два deb-пакета. Их и необходимо установить. Для этого выполните команды:

где 2.6.x.y - версия собранного ядра, arc - архитектура процессора (i386 - 32-бит, amd64 - 64-бит).
Если вы не знаете точного названия пакета, выведите список файлов в домашнем каталоге командой

и найдите эти самые два пакета.

Шаг 7. Генерация начального RAM-диска

Внимание! Если вы во время сборки ядра добавили ключ –initrd, этот шаг можно пропустить.

Для корректной работы Ubuntu требует наличия образа начального RAM-диска. Чтобы его создать, выполните команду:

где 2.6.x.y - версия собранного ядра.

Шаг 8. Обновление конфигурации загрузчика GRUB

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

Файл menu.lst (для GRUB версии 1) или grub.cfg (для GRUB версии 2) обновится в соответствии с наличием установленных операционных систем и образов ядер.

Этот шаг тоже можно пропустить, потому что во время установки ядра команда update-grub вызывается postinst-скриптом

Шаг 9. Проверка ядра

Сборка и установка ядра успешно выполнены! Теперь перезагрузите компьютер и попробуйте загрузить систему с новым ядром. Чтобы удостовериться, что система запущена с новым ядром, выполните команду

Она выведет на экран используемую версию ядра.

Если всё сделано правильно, то вы можете удалить архивы с исходным кодом и весь каталог linux-2.6.x.y в вашей домашней папке. Это освободит около 5 ГБ на вашем жёстком диске (размер освобождаемого пространства зависит от параметров сборки).

На этом процесс сборки и установки завершён, поздравляю!



Если вы случайно удалили все ядра и теперь не знаете, как восстановить вашу систему? Не переживайте. Следуя инструкции ниже, вы сможете восстановить её.

Инструкция применительна в следующих дистрибутивах Linux:

Ubuntu 12.10/12.04/11.10 и старше
Linux Mint 13/12 и старше

Подключение к Интернету
Live CD/DVD/USB с Ubuntu/Linux Mint

1. Вставьте Live CD/DVD/USB с образом и загрузите его.
В самом начале загрузки нажмите любую клавишу, чтобы открылось окно с выбором параметров. Выберите Запустить Ubuntu без установки и нажмите Enter:


В Linux Mint:


2. Дождитесь когда откроется рабочий стол с панелями и значками, нажмите (Ctrl+At+T) для вызова терминала, скопируйте и выполните следующую команду:

sudo fdisk -l

Данная команда выводит в терминале таблицу разделов на вашем жёстком диске:


Необходимо определить раздел где были удалены все ядра. В моём случае это раздел /dev/sda6 . У вас, естественно, он может быть другим.

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

sudo mkdir -p /media/ubuntu

sudo mount /dev/sda6 /media/ubuntu

sudo mount --bind /dev /media/ubuntu/dev

sudo mount --bind /proc /media/ubuntu/proc

sudo mount --bind /sys /media/ubuntu/sys

sudo chroot /media/ubuntu

Примечание. Измените в команде /dev/sda6 на свой раздел.

4. Далее установите ядро Linux с помощью команды:

apt-get install linux-image-generic

5. И последнее. Перезагрузите компьютер, удалив CD/DVD/USB.

Теперь вы должны войти в востановленную систему.

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

Подключение к Интернету
Live CD/DVD/USB с Ubuntu/Linux Mint

Нет компа-беги к соседу.Иль держи загрузочный диск под рукой

Случайное удаление ядер не херасе вы даете ребят. ))))

Бывает. Удалил ядра 2.3 ,а 3.5 установленное перед этим не пошло.

способ не сработал

Acronis True Image Home решит ваши проблемы перед тем как проводить опыты с системой сделайте копию займет до 10 мин и столько же восстановление в случае чего

klasnaja razrabotka ja polzuus etim KLASS.

Здраствуйте, а есть еще какие то методы восстановления ядра Linux так как этот метод не работает.

вот что выдает в терминале:

Этот метод работает, просто надо читать то что выдаёт терминал и последовательно выполнять.


Не правильно выбран лив СД. Вы пытаетесь восстановить систему с 12.04 диском 12.10. Нужно точное соответствие. Для 12.04 лив сд 12.04, для 12.10 сд 12.10. Выбирите правильный образ. Инструкция Админа реально работает.

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

chroot ты не защел к себе в окружение -root@ubuntu ты только залогинился под рутом с лайва

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