Começar a montar um disco do Linux no WSL 2 (versão prévia)

Se você quiser acessar um formato de disco do Linux sem suporte do Windows, poderá usar o WSL 2 para montar o disco e acessar seu conteúdo. Este tutorial abrange as etapas para identificar o disco e a partição a serem anexados ao WSL2, como montá-los e como acessá-los.

Observação

O acesso de administrador é necessário para anexar um disco ao WSL 2. O comando WSL 2 não dá suporte à montagem de um disco (ou partições que pertencem ao disco) que mount está em uso no momento. 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 10 Build 20211 ou superior para acessar esse recurso. Você pode ingressar no Programa Windows Insiders para obter os builds de visualização mais recentes.

Montar um disco não partidado

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

Identificar o disco

Para listar os discos disponíveis no Windows, execute:

wmic diskdrive list brief

Os caminhos de discos estão disponíveis nas colunas 'DeviceID'. Normalmente, sob o \\.\PHYSICALDRIVE* formato .

Monte o disco

Em seguida, no PowerShell, você pode montar o disco usando o Caminho do disco descoberto acima.

wsl --mount <DiskPath>

Montar uma unidade no WSL

Montar um disco particionado

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

Identificar o disco

Para listar os discos disponíveis no Windows, execute:

wmic diskdrive list brief

Os caminhos de discos estão disponíveis nas colunas 'DeviceID'. Normalmente, sob o \\.\PHYSICALDRIVE* formato

Listar e selecionar as partições a montar no WSL 2

Depois que o disco for identificado, execute:

wsl --mount <DiskPath> --bare

Isso disponibiliza o disco no WSL 2.

Depois de 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 de partição 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 sabe o tipo de sistema de arquivos de um disco ou partição, use este comando:

blkid <BlockDevice>

Isso fará com que o tipo de sistema de arquivos detectado (no TYPE="<Filesystem>" formato ).

Montar as partições selecionadas

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

wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>

Observação

Se você quiser montar todo o disco como um único volume (ou seja, se o disco não estiver particionado), --partition poderá ser omitido.

Se omitido, o tipo de sistema de arquivos padrão será "ext4".

Acessar o conteúdo do disco

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

No Windows, o disco pode ser acessado Explorador de Arquivos navegando até: \\wsl$\\<Distro>\\<Mountpoint> (escolha qualquer distribuição do Linux).

Desmonte o disco

Se você quiser desmontar e desconectar o disco do WSL 2, execute:

wsl --unmount <DiskPath>

Montar um VHD no WSL

Você também pode montar vhd (arquivos de disco rígido virtual) no WSL usando wsl --mount . Para fazer isso, primeiro você precisa montar o VHD no Windows usando o Mount-VHD comando no Windows. Execute este comando com privilégios de administrador. Veja abaixo um exemplo em que usamos esse comando e também saída do caminho do disco. Certifique-se de substituir <pathToVHD> pelo caminho vhd real.

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, pois cada distro do WSL 2 é armazenada por meio de um arquivo de disco rígido virtual chamado : ext4.vhdx . Por padrão, os VHDs para as distros WSL 2 são armazenados neste caminho: , tenha cuidado ao acessar esses arquivos do sistema, esse é um fluxo de trabalho do usuário C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName] de energia. Certifique-se de wsl --shutdown executar antes de interagir com esse disco para garantir que o disco não está em uso.

Montagem de VHD WSL

Referência de linha de comando

Montar 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 linux), ele não está 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 todo o disco. Para montar uma partição específica, execute:

wsl --mount <Diskpath> -p <PartitionIndex>

Isso só funcionará 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.

Especificando opções de montagem

Para especificar opções de montagem, execute:

wsl --mount <DiskPath> -o <MountOptions>

Exemplo:

wsl --mount <DiskPath> -o "data=ordered"

Observação

Somente opções específicas do sistema de arquivos têm suporte no momento. Não há suporte para opções ro, rw, noatime, ... genéricas, como .

Anexar o disco sem montá-lo

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

wsl --mount <DiskPath> --bare

Isso disponibiliza o dispositivo de bloco dentro do WSL 2 para que ele possa ser montado manualmente a partir daí. Use lsblk para listar os dispositivos de bloco disponíveis dentro do WSL 2.

Desconectando um disco

Para desconectar um disco do WSL 2, execute:

wsl --unmount [DiskPath]

Se Diskpath for omitido, todos os discos anexados serão desmontados e desvinculados.

Observação

Se um disco não for desmontado, o WSL 2 poderá ser forçado a sair executando wsl --shutdown , o que desconecta o disco.

Limitações

  • Neste momento, somente discos inteiros podem ser anexados 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 para ler uma partição no dispositivo de inicialização, porque esse dispositivo não pode wsl --mount ser desvinculado do Windows.

  • No momento, não há suporte para unidades flash USB e cartões SD e não serão anexados ao WSL 2. No entanto, há suporte para discos USB.

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