- Linux и Windows: помощь админам и пользователям
- Администрируем и настраиваем Windows, Linux.
- Как изменить ядро Ubuntu Linux
- Изменение загружаемого по умолчанию ядра в Ubuntu
- Как я могу загрузиться с более старой версией ядра?
- Управляющие клавиши
- Обновление grub для загрузки предыдущего ядра
- Настройка параметров ядра в Grub
- Настройка параметров ядра Grub в системе
- Параметры загрузки ядра в grub.cfg
- Параметры ядра Grub при загрузке
Linux и Windows: помощь админам и пользователям
Администрируем и настраиваем Windows, Linux.
Как изменить ядро Ubuntu Linux
Изменение ядра не для каждого. Пожалуйста обратите внимание, что если вы попробуете сделать это, вы можете разрушить вашу систему.
Есть масса причин, по которым вы можете захотеть изменить ядро. Вы можете захотеть обрезать ядро, для того чтобы в нем были только необходимые сервисы, особенно если у вас запущен сервер и выделенное устройство. Вы также можете захотеть пропатчить ваше ядро для поддержки оборудования, которое в настоящий момент не поддерживается.
Эта статья не объясняет как патчить ваше ядро, только как изменить текущее. Я попробую объяснить как пропатчить ядро в следующих статьях, и какие практические причины могут быть для этог.
Для начала, вам нужно посмотреть какая версия ядра у вас сейчас. Используйте для этого команду uname :Теперь вам необходимо установить исходные коды Linux для вашего ядра, обратите внимание что у меня ядро 2.6.17-10. Вы можете заменить номер ядра на тот, который используется у вас. Вам также необходимо установить библиотеки и некоторые дополнительные программы, которые помогут вам при компиляции.
Если вам любопытно куда инсталлируются исходные коды ядра, вы можете использовать команду dpkg , которая расскажет вам это. Ниже вывод с моей системы:
Вы можете увидеть что исходники устанавливаются в директории /usr/src в архивированном файле.
Для облегчения дальнейших действий, вы можете перейти в режим root используя команду sudo для открытия нового шелла. Есть другие пути для этого, но я предпочитаю этот путь.
Теперь смените директорию. Заметьте что вам необходимо установить утилиту bunzip если её нет в вашей системе.
Сделайте копию текущей конфигурации ядра перед изменением. Обратите внимание, что символ `находиться под символом тильда
Теперь мы можем запустить утилиту, которая позволит нам изменить ядро:
Сперва, перейдем в меню Load an Alternate Configuration File , и загрузим файл .config (просто нажав enter).
Теперь находясь внутри утилиты, мы можем установить опции для настройки ядра. Навигация очень простая. Я решил выбрать Networking и нажал клавишу Enter для перехода в эту категорию:
Amateur Radio Support ? Зачем мне это? Вы можете видеть символ *, который означает что это есть в ядре.
Нажав клавишу ?, вы перейдете в справку для выбранного элемента:
Итак, я собираюсь отключить это немедленно. Зачем вообще это установлено в моем ядре? Я нажимаю Esc для выхода из окна справки, и потом нажму N для удаления этого элемента из ядра.
Когда вы закончите делать изменения, которые вам нужны, нажмите Exit и сохраните конфигурационный файл.
Теперь конфигурация готова для компиляции. Сперва сделаем очистку, просто для того чтобы убедиться, что все готово к компиляции.
Далее мы действительно компилируем ядро. Это делается чертовски долго, так что пойдите займитесь чем нибудь ещё.
Этот процесс создаст два .deb файла в директории /usr/src . Файл linux-image**** содержит актуальный образ ядра, а другой файл содержит измененный. Имена файлов могут быть отличными в вашей системе.
Пожалуйста обратите внимание что когда вы запустите следующие команды, вы установите новое ядро как ядро по умолчанию. Это может разрушить вашу систему. Если ваша машина не загружается, вы можете нажать Esc и меню загрузки GRUB и выбрать старое ядро. Вы можете заблокировать неверное ядро в /boot/grub/menu.lst и попробовать скомпилировать его заново.
Теперь перегрузите вашу машину. Если все работает, должно загрузиться новое измененное ядро. Проверьте это, испольльзуя uname .
Я планирую написать серию статей о изменении ядра, так что подпишитесь на рассылку для обновлений.
Источник
Изменение загружаемого по умолчанию ядра в Ubuntu
В интернете есть множество разных статей о том как изменить загружаемое по умолчанию ядро в Ubuntu 18.04 и 20.04
В основном все статьи описывают сложный и не удобный способ через указание ID подменю в опции GRUB_DEFAULT файла /etc/default/grub, но есть способ проще.
Исходные данные: ОС Ubuntu 18.04 и 20.04
Задача: Смена ядра по умолчанию в Ubuntu 18.04 и 20.04
По умолчанию если мы обновляем Linux-ядро, то Ubuntu сохраняет предыдущую версию и в случае каких-то проблем с новым ядром мы всегда можем загрузить более старое, но чтобы это сделать нужно попасть в меню загрузчика. Попасть мы туда можем если во время загрузки сервера будем постоянно (часто) нажимать клавишу TAB и меню GRUB будет показано на экране, далее мы идем в пункт «Advanced options for Ubuntu» и выбираем там нужное нам Linux-ядро. Все это хорошо, но нам нужно чтобы предыдущая версия Linux-ядра выбиралась сама и была использована GRUB по умолчанию.
Для достижения нашей цели мы будем редактировать файл /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 секунды.
Так же я хочу упомянуть про опцию GRUB_DISABLE_SUBMENU, которая в случае указания ‘y’ убирает в меню GRUB иерархию и делает его плоским. Мы не будем использовать эту опцию, но если Вы захотите, то можете это сделать. Опция ниже:
Итого файл /etc/default/grub стал таким (комментарии удалены):
Далее нужно сохранить параметры загрузчика, вызываем команду:
После этого можно перезагрузить сервер и сразу после прохождения процедуры POST мы попадем в меню загрузчика GRUB, см. скриншот ниже:
Ubuntu 20.04 (GRUB)
В нижней части интерфейса GRUB мы видим тикающее время, те самые 30 секунд, а в верхней части в меню выбран первый пункт, чуть ниже присутствует пункт «Advanced options for Ubuntu». Туда то нам и нужно успеть зайти (жмем стрелку вниз и Enter), см. скриншот ниже:
Ubuntu 20.04 (GRUB submenu Advanced)
Мы видим список доступных для загрузки Linux-ядер. Выбираем например ядро 5.4.0-52 и жмем Enter. В этот момент GRUB запомнит Ваш выбор и будет использовать его по умолчанию при следующих загрузках. А нам это и нужно.
После загрузки мы можем проверить, что действительно загрузилось ядро 5.4.0-52 командой uname:
При следующих перезагрузках сервера GRUB выведет нам меню, но по умолчанию будет уже выбран пункт «Advanced options for Ubuntu», а в нем то Linux-ядро, что мы выбрали ранее.
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Источник
Как я могу загрузиться с более старой версией ядра?
Последнее ядро вызывает проблемы с моим звуком, которое отлично работало со старой версией. Поскольку у меня установлена только Ubuntu, Grub не отображается во время загрузки. Как я могу вручную выбрать версию своего ядра при загрузке?
Самый простой способ отобразить ваш Grub — это нажать и удерживать SHIFT кнопку во время загрузки.
В качестве альтернативы вы всегда можете отобразить Grub без загрузки какого-либо конкретного ядра:
изменить GRUB_TIMEOUT на -1 и закомментировать GRUB_HIDDEN_TIMEOUT
Удерживая нажатой клавишу Shift во время загрузки, появится меню Grub. Теперь вы можете выбрать более старую версию ядра.
Для выбора более старого ядра в качестве ядра по умолчанию, пожалуйста, смотрите этот пост
Во время загрузки, когда появляется GRUB с записями, выберите вторую запись, т. Е. В разделе « Дополнительные параметры» для Ubuntu вы можете увидеть различные старые версии ядра, которые были установлены ранее, вы можете выбрать одну из них, которая вам подходит. В противном случае вы идете в grub.cfg и вставляете нужную версию ядра поверх установленной в данный момент записи ядра. В обоих случаях это работает
Если у вас есть несколько ядер в вашей системе, вы можете вручную установить, какая версия ядра будет запускаться:
Перезагрузите компьютер с нажатой кнопкой Shift для отображения GRUB после запуска BIOS. Вы увидите что-то вроде: стартовая страница GRUB
Выберите «Дополнительные параметры для Ubuntu» и запомните индекс этой строки меню (отсчет начинается с 0). На картинке индекс равен 1
Выберите конкретное ядро для загрузки, а также запомните индекс этой строки меню (отсчет начинается с 0). На картинке индекс выбранного ядра равен 2
Запустить систему. Это действие для одной загрузки на конкретном ядре. Если вы хотите все время начинать с конкретного ядра, вы должны сделать следующие шаги:
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. Проверьте версию ядра после перезагрузки:
Этот параметр определяет, как долго будет отображаться экран без меню GRUB 2. Пока экран пуст, пользователь может нажать любую клавишу для отображения меню.
Поведение по умолчанию — скрывать меню, если присутствует только одна операционная система. Если пользователь только с Ubuntu желает отобразить меню, поместите символ # в начале этой строки, чтобы отключить функцию скрытого меню.
Пожалуйста, установите предыдущее ядро с помощью следующей команды:
Затем перезагрузите компьютер. Вам будет предложено выбрать ядро.
Сразу после появления заставки BIOS / UEFI во время загрузки с BIOS быстро нажмите и удерживайте Shift клавишу, которая вызовет меню GNU GRUB. (Если вы видите логотип Ubuntu, вы пропустили точку, в которой вы можете войти в меню GRUB.) С помощью UEFI нажмите (возможно, несколько раз) Esc клавишу, чтобы перейти в меню GRUB. Иногда заставка производителя является частью загрузчика Windows, поэтому, когда вы включаете компьютер, он переходит прямо к экрану GRUB, а затем нажимать Shift не нужно.
На экране GRUB выберите Дополнительные параметры для Ubuntu и нажмите Enter .
Появится новый фиолетовый экран со списком ядер. Используйте клавиши ↑ и ↓, чтобы выбрать, какая запись будет выделена. Нажмите Enter для загрузки выбранного ядра, «e» для редактирования команд перед загрузкой или «c» для командной строки. Нажмите Esc, чтобы вернуться в предыдущее меню.
Ответ Джеккобека описывает способ просмотра grub.cfg и прокрутки исходного кода для поиска номера меню. Более простой способ с этим сценарием :
Примечание: в этом примере grub-menu.sh short был использован для вызова сценария. short Параметр подавляет эти строки:
Управляющие клавиши
После прокрутки записей (вы можете использовать колесо прокрутки мыши или клавиши со стрелками) нажмите, Escape чтобы вернуться в командную строку.
Если вы нажмете Enter ассоциированные команды Grub для записи отображаются:
Обновление grub для загрузки предыдущего ядра
Набор команд Grub существует для каждого пункта меню. Все скомпилированные записи хранятся в /boot/grub/grub.cfg файле.
В этом примере мы хотим, чтобы номер меню `1> 9> был установлен по умолчанию, поэтому мы используем:
Источник
Настройка параметров ядра в Grub
Ядру Linux можно передавать различные параметры для изменения стандартного поведения или информирования о нестандартной конфигурации оборудования. Делать это можно непосредственно перед загрузкой ядра или уже во время выполнения. Во время выполнения параметры ядра можно установить отредактировав файлы в подсистеме /proc или /sys. Перед загрузкой параметры передаются с помощью загрузчика Grub.
Если вы хотите изменить или добавить параметры ядра Linux с помощью Grub вам необходимо отредактировать файл шаблона конфигурации или конфигурационный файл загрузчика. Расположение и название файла шаблона зависит от конкретного дистрибутива.
Настройка параметров ядра Grub в системе
Файл шаблона конфигурации Grub в Debian подобных системах находится по адресу /etc/default/grub. Добавьте параметр ядра в виде имя = значение в переменную GRUB_CMDLINE_LINUX_DEFAULT:
sudo vi /etc/default/grub
Здесь же вы можете удалить нежелательные параметры ядра Grub установленные по умолчанию, например, заменить quiet на verbose для подробного вывода информации о процессе загрузки. Затем выполните следующее чтобы обновить конфигурацию загрузчика:
Если такой команды не существует нужно установить пакет grub2-common:
sudo apt install grub2-common
В Fedora и CentOS скрипта update-grub для обновления конфигурации загрузчика нет, поэтому надо вручную сгенерировать новый конфигурационный файл:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Лучше всего добавлять параметры загрузки ядра linux именно этим способом, но давайте рассмотрим ещё несколько альтернативных вариантов
Параметры загрузки ядра в grub.cfg
Если вы не можете воспользоваться способом, описанным выше можно отредактировать непосредственно конфигурационный файл загрузчика который находится по пути /boot/grub/grub.conf. В этом файле нужно найти секцию отвечающую за стандартную загрузку Linux. Обычно, это первая секция menuentry:
Найдите её, а затем в этой секции найдите строчку linux /boot/vmlinuz. в конец этой строки вы и можете дописать свои параметры, в таком же формате. Затем сохраните изменения в файле и перезагрузите компьютер. Ядро загрузится с новыми параметрами. Если вас интересовал вопрос какой командой загружается ядро linux в grub, то это именно команда linux. Синтаксис её такой:
linux параметры_ядра
Этот способ подойдет почти для любого дистрибутива, но более правильным путем будет использовать шаблон конфигурации где это возможно, так как при следующем обновлении дистрибутива все ваши настройки в этом файле могут быть стёрты.
Параметры ядра Grub при загрузке
Загрузчик Grub позволяет также редактировать пункты меню перед запуском системы. Для этого в меню Grub выберите нужный пункт и нажмите клавишу E. Откроется редактор текущей секции меню. Здесь надо, аналогично предыдущему способу найти строчку linux /boot/vmlinuz. и дописать в конец ваши параметры ядра Linux, например, init=/bin/bash:
Затем нажмите кнопку F10 или Ctrl+X чтобы продолжить загрузку с новыми параметрами. Эти параметры будут актуальны до следующей перезагрузки. На этом всё. Надеюсь информация из статьи была для вас полезной.
Источник