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:
- virtualbox-guest-utils e xf86-video-vmware (FS#61183) para utilitários de convidados do VirtualBox com suporte a X
- virtualbox-guest-utils-nox para utilitários de convidados do VirtualBox sem suporte a X
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.
- 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).
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.
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.
/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:
- o pacote virtualbox-guest-utils criou um grupo
vboxsf
(feito em uma etapa anterior); - seu usuário deve estar no grupo de usuários
vboxsf
.
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
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.