Як я можу видалити скомпільоване ядро?


21

Я встановив 14.10 на своєму ноутбуку Lenovo E455.

І складено ядро ​​3.19 з наступним порядком

оскільки здавалося, що 14.10 не хоче працювати з моєю. (Я бачив повільні рухи)

Завантажено поточне ядро ​​з http://www.kernel.org/

make oldconfig
make
sudo make install

Нарешті, не вдалося завантажитися з новим ядром.

Як я можу видалити скомпільоване ядро ​​з grub та отримати відновлення?


Що ви намагалися поки вийняти, і де воно пішло не так? Де якісь повідомлення попередження чи помилки?
Девід Фоерстер

Завдяки вашій допомозі. Оговтався і чекав Ubuntu 15.XX.
Ohmygirl

Відповіді:


33

Простий метод:

Якщо компільовано методом debian, ви можете побачити встановлене ядро ​​з наступним:

dpkg --list | grep kernel-image

А потім видаліть потрібний пакет ядра за допомогою apt-get:

sudo apt-get remove kernel-image-your-kernel-image

Важкий метод:

Якщо компільовано та встановлено через make install, вам потрібно буде вручну видалити такі записи:

/boot/vmlinuz*KERNEL-VERSION*
/boot/initrd*KERNEL-VERSION*
/boot/System-map*KERNEL-VERSION*
/boot/config-*KERNEL-VERSION*
/lib/modules/*KERNEL-VERSION*/
/var/lib/initramfs/*KERNEL-VERSION*/

Потім оновіть конфігурацію grub:

sudo update-grub2

1
У мене немає каталогу / var / lib / initramfs /, але це тому, що я не маю компільованих ядер у своїй системі?
jarno

1
/var/lib/initramfs-tools/*KERNEL-VERSION*on Debian
Csaba Toth

1
Розгляньте редагування нових ядер (2018 рік), що містять: /boot/abi*KERNEL-VERSION*та/boot/retpoline*KERNEL-VERSION*
WinEunuuchs2Unix

9

Завдяки питання Ярен в тут я розробив спосіб реалізації відповіді Mudit Капила, що вимагає дуже мало введення і вловлює будь-які додаткові біти валяється

Оскільки все, що потрібно для видалення ядра, - це видалення всіх його файлів та каталогів, а всі ці файли та каталоги матимуть рядок випуску ядра на своїх шляхах, ми можемо використовувати locateдля пошуку всіх файлів із рядком звільнення ядра та видалення їх щоб видалити ядро.

(Спочатку перевірте, uname -rщоб знайти ім’я ядра, що працює в даний момент, і не забудьте його видалити)

Скажіть, ви хочете видалити ядро ​​під назвою 4.4.6-my-kernel. Ви можете знайти всі існуючі файли та каталоги (без перерахування файлів у всіх названих каталогах) locate -b -e 4.4.6-my-kernel. Додавання rm -rдо цього пункту xargsдозволяє також видаляти файли. Я додаю, -pщоб зробити xargsцілі відображення, і прошу підтвердження перед виконанням

locate -b -e 4.4.6-my-kernel | xargs -p sudo rm -r

потім введіть yдля виконання rm -rна показаних цілях. Він скаржиться на те, що файли, які не є каталогами, не існують, оскільки ви намагаєтесь видалити їх рекурсивно ( -r), але це нормально, вони все одно будуть видалені разом із каталогами та їх вмістом. Коли закінчите, просто запустіть

sudo update-grub

et voila


+1, оскільки це набирає більше файлів, ніж прийнято відповіді. Наприклад, всі dkmsречі. Я запустив би її спочатку без rmможливості просто побачити все, що буде видалено.
WinEunuuchs2Unix

Чому я не повинен видалити поточно запущене ядро? Що робити, якщо це ядро, яке я хочу видалити? Чи можна видалити поточно запущене ядро ​​без попереднього перезавантаження машини з іншим ядром?
Ліран Фунаро

1
@LiranFunaro можливо так. Дивіться мою відповідь Як я можу видалити запущене ядро ​​лише командою? що також пояснює, чому це, мабуть, не гарна ідея
Занна
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.