Red Hat Training

A Red Hat training course is available for RHEL 8

14.2. Compartilhamento de arquivos entre o host e as máquinas virtuais Windows

Para um compartilhamento eficiente de arquivos entre seu sistema host e as VMs Windows às quais ele está conectado, você pode preparar um servidor Samba que suas VMs podem acessar.

Pré-requisitos

  • Os pacotes samba são instalados em seu host. Caso não estejam:

    # yum install samba
  • O host é visível e alcançável através de uma rede para o VM. Este é geralmente o caso se a VM estiver conectada usando o tipo de rede virtual NAT e bridge. Entretanto, para a conexão macvtap, é necessário primeiro configurar o recurso macvlan no host. Para fazer isso:

    1. Criar um arquivo de dispositivo de rede, por exemplo, chamado vm-macvlan.netdev no diretório /etc/systemd/network/ do host.

      # touch /etc/systemd/network/vm-macvlan.netdev
    2. Edite o arquivo do dispositivo de rede para ter o seguinte conteúdo. Você pode substituir vm-macvlan pelo nome que você escolheu para seu dispositivo de rede.

      [NetDev]
      Name=vm-macvlan
      Kind=macvlan
      
      [MACVLAN]
      Mode=bridge
    3. Crie um arquivo de configuração de rede para seu dispositivo de rede macvlan, por exemplo vm-macvlan.network.

      # touch /etc/systemd/network/vm-macvlan.network
    4. Edite o arquivo de configuração da rede para ter o seguinte conteúdo. Você pode substituir vm-macvlan pelo nome que você escolheu para seu dispositivo de rede.

      [Match]
      Name=_vm-macvlan_
      
      [Network]
      IPForward=yes
      Address=192.168.250.33/24
      Gateway=192.168.250.1
      DNS=192.168.250.1
    5. Crie um arquivo de configuração de rede para sua interface física de rede. Por exemplo, se sua interface é enp4s0:

      # touch /etc/systemd/network/enp4s0.network

      Se você não tiver certeza de qual interface usar, você pode usar o comando ifconfig em seu host para obter a lista de interfaces de rede ativas.

    6. Edite o arquivo de configuração física da rede para tornar a rede física uma parte da interface macvlan, neste caso vm-macvlan:

      [Match]
      Name=enp4s0
      
      [Network]
      MACVLAN=vm-macvlan
    7. Reinicie seu anfitrião.

Procedimento

  1. No host, criar um Samba share e torná-lo acessível para sistemas externos.

    1. Adicionar permissões de firewall para o Samba.

      # firewall-cmd --permanent --zone=public --add-service=samba
      success
      # firewall-cmd --reload
      success
    2. Edite o arquivo /etc/samba/smb.conf:

      1. Adicione o seguinte na seção [global]:

        mapa para convidado = Mau Usuário
      2. Adicione o seguinte no final do arquivo:

        #=== Share Definitions ===
        [VM-share]
        path = /samba/VM-share
        browsable = yes
        guest ok = yes
        read only = no
        hosts allow = 192.168.122.0/24

        Note que a linha hosts allow restringe a acessibilidade do compartilhamento apenas aos hosts da rede VM. Se você quiser que o compartilhamento seja acessível por qualquer pessoa, remova a linha.

    3. Criar o diretório /samba/VM-share.

      # mkdir -p /samba/VM-share
    4. Habilitar o serviço de Samba.

      # systemctl enable smb.service
      Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
    5. Reinicie o serviço de Samba.

      # systemctl restart smb.service
    6. Permitir que o diretório VM-share seja acessível e modificável para as VMs.

      # chmod -R 0755 /samba/VM-share/
      # chown -R nobody:nobody /samba/VM-share/
    7. Adicionar o selo SELinux Samba sharing ao /etc/samba/VM-share/

      # chcon -t samba_share_t /samba/VM-share/
  2. No sistema operacional Windows guest, anexe o Samba share como um local de rede.

    1. Abra o File Explorer e clique com o botão direito do mouse em "Este PC".
    2. No menu de contexto, clique em Add a network location.

      virt Win10 network loc1
    3. No assistente Add Network Location que se abre, selecione "Choose a custom network location" e clique em Next.
    4. No campo "Internet ou endereço de rede", digite host-IP/VM-share, onde host-IP é o endereço IP do host. Normalmente, o IP do host é o gateway padrão da VM. Em seguida, clique em Next.

      virt Win10 network loc2
    5. Quando o assistente perguntar se você deseja renomear o diretório compartilhado, mantenha o nome padrão. Isto assegura a consistência da configuração do compartilhamento de arquivos entre a VM e o convidado. Clique em Próximo.
    6. Se o acesso à localização da rede foi bem sucedido, você pode agora clicar em Finish e abrir o diretório compartilhado.