Самый быстрый способ установки собственного ядра на виртуальную машину

Самый быстрый способ установки собственного ядра на виртуальную машину

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

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

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

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

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

решение1

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

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

Если у вас есть только несколько пакетов для распространения, размещение их на хосте в локальном кэше пакетов ad-hoc работает так же хорошо. Поделитесь этим местоположением с гостями с помощью 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пакеты будут находиться в каталоге выше корня сборки.

Связанный контент