Ubuntu под Hyper-V: Какой ядро оставить и как избавиться от остальных?

Вопрос или проблема

Недавно мне нужно было быстро настроить новую виртуальную машину с Ubuntu 18.04 TLS под Hyper-V (это не мой обычный инструмент, но на этот раз я не могу использовать ничего, кроме Hyper-V).

Хорошо, я сделал установку (я выбрал установку ‘hwe’ во время начального меню установки), и пока пытался найти способ использовать интеграцию Hyper-V, я обнаружил, что мне нужно выполнить следующие действия:

echo 'hv_vmbus' >> /etc/initramfs-tools/modules
echo 'hv_storvsc' >> /etc/initramfs-tools/modules
echo 'hv_blkvsc' >> /etc/initramfs-tools/modules
echo 'hv_netvsc' >> /etc/initramfs-tools/modules
apt -y install linux-virtual linux-cloud-tools-virtual linux-tools-virtual
update-initramfs -u

Хорошо, я это сделал, и всё в порядке, но как узнать, какие ядра и пакеты мне следует оставить, а какие можно удалить? Вы видите, теперь у меня много пакетов ядра, и я понимаю, что большинство из них мне не нужны:

# dpkg -l | grep linux
ii  console-setup-linux                  1.178ubuntu2.9                                  all          Linux specific part of console-setup
ii  libselinux1:amd64                    2.7-2build2                                     amd64        SELinux runtime shared libraries
ii  linux-base                           4.5ubuntu1                                      all          Linux image base package
ii  linux-cloud-tools-4.15.0-91          4.15.0-91.92                                    amd64        Linux kernel version specific cloud tools for version 4.15.0-91
ii  linux-cloud-tools-4.15.0-91-generic  4.15.0-91.92                                    amd64        Linux kernel version specific cloud tools for version 4.15.0-91
ii  linux-cloud-tools-common             4.15.0-91.92                                    all          Linux kernel version specific cloud tools for version 4.15.0
ii  linux-cloud-tools-virtual            4.15.0.91.83                                    amd64        Virtual Linux kernel cloud tools
ii  linux-firmware                       1.173.16                                        all          Firmware for Linux kernel drivers
ii  linux-generic-hwe-18.04              5.3.0.42.99                                     amd64        Complete Generic Linux kernel and headers
ii  linux-headers-4.15.0-91              4.15.0-91.92                                    all          Header files related to Linux kernel version 4.15.0
ii  linux-headers-4.15.0-91-generic      4.15.0-91.92                                    amd64        Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
ii  linux-headers-5.3.0-42               5.3.0-42.34~18.04.1                             all          Header files related to Linux kernel version 5.3.0
ii  linux-headers-5.3.0-42-generic       5.3.0-42.34~18.04.1                             amd64        Linux kernel headers for version 5.3.0 on 64 bit x86 SMP
ii  linux-headers-generic                4.15.0.91.83                                    amd64        Generic Linux kernel headers
ii  linux-headers-generic-hwe-18.04      5.3.0.42.99                                     amd64        Generic Linux kernel headers
ii  linux-headers-virtual                4.15.0.91.83                                    amd64        Virtual Linux kernel headers
ii  linux-image-4.15.0-91-generic        4.15.0-91.92                                    amd64        Signed kernel image generic
ii  linux-image-5.3.0-42-generic         5.3.0-42.34~18.04.1                             amd64        Signed kernel image generic
ii  linux-image-generic-hwe-18.04        5.3.0.42.99                                     amd64        Generic Linux kernel image
ii  linux-image-virtual                  4.15.0.91.83                                    amd64        Virtual Linux kernel image
ii  linux-modules-4.15.0-91-generic      4.15.0-91.92                                    amd64        Linux kernel extra modules for version 4.15.0 on 64 bit x86 SMP
ii  linux-modules-5.3.0-42-generic       5.3.0-42.34~18.04.1                             amd64        Linux kernel extra modules for version 5.3.0 on 64 bit x86 SMP
ii  linux-modules-extra-5.3.0-42-generic 5.3.0-42.34~18.04.1                             amd64        Linux kernel extra modules for version 5.3.0 on 64 bit x86 SMP
ii  linux-tools-4.15.0-91                4.15.0-91.92                                    amd64        Linux kernel version specific tools for version 4.15.0-91
ii  linux-tools-4.15.0-91-generic        4.15.0-91.92                                    amd64        Linux kernel version specific tools for version 4.15.0-91
ii  linux-tools-common                   4.15.0-91.92                                    all          Linux kernel version specific tools for version 4.15.0
ii  linux-tools-virtual                  4.15.0.91.83                                    amd64        Virtual Linux kernel tools
ii  linux-virtual                        4.15.0.91.83                                    amd64        Minimal Generic Linux kernel and headers
ii  util-linux                           2.31.1-0.4ubuntu3.5                             amd64        miscellaneous system utilities

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

Microsoft имеет что сказать по этому поводу:

Для версий с долгосрочной поддержкой (LTS) используйте последнее ядро виртуального оборудования (HWE) для получения актуальных служб интеграции Linux.

Чтобы установить ядро, оптимизированное для Azure, на 16.04, 18.04, 20.04 и 22.04, выполните следующие команды от имени пользователя root (или sudo):
Bash

apt-get update
apt-get install linux-azure

Хотя не совсем ясно, предназначен ли пакет linux-azure конкретно для Hyper-V или нет.

Существует также аналогичный вопрос на AskUbuntu…

Я уже долгое время ищу способ загрузить демоны Hyper-V на сервер Ubuntu 22.04, так как, похоже, моя установка не имеет их.

Единственный существующий ответ на данный момент, похоже, подтверждает, что вам действительно нужно установить linux-azure метапакет (url focal, но вы можете выбрать другие дистрибутивы по мере необходимости). Если вы убедитесь, что метапакет и все его зависимости установлены, то вы сможете удалить другие пакеты linux- cloud, generic, headers, modules и tools, если на них не зависят другие пакеты.

Ответ или решение

Чтобы очистить систему Ubuntu 18.04 под Hyper-V от лишних ядер и пакетов, вам нужно выбрать основное ядро, которое вы собираетесь использовать, и удалить остальные. Вот подробная пошаговая инструкция:

Шаг 1: Определите текущее ядро

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

uname -r

Это покажет версию используемого ядра (например, 5.3.0-42-generic).

Шаг 2: Установка выбранного ядра

Если вы уже установили linux-generic-hwe-18.04, вам не нужно ничего делать, так как вы уже находитесь на самом последнем аппаратном обеспечении, которое поддерживается для вашей версии Ubuntu. Однако, если у вас нет нужного ядра, выполните следующую команду:

sudo apt-get install linux-generic-hwe-18.04

Шаг 3: Удалите старые и ненужные ядра

Теперь вам нужно удалить старые ядра. Для этого выполните следующие команды:

  1. Сначала посмотрите, какие ядра у вас установлены:
dpkg -l | grep linux-image
  1. Выберите все ядра, которые не являются текущим или последним установленным ядром (из шага 2). Запомните их версии (например, 4.15.0-91-generic).

  2. Удалите ненужные ядра с помощью команды apt-get purge. Например:

sudo apt-get purge linux-image-4.15.0-91-generic

Повторите эту команду для каждого старого ядра, которое вы хотите удалить.

Шаг 4: Очистка оставшихся пакетов

Поскольку удаление старых ядер может оставить зависимые пакеты, рекомендуется удалить их с помощью команды:

sudo apt-get autoremove

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

Шаг 5: Удаление остальных файлов

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

sudo apt-get purge linux-headers-4.15.0-91-generic

Используйте dpkg -l | grep linux-headers для поиска заголовков, которые вы можете удалить.

Шаг 6: Обновление начального образа

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

sudo update-initramfs -u

Шаг 7: Перезагрузка системы

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

sudo reboot

Заключение

Теперь ваша система Ubuntu под Hyper-V должна быть освобождена от лишних пакетов ядра и готова к работе с выбранным ядром. Следите за обновлениями и периодически проверяйте установленные ядра, чтобы избежать накопления старых версий в будущем.

Оцените материал
Добавить комментарий

Капча загружается...