Instalando Slackware Linux 14.1 no Hyper-V 6.4 rodando em Windows 10

Ao fazer a instalação do Windows 10 verifiquei que o VirtualBox não funciona, assim foi necessário a instalação do Hyper-V. Porém finalizando a instalação do Slackware linux 14.1 no hyper-v e o sistema realizar o primeiro boot a tela trava na seguinte mensagem de “Kernel panic – not syncing: VFS: Unable to mout root fs on unkown-block”, que pode ser observada na imagem 01:

[caption id="attachment_199" align="aligncenter" width="642"]egoncalves-slackware-hyperv-001 Imagem 01: Slackware 14.1 Kernel panic no Hyper-V 6.4 Windows 10[/caption]

Isso acontece, porque os módulos do hyper-v não são habilitados por padrão no kernel do Slackware. Para resolver isso podemos criar um initrd (initial ramdisk) com os módulos necessários e iniciar o sistema por ele. Abaixo descrevo como realizei o procedimento, caso tenha alguma dúvida ou sugestão deixe um comentário.

Caso necessite, siga os passos de instalação descrito no artigo “O Guia do Slackware”. Para instalação do sistema apenas em modo texto, no momento da seleção do pacote, observado na imagem 02, marque as seguintes categorias de pacotes: “A,AP,D,E,F,K,L,N”:

[caption id="attachment_200" align="aligncenter" width="661"]egoncalves-slackware-hyperv-002 Imagem 02: Instalação do Slackware, tela de seleção de categoria de pacotes[/caption]

Após finalizar a instalação, NÃO reinicie o sistema ainda. Digitando no terminal “fdisk -l”, listaremos as partições que acabamos de criar durante a instalação, no meu caso instalei o sistema em /dev/sda1, o qual está montado em /mnt. Vamos carregar o sistema recém instalado em /dev/sda1 utilizando o comando “chroot /mnt”, veja a imagem 03.

[caption id="attachment_202" align="aligncenter" width="661"]egoncalves-slackware-hyperv-003 Imagem 03: Listando as partições e carregando o sistema recém instalado[/caption]

Vamos executar o assistente para gerar a linha de comando para criação do initrd utilizando o script disponível em “/usr/share/mkinitrd/mkinitrd_command_generator.sh”, veja na imagem 04:

[caption id="attachment_201" align="aligncenter" width="661"]egoncalves-slackware-hyperv-004 Imagem 04: Executando o mkinitrd_command_generator.sh para gerar o initrd.gz (initial ramdisk)[/caption]

O comando retornará a linha de comando com os módulos necessários para sua configuração de hardware, onde os módulos “hv_vmbus” e “hv_storvsc” são os necessários para utilização no Hyper-V. Para a minha instalação, o comando retornado foi: “mkinitrd -c -k 3.10.17 -f ext4 -r /dev/sda1 -m hv_vmbus:hv_storvsc:mbcache:jbd2:ext4 -u -o /boot/initrd.gz”, imagem 05:

[caption id="attachment_204" align="aligncenter" width="661"]egoncalves-slackware-hyperv-005 Imagem 05: Resultado do comando mkinitrd_command_generator.sh[/caption]

Após digitar o comando gerado e pressionar ‘ENTER’, o mkinitrd irá gerar o arquivo initrd.gz na pasta /boot, o próximo passo é editar o arquivo de configuração do lilo para utilizar o arquivo initrd.gz, imagem 06:

[caption id="attachment_205" align="aligncenter" width="661"]egoncalves-slackware-hyperv-006 Imagem 06: Executando o comando mkinitrd e gerando o arquivo /boot/initrd.gz[/caption]

Localize a linha “image = /boot/vmlinuz”, observe a imagem 07:

[caption id="attachment_215" align="aligncenter" width="661"] Imagem 07: Editando o lilo.conf para utilizar o initrd.gz (initial ramdisk) criado[/caption]

E altere para “image = /boot/vmlinuz-generic-3.10.17”, vá para a próxima linha e digite “initrd = /boot/initrd.gz”, veja na imagem 08:

[caption id="attachment_217" align="aligncenter" width="661"] Imagem 08: Editando o lilo.conf para utilizar o initrd.gz (initial ramdisk) criado[/caption]

Salve e feche o arquivo. Sempre que editar o arquivo lilo.conf, execute o comando “lilo” para aplicar as alterações, veja a imagem 09:

[caption id="attachment_218" align="aligncenter" width="661"] Imagem 09: Aplicando as alterações no LILO (LInux LOader)[/caption]

Agora basta reiniciar a máquina, e o Slackware irá carregar, como pode ser visto na imagem 10:

[caption id="attachment_209" align="aligncenter" width="642"]egoncalves-slackware-hyperv-010 Imagem 10: Inicialização da máquina após realizar a configuração do initrd (initial ramdisk)[/caption]

Como pode ser observado na imagem, o sistema irá acusar algumas mensagens de “libpixman-1.so.0: cannot open shared object file: No such file or directory” ou “errir while loading shared libraries: libXft.so.2: cannot open shared object file: No such file or directory”, isso é normal e acontece porque instalamos a categoria de pacotes “L”, porém não instalamos todas as dependências do KDE, X. Assim para remover essas mensagens temos 2 opções, sendo instalar os pacotes de dependências ou remover os pacotes que não são necessários, como no meu caso vou utilizar apenas o modo texto vou remover os pacotes “pango” e o “gdk-pixbuf2”, que estão causando as mensagens de erro utilizando o comando “slackpkg remove pango gdk-pixbuf2”, imagem 11:

[caption id="attachment_210" align="aligncenter" width="642"]egoncalves-slackware-hyperv-011 Imagem 11: ‘Corrigindo’ erros de dependência na inicialização do Slackware 14.1[/caption]

O slackpkg apresenta uma tela com os pacotes indicados para remoção, onde basta pressionar enter para confirmar a remoção dos pacotes, veja na imagem 12:

[caption id="attachment_211" align="aligncenter" width="642"]egoncalves-slackware-hyperv-012 Imagem 12: Removendo pacotes no Slackware com o comando “slackpgk remove”[/caption]

Após o slackpkg finalizar a remoção dos pacotes, basta reiniciar o sistema, imagem 123

[caption id="attachment_212" align="aligncenter" width="642"]egoncalves-slackware-hyperv-013 Imagem 13: Reiniciando o sistema após a remoção dos pacotes[/caption]

Na imagem 14 podemos observar o sistema reiniciando sem as mensagens de erro:

[caption id="attachment_220" align="aligncenter" width="642"]Imagem 14: Slackware iniciando sem as mensagens de erro após as configurações Imagem 14: Slackware iniciando sem as mensagens de erro após as configurações[/caption]
  Windows Server 2012: Erro 800423F4 Windows Server Backup