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:
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
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
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
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
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.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
- Reinicie seu anfitrião.
Procedimento
No host, criar um Samba share e torná-lo acessível para sistemas externos.
Adicionar permissões de firewall para o Samba.
# firewall-cmd --permanent --zone=public --add-service=samba success # firewall-cmd --reload success
Edite o arquivo
/etc/samba/smb.conf
:Adicione o seguinte na seção
[global]
:mapa para convidado = Mau Usuário
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.
Criar o diretório
/samba/VM-share
.# mkdir -p /samba/VM-share
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. Reinicie o serviço de Samba.
# systemctl restart smb.service
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/
Adicionar o selo SELinux Samba sharing ao
/etc/samba/VM-share/
# chcon -t samba_share_t /samba/VM-share/
No sistema operacional Windows guest, anexe o Samba share como um local de rede.
- Abra o File Explorer e clique com o botão direito do mouse em "Este PC".
No menu de contexto, clique em
Add a network location
.- No assistente Add Network Location que se abre, selecione "Choose a custom network location" e clique em .
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 .
- 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 .
- Se o acesso à localização da rede foi bem sucedido, você pode agora clicar em e abrir o diretório compartilhado.