Instalando os Serviços de Integração do Hyper-V no CentOS 5.8 e 6.3 e Kernel 2.6.32+

Publicado por Eduardo Mozart de Oliveira em 02/03/2018

[ Hits: 6.826 ]

Blog: http://www.eduardomozartdeoliveira.blogspot.com/

 


Instalando os Serviços de Integração do Hyper-V no CentOS 5.8 e 6.3 e Kernel 2.6.32+



Os Serviços de Integração do Hyper-V possibilita aos computadores virtualizados acesso à internet e a discos SCSI.

Ele não acompanha o Windows, sendo necessário baixar a ISO no Centro de Downloads da Microsoft em:
Antes de instalá-lo no CentOS 5.8 e 6.3, recomendo atualizar o sistema operacional usando o comando:

# yum update

Se estiver sem internet, use o adaptador de rede herdado.

Você pode identificar a versão do Linux Integration Services instalada no sistema lendo as informações de um dos módulos instalados no sistema com o comando:

# modinfo hv_vmbus

Após o download, inicie o computador virtual e, no menu superior, expanda **Mídia > Unidade de DVD > Inserir disco...** e selecione o arquivo ISO baixado.

Agora, precisamos montar o leitor virtual para podermos acessar o instalador.

# mount /dev/cdrom /media

Se você está atualizando o Serviço de Integração, é possível que esteja sem acesso ao Drive de CD/DVD. Isso por que a Microsoft desinstalou o módulo IDE padrão do CentOS (ata_piix) substituindo-o pelo dela (hv_storvsc), removendo o suporte ao Drive de CD/DVD. (O serviço de integração não era para aumentar a compatibilidade ao invés de diminuí-la?). Se a mensagem "mount: você precisa especificar o sistema de arquivos" aparecer, restaure o módulo antigo usando o comando:

# insmod /lib/modules/$(uname -r)/kernel/drivers/ata/ata_piix.ko

Precisamos acessar o diretório de acordo com a versão do CentOS usada. Acessaremos o diretório RHEL63. Você pode usar o comando **ls -la** para exibir todos os diretórios disponíveis.

# cd /media/RHEL63 # ou RHEL58
Linux: Instalando os Serviços de Integração do Hyper-V no CentOS 5.8 e 6.3 e Kernel 2.6.32+
Use ./install.sh ou ./upgrade.sh dependendo da operação que você está realizando (você pode listar os arquivos disponíveis no diretório com o comando **ls**). Após a instalação, reinicie o sistema e pronto! Estamos com os módulos instalados e com acesso aos recursos do Hyper-V!

Distribuições com Kernel 2.6.32+

Nota: a partir do Ubuntu 12.04 LTS, os módulos do Hyper-V (2.1) são instalados por padrão. Sim, há uma versão mais recente (3.4) disponível, mas ela é destinada apenas ao Red Hat (e distribuições derivadas) e SUSE Linux, únicas distribuições suportadas oficialmente pela Microsoft conforme a documentação oficial no TechNet: http://technet.microsoft.com/en-us/library/cc794868(v=ws.10).aspx

Você pode habilitar os módulos (“drivers“) do Hyper-V no Ubuntu lendo o post escrito pelo pessoal do TechNet, da Microsoft, disponível em: http://social.technet.microsoft.com/wiki/contents/articles/961.aspx

Mas toda vez que iniciava os módulos, o Linux deixava de iniciar.

Se isso acontecer com você, use o Adaptador de rede herdado (a internet funcionará se o módulo "Tulip" estiver disponível) e não use o Serviço de Integração.

Se puder, atualize o sistema antes de continuar com os comandos:

# apt-get update (atualiza lista de servidores com atualizações)
# apt-get upgrade (realiza atualização dos componentes encontrados)

A versão mais recente do Kernel pode ser instalada com os comandos:

# apt-get install linux-headers-server linux-image-server linux-server
# apt-get autoremove
(remove versão antiga do Kernel)
# reboot

O comando pode mudar de acordo com a versão do Ubuntu instalada (desktop ou servidor), mas a lista de sugestões de atualizações pode ser vista ao executamos apt-get upgrade no terminal.

Pensava que era devido a falta do Serviço de Integração que a tela ficava lenta, na qual "linha por linha" era escrita no terminal. Mas não, é devido ao módulo de vídeo utilizado por padrão. Precisamos desabilitá-lo para que o Ubuntu procure por outro, para que cada linha seja escrita instantaneamente e pare a lentidão! Para isso, abra o arquivo "/etc/modprobe.d/blackilist-framebuffer.conf" e adicione na lista de exclusão de módulos de vídeo a linha:

# blacklist vga16fb

Se a mensagem abaixo aparecer na parte superior da tela de logon após a reinicialização:

piix4_smbus 0000.00.07.0: SMBus base address uninitialized – upgrade bios or use force_addr=0xaddr

É por que o driver "hv_vmbus" substituiu o driver SMBus padrão do Ubuntu pelo do Hyper-V. Podemos desabilitar o driver padrão e usar apenas o disponibilizado pelo Hyper-V editando o arquivo "/etc/modprobe.d/blacklist.conf" e adicionando a linha:

blacklist i2c_piix4

Você pode verificar quais módulos do Hyper-V estão disponíveis usando o comando:

# lsmod |grep hv

Pode usar o comando "modinfo [resultado encontrado]" para ver as informações sobre o módulo, como versão, por exemplo.

Se você recebe, antes de aparecer a tela de logon, a mensagem "error: no such disk", pode desconsiderar a mensagem, ok? Ela ocorre devido ao fato do Hyper-V não nos deixar remover o disquete nas opções da VM. Como não há disco presente, o grub retorna a mensagem acima.

Com a atualização para o kernel "2.6.32-279.11.1.el6" (i686), o CentOS não iniciava, mostrando uma mensagem de **kernel panic**. Isso não ocorreu quando a atualização foi feita no CentOS x86_64.

Ele ocorre devido ao módulo IDE padrão do CentOS (ata_piix) ser substituído pelo do Hyper-V (hv_storvsc) e, por este não ser compatível com a nova versão do Kernel, a VM deixou de iniciar.

Antes da versão 3.1 dos Serviços de Integração, toda vez que atualizássemos o Kernel precisávamos desinstalar os Serviços de Integração, atualizar o Kernel e então reinstalar os Serviços. Se não fizéssemos isso, teríamos "tela-azul" (kernel panic), conforme a KB2387594 da Microsoft: http://support.microsoft.com/kb/2387594

Para não precisarmos fazer todo este processo, precisávamos instalar os Serviços de Integração manualmente usando o DKMS (Dynamic Kernel Module Support). Como o nome indica, ele permite que adicionemos módulos ao Linux sem que estes estejam integrados ao Kernel. Assim, eles se mantém mesmo após a atualização do Kernel. Com os pacotes RPM, este processo é automático e não precisa ser realizado.

Para solucionarmos o problema, precisamos refazer o pacote RPM para o novo kernel.

Primeiro, instale o grupo "Development Tools" com o YUM. Ele possui todas as dependências que o rpm-build (utilitário que usaremos para refazermos o pacote) necessita para funcionar, como o "make", "gcc" e "kernel-devel".

# yum groupinstall "Development Tools"
# yum install rpm-build


Se está sem acesso a internet, use o adaptador de rede herdado.

Após a instalação, precisamos criar os diretórios que o rpm-build usa com o comando:

# mkdir ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

Precisamos definir a macro para o rpm-build. Podemos comparar uma macro com a variável %PATH% do Windows, que indica ao Windows onde procurar um executável quando executamos um comando no prompt. No caso, precisamos definir uma macro que indique o diretório onde o rpm-build se encontra. Mais informações sobre macros e o rpmbuild podem ser encontradas em: http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-customizing-rpm.html

# echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

Com o rpmbuild instalado e configurado, podemos começar!

Coloque o disco de integração do Linux na unidade de CD-ROM, acesse o diretório de acordo com a versão da sua distribuição e instale o código fonte do Hyper-V com o comando:

# rpm -ivh microsoft-hyper-v-rhel63.3.4-1.20120727.src.rpm

Após a instalação, será criado um arquivo **spec** no diretório ~/rpmbuild/SPECS. Este arquivo é um arquivo de instrução, que indica como um determinado pacote RPM tem que ser feito, sendo que o rpmbuild somente segue as instruções presentes neste arquivo.

Para refazermos o pacote, acesse o diretório SPECS em rpmbuild e use o comando:

# rpmbuild -bb microsoft-hyper-v.spec

O argumento -bb indica que queremos apenas refazer o pacote de instalação sem fazermos um pacote rpm que contém o código-fonte. Uma lista de opções disponíveis pode ser encontrada em: http://www.rpm-based.org/how-to-create-rpm-package-p4-building-the-package 

Agora, precisamos apenas instalar os novos pacotes. Para isso, acesse o diretório ~/rpmbuild/RPMS e use os comandos (necessário usar nesta ordem):

# rpm -ivh kmod*
# rpm -ivh microsoft*


Após a instalação, reinicie o sistema e pronto!

Referências

* Installing Linux on Hyper-V. Disponível em: <http://codechief.wordpress.com/2012/04/13/installing-linux-on-hyper-v/>

* CD-ROM device is no longer accessible after installing the Hyper-V Linux Integration Services in a Red Hat or CentOS virtual machine. Disponível em: <http://support.microsoft.com/kb/2600152>

* Serious issues with Kernel 2.6.32-279.11.1.el6. Disponível em: <http://mail.blueonyx.it/pipermail/blueonyx/2012-October/011639.html>

* Fix: piix4_smbus error in Virtual Machines. Disponível em: <http://automation.binarysage.net/?p=1466>

* Fix: Slow Refresh Rate On Hyper-V console running Ubuntu 10.04 LTS. Disponível em: <http://jasonbos.co/fix-slow-refresh-rate-on-hyper-v-console-runn>

* Install Ubuntu10.04 on LVM :: error: no such disk. Disponível em: <https://askubuntu.com/questions/179360/install-ubuntu10-04-on-lvm-error-no-such-disk>

* RHEL 6.x / Linux IC 3.x + dkms. Disponível em: <http://social.technet.microsoft.com/Forums/en-US/linuxintegrationservices/thread/65486bf2-34a7-4d1a-8eea-6b0066373451>

Outras dicas deste autor

Instalando os Add-ons do VirtualBox no CentOS

Acessando desktop do Debian 8 (Jessie) remotamente através do TightVNC

Como criar pacotes RPM ou DEB pelo código-fonte utilizando FPM (Ruby on Rails)

Configurando Proxy no Eclipse IDE

Instalando e Configurando o Google Earth

Leitura recomendada

Raid na instalação do Slackware

Como instalar o modem onboard HSP56 no Slackware 10

Deixando as fontes do Debian superb

Traduzindo programas no Ubuntu 7.04

WMA no XMMS

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário