Как установить старое ядро linux

Обновлено: 04.07.2024

Последнее ядро вызывает проблемы с моим звуком, который хорошо работал с более старой версией. Поскольку у меня есть только установленная Ubuntu, Личинка не становится отображенной при начальной загрузке. Как я могу вручную выбрать свою версию ядра при начальной загрузке?

Самый простой способ отображения ваш Grub должен нажать и удерживать кнопку SHIFT во время загрузки.

В качестве альтернативы вы всегда можете отобразить Grub без загрузки какого-либо конкретного ядра:

измените GRUB_TIMEOUT на -1 и закомментируйте GRUB_HIDDEN_TIMEOUT

Удерживая нажатой клавишу Shift во время загрузки, откроется меню Grub. Теперь вы можете выбрать старую версию ядра.

Чтобы выбрать более старое ядро ​​в качестве ядра по умолчанию, см. этот пост

Установите предыдущее ядро ​​с помощью следующей команды:

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

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

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

GRUB start page

Перезагрузите компьютер, нажав кнопку Shift, чтобы отобразить GRUB после запуска BIOS. Вы увидите что-то вроде:

Выберите «Дополнительные параметры для Ubuntu» и запомните индекс этой строки меню (счет начинается с 0) На картинке индекс равен 1

Select concrete Kernel

Выберите конкретное ядро ​​для загрузки, а также запомните индекс этой строки меню (счет начинается с 0 ) На картинке индекс выбранного ядра равен 2

Start system. Это действие предназначено для одной загрузки с конкретным ядром. Если вы хотите все время начинать с конкретного ядра, вам следует сделать следующие шаги:

4.1. Откройте и отредактируйте установочный файл GRUB:

4.2. Найдите строку GRUB_DEFAULT = . (по умолчанию GRUB_DEFAULT = 0) и задайте в кавычках путь меню к конкретному ядру (помните индексы меню из шагов 2 и 3). В моей системе первый индекс был 1, а второй - 2. Я установил GRUB_DEFAULT

4.3. Обновите информацию GRUB для применения изменений:

4.4. После перезагрузки вы автоматически загружаетесь в ядро ​​по выбранному пути в меню. Пример на моей машине 1 -> 2

4.5. Проверьте версию ядра после перезагрузки:

16.04 и более поздние версии

Сразу после заставки BIOS / UEFI во время загрузки в BIOS быстро нажмите и удерживайте клавишу Shift , которая вызовет GNU GRUB меню. (Если вы видите логотип Ubuntu, вы пропустили момент, когда вы можете войти в меню GRUB.) В UEFI нажмите (возможно, несколько раз) клавишу Esc , чтобы перейти в меню GRUB. Иногда заставка производителя является частью загрузчика Windows, поэтому при включении компьютера он сразу переходит к экрану GRUB, а затем нажимать Shift не нужно.

На экране GRUB выберите Дополнительные параметры для Ubuntu и нажмите Введите .

enter image description here

Появится новый фиолетовый экран со списком ядер. Используйте клавиши ↑ и ↓, чтобы выбрать, какая запись будет выделена. Нажмите Enter, чтобы загрузить выбранное ядро, «e» для редактирования команд перед загрузкой или «c» для командной строки. Нажмите Esc, чтобы вернуться в предыдущее меню.

enter image description here

Ответ Джеккобека описывает метод просмотра grub.cfg и прокрутки исходного кода для поиска номера меню. Более простой способ - использовать этот сценарий :

Примечание: В этом примере grub-menu.sh short использовался для вызова сценария. Параметр short подавляет следующие строки:

Клавиши управления

После прокрутки записей (вы можете использовать колесо прокрутки мыши или клавиши со стрелками) нажмите Escape , чтобы вернуться к команде строка.

Если вы нажмете Enter , отобразятся соответствующие команды grub для записи:

Обновление grub для загрузки предыдущего ядра

Для каждой записи меню существует набор команд grub. Все скомпилированные записи хранятся в файле /boot/grub/grub.cfg .

В этом примере мы хотим, чтобы номер меню `1> 9> был установлен по умолчанию, поэтому мы используем:

и найдите эту строку:

и измените ее на эту:

Затем сохраните файл и запустите

ответ дан WinEunuuchs2Unix 22 November 2019 в 23:44

Перезагрузитесь в определенное ядро, номер версии и тип которого можно узнать из ls / boot | grep vmlinuz выполнение команды.

Создайте сценарий со следующим содержимым: $ vim.tiny kernboot.sh

Добавьте разрешения на выполнение для сценария и запустите его:

Сценарий может быть размещен в cron с помощью sudo crontab -e и @reboot / path / to / script


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

Ядро операционной системы похоже на вашу сердечно-сосудистую систему.

Вы склонны забывать об этом, пока что-то пойдет не так.

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

Загрузитесь в старое ядро


Для загрузки в старое ядро вам необходимо перезагрузить компьютер.

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

В некоторых системах сразу будут показаны более старые ядра, в то время как в Ubuntu вам нужно будет выбрать «Advanced options for Ubuntu», чтобы найти более старые ядра.

Выбрав старое ядро, вы загрузитесь в свою систему.

Все должно работать как раньше.

Если проблема не устранена, значит она не в ядре.

Удалите проблемное ядро

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

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


Вы можете сделать это, используя инструменты управления пакетами вашего дистрибутива. Это будет отличаться в зависимости от системы, которую вы используете. Вам также необходимо знать версию ядра, которое вы хотите удалить. Версию можно найти во время загрузки на экране GRUB. Для Ubuntu и других основанных на apt дистрибутивов вы можете использовать команду, подобную следующей: Вам нужно заменить вышеприведенную VERSION точным номером версии проблемного ядра, которое вы хотите удалить. Если вы просто хотите отложить ядро на некоторое время, вы можете использовать следующую команду:


Как избежать таким проблем в будущем

Особенно следует следить за пользователями со схожим оборудованием.

Если вам важна стабильность, вы также можете использовать дистрибутивы LTS.

Эти обновления более редкие, за исключением обновлений безопасности.

Это означает, что вы можете рассчитывать на то, что они будут более стабильными, чем ваш стандартный дистрибутив.

Заключение

Хотя понижение версии является самым простым способом решения проблем, связанных с ядром, это не единственный способ.

Иногда это просто невозможно.

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

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

И прежде чем кто-то продолжит рассказывать о проблемах, которые это может создать, для меня это не имеет значения.

kernel-ppa/mainline/. Прокрутите страницу до конца списка; выберите свое ядро. Загрузите следующие файлы (xxxxxx будет заменен числами, указывающими версию ядра. Предполагается, что у вас 64-битная ОС):

Linux-Headers-хххххх-родовым-xxxxxx_amd64.deb

Linux-Headers-xxxxxx_all.deb

Linux-образ-хххххх-родовым-xxxxxx_amd64.deb

Переместите все эти файлы в папку. CD в ​​это. Установите все эти пакеты, запустив

Выберите новое ядро ​​из меню Grub.

Обновление : поскольку это экземпляр Ubuntu, вы можете вручную получить ссылки и использовать wget для загрузки пакетов.

Что подразумевается под выбором нового ядра из меню grub? Я написал этот ответ, думая о рабочем столе Ubuntu, в котором вы получите каждую запись для каждого ядра, для экземпляра сервера, вы можете просто перезапустить сервер, после чего он автоматически загрузится до последнего ядра. Или вы можете отредактировать конфигурацию для конкретное ядро @Sijin Krishnan Должны ли мы вручную редактировать меню grub перед перезагрузкой, чтобы «выбрать новое ядро ​​из меню grub»? Grub будет загружаться с последней версией ядра из установленных по умолчанию. Вам нужно только коснуться конфигурации, если вы хотите загрузиться с любой другой более низкой версией s .

Если вам нужно официальное ядро ​​Ubuntu (не ядро ​​mainline) из неподдерживаемой версии, см. Ниже.

Мне пришлось установить еще более старое ядро ​​(2.6.32.21-generic) для стандартных модулей для работы с кастомным ядром. Аппаратное обеспечение не работало, поэтому пришлось загружать вручную.

По сути, вам понадобятся заголовки ядра для вашего процессора, общие (все) заголовки и образ ядра для вашего процессора.

В следующих шагах замените его x.x.xx-xx на версию ядра и amd64 тип вашего процессора. Обратите внимание, что это для общего ядра и не использует дополнительные функции, такие как PAE.

  1. linux-headers-xxxx-xx-generic_x.x.xx-xx.yy_ amd64 .deb
  2. linux-headers-xxxx-xx-generic_x.x.xx-xx.yy_ all .deb

На странице CTRL + F найдите image-x.x.xx-xx-generic и скачайте

  1. linux-image-2.6.32-21-generic_2.6.32-21.32_ amd64 .deb

Поместите все эти пакеты в одну папку, и из этой папки ( cd в нее) запустите


28 Мар 2021 00:03:05 | 0 comments

Изменение загружаемого по умолчанию ядра в Ubuntu

Исходные данные: ОС Ubuntu 18.04 и 20.04
Задача: Смена ядра по умолчанию в Ubuntu 18.04 и 20.04

Для достижения нашей цели мы будем редактировать файл /etc/default/grub, поэтому прежде чем его менять Вам нужно понимать что Вы меняете и для чего. Рекомендую для начала ознакомиться с официальной документацией на GRUB в части некоторых основных опций.

Все редактирование будет осуществляться с правами root, так что перейдите в консоль под пользователем root.

Откройте файл /etc/default/grub в привычном Вам редакторе, это может быть vim или например mcedit. Я использую vim.

Ниже представлен файл /etc/default/grub по умолчанию (комментарии удалены):

Добавим перед GRUB_DEFAULT опцию

Опция GRUB_SAVEDEFAULT=true заставляет сохранять выбранную в меню загрузчика запись как запись по умолчанию, но это работает только если GRUB_DEFAULT=saved

Далее изменим GRUB_DEFAULT=0 на

Опция GRUB_DEFAULT может быть числом или специальным типом saved. Число указывает номер элемента в списке меню (возможно указание номера под элемента, например так 1>2), по умолчанию стоит GRUB_DEFAULT=0

Далее изменим GRUB_TIMEOUT_STYLE=hidden на

Опция GRUB_TIMEOUT_STYLE указывает на тип меню выбора во время отчета времени указанном в GRUB_TIMEOUT по истечении которого будет загружена запись по умолчанию. По умолчанию меню загрузчика скрыто, но нам нужно чтобы оно отображалось для выбора ядра.

Далее изменим GRUB_TIMEOUT=0 на

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

Итого файл /etc/default/grub стал таким (комментарии удалены):

Далее нужно сохранить параметры загрузчика, вызываем команду:

После этого можно перезагрузить сервер и сразу после прохождения процедуры POST мы попадем в меню загрузчика GRUB, см. скриншот ниже:

Ubuntu 20.04 (GRUB)

Ubuntu 20.04 (GRUB)

Ubuntu 20.04 (GRUB submenu Advanced)

Ubuntu 20.04 (GRUB submenu Advanced)

Мы видим список доступных для загрузки Linux-ядер. Выбираем например ядро 5.4.0-52 и жмем Enter. В этот момент GRUB запомнит Ваш выбор и будет использовать его по умолчанию при следующих загрузках. А нам это и нужно.

После загрузки мы можем проверить, что действительно загрузилось ядро 5.4.0-52 командой uname:

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

step0 - Основные требования для компиляции и установки Linux

Исходный код ядра

img

Скомпилируйте необходимое программное обеспечение

Компиляция ядра требует некоторых базовых инструментов разработки, таких как make и компилятор. Конечно, есть и другие важные инструменты. Системы серии Debian можно установить с помощью следующих команд:

Шаг 1 - Извлечение пакета исходного кода

После загрузки исходного пакета вам нужно распаковать его:

Например, я скачал исходный пакет ядра 3.16.48, имя файла linux-3.16.48.tar.xz

Обратите внимание, что обычной практикой является размещение пакета исходного кода ядра Linux в каталоге / usr / src /. Этот шаг не является необходимым, но я лично считаю, что он находится в этом каталоге, а не в домашнем каталоге какого-либо пользователя. Будет понятнее, если у вас несколько ядер.

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

После завершения декомпрессии,

setp2 - некоторая необходимая очистка перед компиляцией

Сначала очистите временные файлы, оставшиеся во время предыдущей компиляции. Если это новый распакованный пакет, вам не нужно выполнять этот шаг. В противном случае вы должны выполнить
make mrproper

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

cp /boot/config- uname -r ./.config

setp3 - начать настройку параметров ядра

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

команда make config Это давно установленный метод конфигурации. После выполнения он будет перечислять опции, которые поддерживают конфигурацию один за другим. Вы можете выбрать, собирать ли ядро ​​или компилировать в виде модулей. Существует много функций и оборудования, поддерживаемых Linux. Конфигурирование по одному - действительно трудоемкая задача.

команда make menuconfig Графический интерфейс конфигурации на основе проклятий, вы можете напрямую выбрать необходимые элементы для изменения.

img

команда make xcofig Графический интерфейс конфигурации на основе QT.

команда make gconfig Графический интерфейс конфигурации на основе GTK.

setp4 - выполнить компиляцию

После завершения настройки вы можете начать компиляцию и обычно выполнять следующие команды по порядку:

  1. make bzImage
  2. make modules
  3. make modules_install
  4. make install

Если особых обстоятельств нет, вы можете перезапустить после выполнения приведенных выше команд по порядку. Здесь мы на основе Grub Linux и посмотрим на интерфейс при запуске:

img

Выберите второй пункт:

img

Здесь я пытаюсь скомпилировать и установить два ядра, одно из которых - версия 3.16.48, а другое - версия 4.13.4. Старое ядро ​​- версия 3.16.0. Вы можете видеть, что в grub есть дополнительное ядро, которое мы скомпилировали и установили. , Просто выберите первый пункт:

Новое ядро ​​было успешно заменено.

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

Причина этого явления заключается в том, что сгенерированный файл образа initrd слишком большой, намного больше исходного файла ядра, около 300 МБ, а исходный файл - всего около 50 МБ.
В результате этого будет недостаточно памяти.
нашел решение. Виноват в том, что файл initrd.img-4.4.154 в каталоге / boot слишком большой. Это был оригинальный файл initrd.img-4.4.0-87-generic. От пяти до десяти раз.

Значение initrd - это инициализированный RAM-диск. RAM-диск - это диск, который имитируется частью памяти для доступа операционной системы. Файл initrd.img - это файл образа оперативного диска, который необходим при запуске системы.

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

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

Применимо к моей ситуации сейчас, ядро ​​было скомпилировано. Сначала мы выбираем исходное ядро ​​для входа в систему (через интерфейс загрузки (удерживая SHIFT) Дополнительные параметры для Ubuntu). Выполните следующую команду:

Моя версия здесь 4.4.154, а затем перезагрузите систему.

Способ второй

Этого избегают на этапе компиляции и установки:

Установим модуль команды

аппендикс

При компиляции ядра на шаге 4 выполняется несколько инструкций:

make bzImage - скомпилировать базовое ядро ​​(выберите * на шаге make menuconfig) и создать сжатый образ

make moudles - скомпилировать модули ядра (выберите m часть make menuconfig)

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