VirtualBox (Português)/Install Arch Linux as a guest (Português)

From ArchWiki

Tango-preferences-desktop-locale.pngEste artigo ou esta seção precisa de tradução.Tango-preferences-desktop-locale.png

Notas: Esta página foi movida de VirtualBox, mas há uma pequena falta de sincronia em relação à página em inglês VirtualBox/Install Arch Linux as a guest. (Discuta em Talk:VirtualBox (Português)/Install Arch Linux as a guest (Português)#)

Este artigo trata sobre a instalação do Arch Linux no VirtualBox.

Inicialize a mídia de instalação do Arch por meio de uma das unidades virtuais da máquina virtual. Em seguida, conclua a instalação de um sistema Arch básico, conforme explicado no Guia de instalação.

Instalação no modo EFI

Se você deseja instalar o Arch Linux no modo EFI dentro do VirtualBox, você deve alterar o modo de firmware da máquina virtual.

Para habilitar EFI para uma máquina virtual usando a interface gráfica, abra as configurações da máquina virtual, escolha o item Sistema no painel à esquerda e a aba Placa-mãe no painel direito, e marque a caixa de seleção Habilitar EFI (sistemas especiais apenas).

Alternativamente, o mesmo pode ser alcançado a partir da linha de comando usando VBoxManage:

$ VBoxManage modifyvm "Nome da máquina virtual" --firmware efi

efi vai definir o firmware da máquina virtual para EFI com número de bits correspondendo à CPU da máquina virtual. Para obter um número de bits EFI específico, defina o firmware para efi64 para EFI x86_64 ou efi32 para EFI IA32.

Após selecionar o kernel no menu da mídia de instalação do Arch Linux, a mídia irá travar por um minuto ou dois e continuará a inicializar o kernel normalmente depois. Seja paciente.

A partir do VirtualBox 6.1, foi corrigido o problema de esquecer o conteúdo da NVRAM no desligamento. Prossiga com a instalação, como em um sistema UEFI comum.

Instalação no modo EFI no VirtualBox < 6.1

Uma vez que o sistema e o gerenciador de boot sejam instalados, o VirtualBox tentará primeiro executar /EFI/BOOT/BOOTX64.EFI da ESP. Se essa primeira opção falhar, o VirtualBox tentará o script de shell EFI startup.nsh da raiz da ESP. Isso significa que, para inicializar o sistema, você tem as seguintes opções:

  • Iniciar o gerenciador de boot manualmente do shell EFI toda vez;
  • Mover o gerenciador de boot para o caminho padrão /EFI/BOOT/BOOTX64.EFI;
  • Criar um script chamado startup.nsh na raiz da ESP contendo o caminho para o aplicativo do gerenciador de boot, p.ex., \EFI\grub\grubx64.efi.
  • Inicializar diretamente da partição ESP usando um script startup.nsh.

Nem se incomode em usar o gerenciador de boot do VirtualBox (acessível com F2 na inicialização), pois ele é cheio de bugs e está incompleto. Ele não armazena efivars configurados interativamente. Portanto, entradas EFI adicionadas a ele manualmente no firmware (acessado com F12 no momento da inicialização) ou com efibootmgr persistirão após a reinicialização, mas são perdidas quando a VM é desligada.

Veja também UEFI Virtualbox installation boot problems.

Instalar os adicionais para convidado

As Adicionais para Convidado (Guest Additions) do VirtualBox fornecem drivers e aplicativos que otimizam o sistema operacional convidado, incluindo resolução de imagem aprimorada e melhor controle do mouse. Dentro do sistema convidado instalado, instale:

Se você estiver usando um kernel diferente do kernel linux padrão e mais antigo que Linux 5.6, você deve instalar o pacote virtualbox-guest-dkms[link quebrado: replaced by virtualbox-guest-utils] junto com o(s) pacote(s) de headers apropriado(s) para o(s) seu(s) kernel(s) instalado(s) (p.ex., linux-lts-headers para linux-lts). [1] Quando o VirtualBox ou o kernel é atualizado, os módulos do kernel serão recompilados automaticamente graças ao hook do pacman de DKMS.

Dica:
  • Você pode alternativamente instalar os adicionais para convidado com o ISO do pacote virtualbox-guest-iso, desde que você o tenha instalado no sistema hospedeiro. Para fazer isso, vá para o menu do dispositivo e clique em Inserir imagem de CD dos Adicionais para Convidado.
  • Para recompilar os módulos de kernel do vbox, execute rcvboxdrv como root.

Os adicionais para convidado em execução no seu convidado e o aplicativo VirtualBox em execução no seu hospedeiro devem ter versões correspondentes, caso contrário, os adicionais para convidado (como a área de transferência compartilhada) podem parar de funcionar. Se você atualizar seu convidado (por exemplo, pacman -Syu), verifique se o aplicativo do VirtualBox neste hospedeiro também é a versão mais recente. "Verificar por atualizações" na GUI do VirtualBox às vezes não é suficiente; verifique o site VirtualBox.org.

Definir a melhor resolução de framebuffer

Normalmente, após a instalação dos Adicionais para Convidado, um convidado Arch em tela cheia executando o X será definido para a melhor resolução para o seu monitor; no entanto, o framebuffer do console virtual será configurado para uma resolução padrão, geralmente menor, detectada pelo driver VESA personalizado do VirtualBox.

Para usar os consoles virtuais na resolução ideal, o Arch precisa reconhecer essa resolução como válida, o que, por sua vez, exige que o VirtualBox passe essas informações para o sistema operacional convidado.

Primeiro, verifique se sua resolução desejada já não é reconhecida executando o comando:

hwinfo --framebuffer

Se a resolução ideal não aparecer, você precisará executar a ferramenta VBoxManage na máquina do hospedeiro e adicionar "resoluções extras" à sua máquina virtual (em um hospedeiro Windows, vá para o diretório de instalação do VirtualBox para encontrar VBoxManage.exe). Por exemplo:

$ VBoxManage setextradata "Arch Linux" "CustomVideoMode1" "1360x768x24"

Os parâmetros "Arch Linux" e "1360x768x24" no exemplo acima devem ser substituídos pelo nome da sua VM e pela resolução desejada do framebuffer. Aliás, este comando permite definir até 16 resoluções extras ("CustomVideoMode1" a "CustomVideoMode16").

Depois, reinicie a máquina virtual e execute hwinfo --framebuffer mais uma vez para verificar se as novas resoluções foram reconhecidas pelo sistema convidado (o que não garante que todas elas funcionem, dependendo das limitações de hardware).

Nota: A partir do VirtualBox 5.2, hwinfo --framebuffer pode não mostrar qualquer saída, mas você ainda deve ser capaz de definir uma resolução personalizada seguindo este procedimento.

Finalmente, adicione um parâmetro do kernel video=resolução para definir o framebuffer para uma nova resolução, por exemplo:

video=1360x768

Além disso, você pode querer configurar seu gerenciador de boot para usar a mesma resolução. Se você usa GRUB, veja GRUB/Tips and tricks#Setting the framebuffer resolution.

Nota: Nem o parâmetro do kernel vga nem as configurações de resolução do gerenciador de boot (p.ex., GRUB_GFXPAYLOAD_LINUX do GRUB) irão corrigir o framebuffer, uma vez que eles são substituídos pelo Kernel Mode Setting. A resolução do framebuffer deve ser definida pelo parâmetro do kernel video como descrito acima.

Carregar os módulos de kernel do VirtualBox

Para carregar os módulos automaticamente, habilite vboxservice.service que carrega os módulos e sincroniza a hora do sistema do convidado com o hospedeiro.

Para carregar os módulos manualmente, digite:

# modprobe -a vboxguest vboxsf vboxvideo

virtualbox-guest-dkms[link quebrado: replaced by virtualbox-guest-utils] usa systemd-modules-load.service para carregar seus módulos quando da inicialização.

Nota: Se você não quer que os módulos do VirtualBox sejam carregados no momento da inicialização, você tem que usar mask para mascarar o padrão /usr/lib/modules-load.d/virtualbox-guest-dkms.conf criando um arquivo vazio (ou um link simbólico para /dev/null) com o mesmo nome em /etc/modules-load.d/.

Iniciar os serviços de convidados do VirtualBox

Após o passo de instalação bastante grande lidando com módulos de kernel do VirtualBox, agora você precisa iniciar os serviços de convidado. Os serviços de convidado são na verdade apenas um executável binário chamado VBoxClient que irá interagir com o seu Sistema de Janelas X. O VBoxClient gerencia os seguintes recursos:

  • área de transferência compartilhada e arrastar e soltar entre o hospedeiro e o convidado;
  • modo de janela seamless;
  • a exibição de convidado é automaticamente redimensionada de acordo com o tamanho da janela do convidado;
  • verificação da versão do hospedeiro VirtualBox

Todos esses recursos podem ser ativados independentemente com seus flags dedicados:

$ VBoxClient --clipboard
$ VBoxClient --draganddrop
$ VBoxClient --seamless
$ VBoxClient --display
$ VBoxClient --checkhostversion
$ VBoxClient --vmsvga-x11

Observe que VBoxClient só pode ser chamado com um sinalizador por vez, cada chamada gerando um processo de serviço dedicado. Como um atalho, o script VBoxClient-all permite todos esses recursos.

virtualbox-guest-utils instala /etc/xdg/autostart/vboxclient.desktop que inicia VBoxClient-all ao iniciar a sessão. Se o seu ambiente de desktop ou gerenciador de janela não tiver suporte a XDG Autostart, você precisará configurar a inicialização automática -- veja Inicialização automática#Na inicialização de ambiente de desktop e Inicialização automática#Na inicialização do gerenciador de janela para mais detalhes.

O VirtualBox também pode sincronizar o tempo entre o hospedeiro e o convidado, para isso, inicie/habilite o vboxservice.service.

Agora, você deve ter um convidado Arch Linux. Observe que recursos como compartilhamento de área de transferência estão desabilitados por padrão no VirtualBox, e você precisará desabilitá-los nas configurações por VM se realmente quiser usá-los (p.ex., Configurações > Geral > Avançado > Área de Transferência Compartilhada).

Aceleração de hardware

A aceleração de hardware pode ser ativada nas opções do VirtualBox. O gerenciador de exibição GDM 3.16+ é conhecido por quebrar o suporte de aceleração de hardware. [2] Então, se você tiver problemas com a aceleração de hardware, experimente outro gerenciador de exibição (o lightdm parece funcionar bem). [3] [4]

Se a aceleração de hardware não funcionar como esperado, tente alterar a opção Controladora Gráfica localizada na aba Tela nas opções Monitor das configurações da GUI. Parece que, dependendo do tipo de GPU do hospedeiro, nem todos as controladoras emuladas funcionam igualmente bem.

Habilitar pastas compartilhadas

Pastas compartilhadas são gerenciadas no hospedeiro, nas configurações da máquina virtual acessível através da GUI do VirtualBox, na aba Pastas Compartilhadas. Lá, Caminho da pasta, o nome do ponto de montagem identificado por Nome da pasta e opções como Apenas para Leitura, Montar Automaticamente e Tornar Permanente podem ser especificados. Esses parâmetros podem ser definidos com o utilitário de linha de comando VBoxManage. Consulte para mais detalhes.

Não importa qual método você usará para montar sua pasta, todos os métodos requerem algumas etapas primeiro.

Para evitar este problema, /sbin/mount.vboxsf: mounting failed with the error: No such device, certifique-se de que o módulo do kernel vboxsf esteja carregado corretamente. Deveria ser, já que ativamos todos os módulos do kernel do convidado anteriormente.

Duas etapas adicionais são necessárias para que o ponto de montagem seja acessível a partir de usuários que não sejam root:

Montagem manual

Use o seguinte comando para montar sua pasta em seu convidado Arch Linux:

# mount -t vboxsf -o gid=vboxsf nome_da_pasta_compartilhada ponto_de_montagem_em_sistema_convidado

sendo que nome_da_pasta_compartilhada é o Nome da Pasta atribuído pelo hipervisor quando o compartilhamento foi criado.

Se o usuário não estiver no grupo vboxsf, para dar acesso ao nosso ponto de montagem, podemos especificar as opções mount(8) uid= e gid= com os valores correspondentes do usuário. Estes valores podem ser obtidos do comando id executado contra este usuário. Por exemplo:

# mount -t vboxsf -o uid=1000,gid=1000 home /mnt

Montagem automática

Note: A montagem automática requer que o vboxservice.service esteja habilitado/iniciado.

Para que o recurso de montagem automática funcione, você deve marcar a caixa de seleção de Montagem Automática na GUI ou usar o argumento opcional --automount com o comando VBoxManage sharedfolder.

A pasta compartilhada agora deve aparecer como /media/sf_nome_da_pasta_compartilhada. Se os usuários não puderem acessar as pastas compartilhadas, verifique se /media tem permissões 755 ou é de propriedade do grupo vboxsf se estiver usando permissões 750. Atualmente, esse não é o padrão se o diretório /media for criada por vboxservice.service.

Você pode usar links simbólicos para ter um acesso mais conveniente e evitar de navegar naquele diretório, p.ex.:

$ ln -s /media/sf_nome_da_pasta_compartilhada ~/meus_documentos

Montar na inicialização

Você pode montar seu diretório com fstab. No entanto, para evitar problemas de inicialização com o systemd, noauto,x-systemd.automount deve ser adicionado ao /etc/fstab. Dessa forma, as pastas compartilhadas são montadas somente quando esses pontos de montagem são acessados e não durante a inicialização. Isso pode evitar alguns problemas, especialmente se os adicionais para convidados não forem carregados ainda quando o systemd ler fstab e montar as partições.

nomePastaCompartilhada  /caminho/para/PontoMontagemNaMáquinaConvidado  vboxsf  uid=usuário,gid=grupo,rw,dmode=700,fmode=600,noauto,x-systemd.automount
  • nomePastaCompartilhada: o valor do menu Configurações > Pastas Compartilhadas > Editar > Nome da Pasta da máquina virtual. Esse valor pode ser diferente do nome do nome real da pasta na máquina do hospedeiro. Para ver as Configurações da máquina virtual, vá para o aplicativo VirtualBox do sistema do hospedeiro, selecione a máquina virtual correspondente e clique em Configurações.
  • /caminho/para/PontoMontagemNaMáquinaConvidado: se não existir, esse diretório deve ser criado manualmente (por exemplo, usando mkdir).
  • dmode/fmode são permissões de diretório/arquivo para diretórios/arquivos dentro /caminho/para/PontoMontagemNaMáquinaConvidado.

Até 2012-08-02, mount.vboxsf não possui suporte à opção nofail:

desktop  /media/desktop  vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,nofail  0  0

Solução de problemas

Acesso a porta serial pelo convidado

Veja Working with the serial console#Connect using a terminal emulator program.

Convidado trava após iniciar o Xorg

Drivers com defeito ou em falta podem fazer com que o convidado congele após iniciar o Xorg, veja por exemplo [5] e [6]. Tente desativar a aceleração 3D em Configurações > Monitor e verifique se todos os drivers Xorg estão instalados.

Modo tela cheia mostra uma tela branca

Em alguns gerenciadores de janelas (i3, awesome), o VirtualBox tem problemas com o modo de tela cheia corretamente devido à barra de sobreposição. Para solucionar esse problema, desative a opção Exibir em modos Tela-Cheia/Seamless em Configurações do convidado > Interface do usuário > Minibarra de Ferramentas. Veja o relatório de erros do upstream para mais informações.

Convidados Linux têm áudio lento/distorcido

O driver de áudio AC97 dentro do kernel Linux ocasionalmente adivinha as configurações erradas do relógio quando executado dentro do VirtualBox, levando a um áudio que está muito lento ou muito rápido. Para corrigir isso, crie um arquivo em /etc/modprobe.d/ com a seguinte linha:

options snd-intel8x0 ac97_clock=48000

Arch: script pacstrap falhando

Se você usou pacstrap nas VirtualBox (Português)#Etapas de instalação para convidados Arch Linux para também #Instalar os adicionais para convidado antes de executar uma primeira inicialização no novo convidado, você precisa umount -l /mnt/dev como root antes de usar pacstrap novamente; uma falha em fazer isso o tornará inutilizável.

Hospedeiro Windows: VERR_ACCESS_DENIED

Para acessar a imagem não tratada VMDK em um hospedeiro Windows, execute a GUI do VirtualBox como administrador.

Nenhuma aceleração 3D de hardware no convidado Arch Linux

O pacote virtualbox-guest-utils a partir da versão 5.2.16-2 não contém o arquivo VBoxEGL.so. Isso faz com que o convidado Arch Linux não tenha uma aceleração 3D adequada. Veja FS#49752.

Para lidar com esse problema, aplique o conjunto de correções em FS#49752#comment152254. Algumas correções no conjunto de correções são necessárias para que funcione na versão 5.2.16-2.

Problemas conhecidos

Recursos de adicionais para convidados não funcionam no convidado Arch

Dependendo da sua versão do VirtualBox, alguns recursos dos adicionais para convidados não funcionam quando instalados via virtualbox-guest-utils e virtualbox-guest-utils-nox. Em vez disso, use as ISO de adicionais para convidados fornecidas com o hospedeiro do VirtualBox. Enquanto o convidado estiver em execução, vá para Dispositivos > Inserir imagem de CD dos Adicionais para Convidado..., monte o CD e execute VBoxLinuxAdditions.run com permissões de root.

Problemas conhecidos com os adicionais para convidados fornecido no pacote:

Missing vboximg-mount

O binário vboximg-mount não está empacotado no pacote virtualbox. Veja FS#64961.