Montar um disco do Linux no WSL 2
Se quiser acessar um formato de disco do Linux que não tenha suporte para o Windows, você poderá utilizar o WSL 2 para montar o disco e acessar seu conteúdo. Este tutorial abordará as etapas para identificar o disco e a partição aos quais você deve anexar o WSL2, como montá-los e como acessá-los.
Se você estiver conectando uma unidade externa e não obtiver êxito com essas instruções de montagem, talvez deseje tentar as instruções para Conectar dispositivos USB. No momento, o comando wsl --mount
não dá suporte a unidades USB/flash ou leitores de cartão SD (Saiba mais sobre esse problema).
Observação
Você precisa ter acesso de administrador para anexar um disco no WSL 2.
O comando mount
no WSL 2 não tem suporte para a montagem de um disco (ou partições que pertençam ao disco) que esteja sendo utilizado no momento. wsl --mount
sempre anexa o disco inteiro, mesmo que apenas uma partição seja solicitada. Você não pode montar o disco de instalação do Windows.
Pré-requisitos
Você precisará estar no Windows 11 Build 22000 ou posterior, ou estar executando a versão do WSL da Microsoft Store. Para verificar sua versão do WSL e do Windows, utilize o comando: wsl.exe --version
Diferenças entre montar uma unidade externa com a formatação do Windows e a formatação do Linux
As unidades externas formatadas para Windows normalmente utilizam a formatação do sistema de arquivos NTFS. As unidades externas formatadas para Linux normalmente utilizam a formatação do sistema de arquivos Ext4.
Se você tiver montado uma unidade formatada em NTFS no sistema de arquivos do Windows, poderá acessar essa unidade a partir de sua distribuição do Linux usando o WSL, criando um diretório montado (sudo mkdir /mnt/d
, substituindo 'd' pela letra da unidade que gostaria de utilizar) e, em seguida, usando o plug-in de interoperabilidade do sistema de arquivos drvfs
, com o comando:
sudo mount -t drvfs D: /mnt/d
Para obter mais informações sobre os cenários de montagem.
Se você tiver uma unidade formatada em Ext-4, não poderá montá-la no sistema de arquivos do Windows. Para montar uma unidade formatada em Ext4 na sua distribuição Linux com WSL, você pode utilizar 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 nenhuma partição, poderá montá-lo diretamente utilizando o comando wsl --mount
. Primeiro, é necessário identificar o disco.
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 no formato
\\.\PHYSICALDRIVE*
.Montar o disco: utilizando o PowerShell, você pode montar o disco usando o caminho do disco descoberto acima, execute:
wsl --mount <DiskPath>
Montando um disco particionado
Se você tiver um disco que não sabe ao certo em que formato de arquivo está ou quais partições ele tem, siga as etapas abaixo para montá-lo.
Identificar o disco: para listar os discos disponíveis no Windows, execute:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
Os caminhos dos discos são listados após a 'DeviceID', geralmente no formato
\\.\PHYSICALDRIVE*
.Liste e selecione as partições a serem montadas no WSL 2: depois que o disco for identificado, execute:
wsl --mount <DiskPath> --bare
Isso fará com que o disco fique disponível no WSL 2. (No caso do nosso exemplo, o
<DiskPath>
é\\.\PHYSICALDRIVE*
.Uma vez anexada, a partição poderá ser listada se você executar o seguinte comando no WSL 2:
lsblk
Isso exibirá os dispositivos de bloco disponíveis e suas partições.
No Linux, um dispositivo de bloco é identificado como /dev/<Device><Partition>
. Por exemplo, /dev/sdb3 é a partição número 3 do disco sdb
.
Saída de exemplo:
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 souber o tipo de sistema de arquivos de um disco ou partição, poderá utilizar este comando:
blkid <BlockDevice>
Você verá o tipo de sistema de arquivos detectado (no formato TYPE="<Filesystem>"
).
Monte as partições selecionadas
Depois de identificar as partições que você deseja montar, execute este comando em cada partição:
wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
Observação
Se você desejar montar o disco inteiro como um único volume (ou seja, se o disco não estiver particionado), --partition
poderá ser omitido.
Se for omitido, o tipo de sistema de arquivos padrão será "ext4".
Acessar o conteúdo do disco
Uma vez montado, o disco pode ser acessado no caminho apontado pelo valor da configuração: automount.root
. O valor padrão é /mnt/wsl
.
No Windows, o disco pode ser acessado no Explorador de Arquivos, navegando até: \\wsl$\<Distro>\<Mountpoint>
(escolha qualquer distribuição Linux).
Desmonte o disco
Se você quiser desmontar e desconectar o disco no WSL 2, execute:
wsl --unmount <DiskPath>
Montar um VHD no WSL
Observação
O WSL da Microsoft Store introduz um novo argumento para você montar diretamente um VHD: wsl --mount --vhd <pathToVHD>
Você também pode montar arquivos de disco rígido virtual (VHD) no WSL utilizando wsl --mount
. Para fazer isso, primeiro você precisa montar o VHD no Windows utilizando o comando Mount-VHD
no Windows. Certifique-se de executar esse comando com privilégios de administrador. A seguir, você verá um exemplo em que utilizamos esse comando e também exibimos o caminho do disco. Não se esqueça de substituir <pathToVHD>
pelo caminho real do VHD.
Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)"
Você pode utilizar a saída acima para obter o caminho do disco para esse VHD e montá-lo no WSL seguindo as instruções da seção anterior.
Você também pode utilizar essa técnica para montar e interagir com os discos rígidos virtuais de outras distribuições do WSL, pois cada distribuição do WSL 2 é armazenada por meio de um arquivo no disco rígido virtual chamado ext4.vhdx
. Por padrão, os VHDs das distribuições do WSL 2 são armazenados neste caminho: C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName]
, tenha cuidado ao acessar esses arquivos de sistema, pois esse é um fluxo de trabalho de usuário avançado. Verifique se você executou wsl --shutdown
antes de interagir com esse disco para certificar-se de que o disco não está sendo utilizado.
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 --mount <DiskPath> -t <FileSystem>
Por exemplo, para montar um disco como FAT, execute:
wsl --mount <Diskpath> -t vfat
Observação
Para listar os sistemas de arquivos disponíveis no WSL2, execute: cat /proc/filesystems
Quando um disco é montado por meio do WSL2 (sistema de arquivos do Linux), ele não fica mais disponível para montagem por meio de um driver ext4 no sistema de arquivos do Windows.
Montar 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 --mount <Diskpath> -p <PartitionIndex>
Isso só funciona se o disco for MBR (Registro Mestre de Inicialização) ou GPT (Tabela de Partição GUID). Leia sobre estilos de partição - MBR e GPT.
Especificação das opções de montagem
Para especificar as opções de montagem, execute:
wsl --mount <DiskPath> -o <MountOptions>
Exemplo:
wsl --mount <DiskPath> -o "data=ordered"
Observação
No momento, apenas as opções específicas do sistema de arquivos têm suporte para você. Opções genéricas, como ro, rw, noatime, ...
, não têm suporte para você.
Como anexar o disco sem montá-lo
Se o esquema de disco não tiver suporte para nenhuma das opções acima, você poderá anexar o disco no WSL 2 sem montá-lo, executando:
wsl --mount <DiskPath> --bare
Isso tornará o dispositivo de bloco disponível no WSL 2 para que você possa montá-lo manualmente a partir dele. Utilize lsblk
para listar os dispositivos de bloco disponíveis no WSL 2.
Especificando o nome da montagem
Observação
Essa opção só está disponível com o WSL da Microsoft Store
Por padrão, o nome do ponto de montagem é gerado com base no nome do disco físico ou do VHD. Isso pode ser substituído por --name
. Exemplo:
wsl --mount <DiskPath> --name myDisk
Desanexando um disco
Para desanexar um disco do WSL 2, execute:
wsl --unmount [DiskPath]
Se Diskpath
for omitido, todos os discos anexados serão desmontados e desanexados.
Observação
Se um disco não conseguir ser desmontado, o WSL 2 poderá ser forçado a sair executando wsl --shutdown
, que desconectará o disco.
Limitações
No momento, apenas discos inteiros podem ser anexados ao WSL 2, o que significa que não é possível anexar apenas uma partição. Em termos concretos, isso significa que não é possível utilizar
wsl --mount
para ler uma partição no dispositivo de inicialização, porque esse dispositivo não pode ser desconectado do Windows.Somente os sistemas de arquivos que têm suporte nativo para o kernel podem ser montados por
wsl --mount
. Isso significa que não é possível utilizar os drivers do sistema de arquivos instalados (como o ntfs-3g, por exemplo) chamandowsl --mount
.Os sistemas de arquivos que não têm suporte direto para o kernel podem ser montados por meio de um anexo
--bare
e, em seguida, invocando o driver FUSE relevante.
Windows Subsystem for Linux