Eu sei que essa é uma pergunta que já foi feita muitas vezes antes, e deveria ser simples. Acho que estou perto, mas devo estar fazendo algo errado.
Esta é a primeira vez que uso o QEMU e estou realmente com dificuldades. Estou usando o virt manager para hospedar o Windows 7 e estou tentando obter arquivos de e para o MX Linux. Primeiro, tentei baixar algo do github na VM do Windows para que ele pudesse reconhecer arquivos do Linux (pode ter sido winfsp ou outra coisa, não tenho meu histórico de pesquisa).
Então me deparei com meu primeiro obstáculo:
O Windows só tem o Internet Explorer instalado, e eu mal consigo visualizar páginas, não consegui baixar o Chrome, Chromium, Firefox ou Brave na VM. Tentei carregar arquivos na VM usando um pendrive, mas também não consegui. Desisti de tentar baixar qualquer coisa da Internet na VM convidada. Decidi que, em vez de passar os arquivos do Linux para o Windows, tentaria passar os arquivos do Windows no Linux para o Windows convidado.
Então finalmente eu estava um pouco incompleto mas eu criei uma partição NTFS então exFAT 8mb na minha unidade nvme usando fdisk e então mkfs.ntsf então quando isso não funcionou mkfs.exfat sem sucesso também. Eu não entendi muito bem o que o 'nome da tag' (como "compartilhado") significa, isso se torna o nome da unidade na VM do Windows? Meu método bruto foi sudo mount -t virtiofs shared /dev/nvme0n1p4
então no gerenciador virt eu adicionei um hardware > sistema de arquivos: Eu tentei Driver = mount, mode eu tentei alguns como squich e passthrough, para o caminho de origem eu tentei "/dev/nvme0n1p4" e eu também tentei "/media/1toneboy/352D-156E/test folder" e para o caminho de destino eu chamei de "compartilhado"
Mas quando fui iniciar a máquina virtual, ela disse (desculpe, não estou em casa, não tenho as palavras exatas) erro: tipo de arquivo inválido, superbloco... permissão negada
Há algo que eu esteja fazendo obviamente errado ao passar uma partição NTFS ou exfat para a VM? Existe uma maneira mais simples de transferir o arquivo?
Muito obrigado!
Você está confundindo duas características completamente diferentes.
Esta função não é para passar uma partição para a VM. É para passar uma pasta ou o conteúdo de uma partição. Isso funciona de forma semelhante ao compartilhamento de arquivos de rede – a VM fala com o host usando essencialmente um protocolo de rede (uma adaptação do protocolo FUSE) para acessar arquivos individuais e não tem conhecimento algum do sistema de arquivos real que está sendo usado por baixo. Em outras palavras, o recurso "compartilhar um sistema de arquivos" é semelhante a servir arquivos por FTP ou HTTP.
Então, isso
mount -t virtiofs
seria feito no convidado para acessar essa pasta compartilhada através do VirtioFS – é aí que a 'tag' entra em jogo – enquanto no host você precisa montar a partição usando qualquer sistema de arquivos que ela realmente contenha (por exemplo,-t exfat
para uma partição exFAT).(Para esclarecer, como o convidado lida apenas com arquivos e pastas, não com o sistema de arquivos bruto, você não precisa usar NTFS ou exFAT para o método VirtioFS – você pode compartilhar qualquer pasta de qualquer sistema de arquivos, como "/home/1tone/shared", e não há sentido em criar uma partição dedicada para isso.)
No entanto, você só pode usar esse método com convidados que suportam VirtioFS (ou o antigo 9p). O Windows precisa de um driver de terceiros para VirtioFS. Em teoria, ele deveria ter suporte nativo a 9p (ele usa isso para WSL), mas não tenho certeza se isso é utilizável do lado do convidado.
Então, em vez de tudo isso, você provavelmente quer passar o real
/dev/nvme0n1p4
para a VM – mas você precisa passá-lo como um 'disco' adicional (dispositivo de bloco), não como um 'sistema de arquivos'. Neste caso, ele precisa ser NTFS ou exFAT ou algo mais compreendido pelo Windows, e neste caso ele deve ser desmontado do host antes de iniciar o convidado.