5

У меня есть собственное ядро, которое должно быть установлено на нескольких виртуальных машинах.

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

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

И хостовая, и гостевая ОС - это Ubuntu 14.04, и я использую KVM в качестве гипервизора.

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

1 ответ1

0

Я бы порекомендовал использовать систему упаковки вашего дистрибутива. Создайте свой собственный пакет ядра, и затем вы сможете распространять его на свои виртуальные машины любым удобным способом. Многие дистрибутивы предоставляют инструкции о том, как это сделать с помощью предпочитаемого им менеджера пакетов (см. Ниже для Ubuntu).

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

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


В Ubuntu сборка собственного пакета ядра сводится к следующему:

  1. Получить источник

    • apt-get source linux-image-$(uname -r) ИЛИ
    • git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<releasename>.git
  2. Подготовьте вашу среду сборки

    • sudo apt-get build-dep linux-image-$(uname -r)
  3. Изменить настройки ядра

    • chmod a+x debian/rules debian/scripts/* debian/scripts/misc/*
    • fakeroot debian/rules clean
    • fakeroot debian/rules editconfigs (просмотреть каждый)
    • Добавьте локальный идентификатор версии (например, +myVer1) в конец первого номера версии в debian.master/changelog чтобы apt распознал его как более новое ядро, чем версия официального репозитория.
  4. Собрать ядро

    • fakeroot debian/rules clean
    • fakeroot debian/rules binary-headers binary-generic binary-perarch (быстрая сборка) ИЛИ
    • fakeroot debian/rules binary (медленнее, если нужны linux-tools или lowlatency)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .