
Tenho um kernel personalizado que precisa ser instalado em várias máquinas virtuais.
Uma maneira de fazer isso é transferir a fonte para cada VM e depois compilar e instalar.
Gostaria de saber se existe uma maneira mais rápida de compilar no host e simplesmente transferir algum arquivo ou instalar o kernel através de arquivos host.
Os sistemas operacionais host e convidado são Ubuntu 14.04 e estou usando o KVM como hipervisor.
Eu usei issolinkpara compilar e instalar o kernel.
Responder1
Eu recomendo usar o sistema de empacotamento da sua distribuição. Crie seu pacote de kernel personalizado e então você poderá distribuí-lo para suas VMs da maneira mais fácil. Muitas distribuições fornecem instruções sobre como fazer isso com seu gerenciador de pacotes preferido (veja abaixo para o Ubuntu).
Se você reconstruir o kernel (e/ou outro software) com frequência, poderácrie um repositório de pacotes local(por exemplo, no host) para adicionar à lista de repositórios de convidados. Assim, os convidados poderão retirar novos pacotes assim que estiverem disponíveis.
Se você tiver apenas alguns pacotes para distribuir, colocá-los no host em um cache de pacotes local ad-hoc também funciona. Compartilhe este local com os convidados com o Samba, ou simplesmente rsync
os pacotes manualmente quando necessário.
No Ubuntu,construindo um pacote de kernel personalizadose resume a:
Obtenha a fonte
apt-get source linux-image-$(uname -r)
OUgit clone git://kernel.ubuntu.com/ubuntu/ubuntu-<releasename>.git
Prepare seu ambiente de construção
sudo apt-get build-dep linux-image-$(uname -r)
Modifique a configuração do seu kernel
chmod a+x debian/rules debian/scripts/* debian/scripts/misc/*
fakeroot debian/rules clean
fakeroot debian/rules editconfigs
(passe por cada um)- Adicione um identificador de versão local (por exemplo,
+myVer1
) ao final do primeiro número de versão paradebian.master/changelog
reconhecêapt
-lo como um kernel mais recente que a versão do repositório oficial.
Construa o kernel
fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary-generic binary-perarch
(construção rápida) OUfakeroot debian/rules binary
(mais lento, se forem necessárias ferramentas Linux ou baixa latência)
Se a compilação for bem-sucedida, seus .deb
pacotes personalizados estarão no diretório acima da raiz da compilação.