Я бы порекомендовал использовать систему упаковки вашего дистрибутива. Создайте свой собственный пакет ядра, и затем вы сможете распространять его на свои виртуальные машины любым удобным способом. Многие дистрибутивы предоставляют инструкции о том, как это сделать с помощью предпочитаемого им менеджера пакетов (см. Ниже для Ubuntu).
Если вам часто приходится перестраивать ядро (и / или другое программное обеспечение), вы можете создать локальный репозиторий пакетов (например, на хосте) для добавления в список репозиториев гостей. Тогда гости смогут вытащить любые новые пакеты, как только они будут доступны.
Если у вас есть только несколько пакетов для распространения, размещение их на хосте в специальном локальном кэше пакетов работает так же хорошо. Поделитесь этим местоположением с гостями с помощью Samba или просто rsync
пакетов вручную, когда это необходимо.
В Ubuntu сборка собственного пакета ядра сводится к следующему:
Получить источник
apt-get source linux-image-$(uname -r)
ИЛИ
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<releasename>.git
Подготовьте вашу среду сборки
sudo apt-get build-dep linux-image-$(uname -r)
Изменить настройки ядра
chmod a+x debian/rules debian/scripts/* debian/scripts/misc/*
fakeroot debian/rules clean
fakeroot debian/rules editconfigs
(просмотреть каждый)
- Добавьте локальный идентификатор версии (например,
+myVer1
) в конец первого номера версии в debian.master/changelog
чтобы apt
распознал его как более новое ядро, чем версия официального репозитория.
Собрать ядро
fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic binary-perarch
(быстрая сборка) ИЛИ
fakeroot debian/rules binary
(медленнее, если нужны linux-tools или lowlatency)
Если сборка завершится успешно, ваши пользовательские пакеты .deb
будут находиться в каталоге над корнем сборки.