Partilhar via


Monte um disco Linux no WSL 2

Se você quiser acessar um formato de disco Linux que não é suportado pelo Windows, você pode usar o WSL 2 para montar seu disco e acessar seu conteúdo. Este tutorial abordará as etapas para identificar o disco e a partição a serem anexados ao WSL2, como montá-los e como acessá-los.

Se você estiver conectando uma unidade externa e não tiver sucesso com estas instruções de montagem, você pode querer tentar as instruções para conectar dispositivos USB. Atualmente, o comando wsl --mount não suporta USBs, pen drives ou leitores de cartões SD, (saber mais sobre este problema).

Observação

O acesso de administrador é necessário para anexar um disco ao WSL 2. O comando WSL 2 wsl --mount não suporta a montagem de um disco (ou partições que pertencem ao disco) que está atualmente em uso. wsl --mount sempre anexa todo o disco, mesmo que apenas uma partição seja solicitada. Não é possível montar o disco de instalação do Windows.

Pré-requisitos

Você precisará estar no Windows 11 ou estar executando a versão da Microsoft Store do WSL. Para verificar sua versão do WSL e do Windows, use o comando: wsl.exe --version

Diferenças entre montar uma unidade externa com formatação do Windows versus formatação do Linux

As unidades externas formatadas para Windows normalmente usam a formatação do sistema de arquivos NTFS. As unidades externas formatadas para Linux normalmente usam a formatação do sistema de arquivos Ext4.

Se você montou uma unidade formatada em NTFS em seu sistema de arquivos do Windows, você pode acessar essa unidade a partir de sua distribuição Linux usando WSL criando um diretório montado (sudo mkdir /mnt/d, substituindo d por qualquer letra de unidade que você gostaria de usar) e, em seguida, usando o plug-in de interoperabilidade do drvfs sistema de arquivos, com o comando:

sudo mount -t drvfs D: /mnt/d

Saiba mais sobre cenários de montagem.

Se você tiver uma unidade formatada em Ext4, não poderá montá-la no sistema de arquivos do Windows. Para montar uma unidade formatada em Ext4 em sua distribuição Linux com WSL, você pode usar o comando wsl --mount seguindo as instruções abaixo.

Montagem de um disco não particionado

Se você tiver um disco que não tenha partições, poderá montá-lo diretamente usando o comando wsl --mount. Primeiro você precisa identificar o disco.

  1. Identificar o disco - Para listar os discos disponíveis no Windows, execute:

    Get-CimInstance -Query "SELECT * from Win32_DiskDrive"
    

    Os caminhos dos discos estão disponíveis nas colunas "DeviceID". Geralmente sob o formato \\.\PHYSICALDRIVE*.

  2. Montar o disco - Usando o PowerShell, você pode montar o disco usando o caminho do disco descoberto acima, execute:

    wsl.exe --mount <Disk>
    

    Montagem de uma unidade no WSL

Montagem de um disco particionado

Se você tiver um disco que você não tem certeza em que formato de arquivo ele está, ou que partições ele tem, você pode seguir as etapas abaixo para montá-lo.

  1. Identificar o disco - Para listar os discos disponíveis no Windows, execute:

    Get-CimInstance -Query "SELECT * from Win32_DiskDrive"
    

    Os caminhos dos discos estão disponíveis nas colunas "DeviceID". Geralmente sob o formato \\.\PHYSICALDRIVE*.

  2. Listar e selecionar as partições para montar no WSL 2 - Uma vez identificado o disco, execute:

    wsl.exe --mount <Disk> --bare
    

    Isso tornará o disco disponível no WSL 2. (No caso do nosso exemplo, a <Disk> é \\.\PHYSICALDRIVE*.

  3. Uma vez anexada, a partição pode ser listada executando o seguinte comando dentro do WSL 2:

    lsblk
    

    Isso exibirá os dispositivos de bloco disponíveis e suas partições.

Dentro do Linux, um dispositivo de bloco é identificado como /dev/<Device><Partition>. Por exemplo, /dev/sdb3, é o número 3 de partição do disco sdb.

Exemplo de saída:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0    1G  0 disk
├─sdb2   8:18   0   50M  0 part
├─sdb3   8:19   0  873M  0 part
└─sdb1   8:17   0  100M  0 part
sdc      8:32   0  256G  0 disk /
sda      8:0    0  256G  0 disk

Identificando o tipo de sistema de arquivos

Se você não sabe o tipo de sistema de arquivos de um disco ou partição, você pode usar este comando:

blkid <BlockDevice>

Isso resultará no tipo de sistema de arquivos detetado (no formato TYPE="<Filesystem>").

Monte as partições selecionadas

Depois de identificar as partições que deseja montar, execute este comando em cada partição:

wsl.exe --mount <Disk> --partition <Index> --type <Type>

Observação

Se você deseja montar o disco inteiro como um único volume (ou seja, se o disco não estiver particionado), --partition pode ser omitido.

Se --type for omitido, o tipo de sistema de arquivos padrão é 'ext4'.

Aceder ao conteúdo do disco

Uma vez montado, o disco pode ser acessado sob o caminho apontado pelo valor de configuração: automount.root. O valor padrão é /mnt/wsl.

A partir do Windows, o disco pode ser acedido a partir do Explorador de Ficheiros navegando para: \\wsl$\<Distro>\<Mountpoint> (escolha qualquer distribuição Linux).

Desmonte o disco

Se quiser desmontar e desanexar o disco do WSL 2, execute:

wsl.exe --unmount [DiskPath]

Montar um VHD na WSL

Observação

WSL da Microsoft Store introduz um novo argumento para montar diretamente um VHD: wsl --mount --vhd <pathToVHD>

Você também pode montar arquivos de disco rígido virtual (VHD) no WSL usando wsl --mount. Para fazer isso, primeiro você precisa montar o VHD no Windows usando o comando Mount-VHD no Windows. Certifique-se de executar este comando com privilégios de administrador. Abaixo está um exemplo onde usamos este comando e ainda exibimos o caminho do disco. Certifique-se de substituir <pathToVHD> pelo caminho VHD correto.

Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)"

Você pode usar a saída acima para obter o caminho do disco para esse VHD e montá-lo no WSL seguindo as instruções na seção anterior.

Você também pode usar essa técnica para montar e interagir com os discos rígidos virtuais de outras distros WSL, já que cada distro WSL 2 é armazenada por meio de um arquivo de disco rígido virtual chamado: ext4.vhdx. Por padrão, os VHDs para distribuições WSL 2 são armazenados neste caminho: %LocalAppData%\Packages\[distro]\LocalState\[distroPackageName], tenha cuidado ao acessar esses arquivos de sistema, este é um fluxo de trabalho de usuário avançado. Certifique-se de executar wsl --shutdown antes de interagir com este disco para garantir que o disco não está em uso.

Montagem de VHD WSL

Referência de linha de comando

Montagem de um sistema de arquivos específico

Por padrão, o WSL 2 tentará montar o dispositivo como ext4. Para especificar outro sistema de arquivos, execute:

wsl.exe --mount <Disk> --type <Type>

Por exemplo, para montar um disco como FAT, execute:

wsl.exe --mount <Disk> --type vfat

Observação

Para listar os sistemas de arquivos disponíveis no WSL2, execute:

cat /proc/filesystems

Quando um disco foi montado via WSL2 (sistema de arquivos Linux), ele não está mais disponível para montagem através de um driver ext4 no sistema de arquivos do Windows.

Montagem de uma partição específica

Por padrão, o WSL 2 tenta montar o disco inteiro. Para montar uma partição específica, execute:

wsl.exe --mount <Disk> --partition <Index>

Isso só funciona se o disco for MBR (Master Boot Record) ou GPT (GUID Partition Table). Leia sobre estilos de partição - MBR e GPT.

Especificando opções de montagem

Para especificar as opções de montagem, execute:

wsl.exe --mount <Disk> --options <Options>

Exemplo:

wsl.exe --mount <Disk> --options "data=ordered"

Observação

No momento, apenas opções específicas do sistema de arquivos são suportadas. Opções genéricas como ro, rw, noatime,... não são suportados.

Anexar o disco sem montá-lo

Se o esquema de disco não for suportado por nenhuma das opções acima, você poderá anexar o disco ao WSL 2 sem montá-lo executando:

wsl.exe --mount <Disk> --bare

Isso tornará o dispositivo de bloco disponível dentro do WSL 2, permitindo que ele seja montado manualmente a partir daí. Use lsblk para listar os dispositivos de bloco disponíveis dentro do WSL 2.

Especificando o nome da montagem

Observação

Esta opção só está disponível com WSL da Microsoft Store

Por padrão, o nome do ponto de montagem é gerado com base no disco físico ou no nome do VHD. Isso pode ser substituído por --name.

wsl.exe --mount <Disk> --name <Name>

Exemplo:

wsl.exe --mount <Disk> --name myDisk

Desanexar um disco

Para desanexar um disco do WSL 2, execute:

wsl.exe --unmount [DiskPath]

Caso Diskpath seja omitido, todos os discos conectados serão desmontados e desligados.

Observação

Se um disco não conseguir desmontar, o WSL 2 pode ser forçado a sair executando wsl --shutdown, que desanexará o disco.

Limitações

  • No momento, apenas discos inteiros podem ser conectados ao WSL 2, o que significa que não é possível anexar apenas uma partição. Concretamente, isso significa que não é possível usar wsl --mount para ler uma partição no dispositivo de inicialização, porque esse dispositivo não pode ser separado do Windows.

  • Somente os sistemas de arquivos que são suportados nativamente no kernel podem ser montados por wsl --mount. Isso significa que não é possível usar drivers de sistema de arquivos instalados (como ntfs-3g, por exemplo) chamando wsl --mount.

  • Os sistemas de arquivos não suportados diretamente pelo kernel podem ser montados através de um --bare de anexação e, em seguida, executar o driver FUSE relevante.