Delen via


Een Linux-schijf koppelen in WSL 2

Als u toegang wilt krijgen tot een Linux-schijfindeling die niet wordt ondersteund door Windows, kunt u WSL 2 gebruiken om uw schijf te koppelen en toegang te krijgen tot de inhoud ervan. In deze zelfstudie worden de stappen beschreven voor het identificeren van de schijf en partitie die u aan WSL2 wilt koppelen, hoe u deze koppelt en hoe u deze kunt openen.

Als u een extern station aansluit en niet succesvol bent met deze montage-instructies, kunt u de instructies proberen voor het aansluiten van USB-apparaten . De wsl --mount-opdracht ondersteunt momenteel geen USB-/flashstations/SD-kaartlezers (leer meer over dit probleem).

Notitie

Beheerderstoegang is vereist voor het koppelen van een schijf aan WSL 2. De opdracht WSL 2 mount biedt geen ondersteuning voor het koppelen van een schijf (of partities die deel uitmaken van de schijf) die momenteel in gebruik is. wsl --mount altijd de hele schijf koppelt, zelfs als er slechts een partitie wordt aangevraagd. U kunt de Windows-installatieschijf niet koppelen.

Voorwaarden

U moet windows 11 build 22000 of hoger gebruiken of de Microsoft Store-versie van WSL uitvoeren. Gebruik de volgende opdracht om uw WSL- en Windows-versie te controleren: wsl.exe --version

Verschillen tussen het aankoppelen van een extern station met Windows-formattering versus Linux-formattering

Externe schijven die zijn geformatteerd voor Windows, gebruiken doorgaans het NTFS-bestandssysteem. Externe schijven die zijn geformatteerd voor Linux gebruiken doorgaans het Ext4-bestandssysteem.

Als u een station met NTFS-indeling hebt gekoppeld aan uw Windows-bestandssysteem, hebt u toegang tot dat station vanuit uw Linux-distributie met behulp van WSL door een gekoppelde map te maken (sudo mkdir /mnt/d, waarbij u 'd' vervangt door de stationsletter die u wilt gebruiken) en vervolgens de drvfs-invoegtoepassing voor bestandssysteeminteroperabiliteit te gebruiken, met de opdracht:

sudo mount -t drvfs D: /mnt/d

Lees meer over montagescenario's.

Als u een ext4-geformatteerde schijf hebt, kunt u deze niet monteren op uw Windows-bestandssysteem. Als u een ext4-geformatteerd station wilt koppelen aan uw Linux-distributie met WSL, kunt u de wsl --mount opdracht gebruiken volgens de onderstaande instructies.

Een niet-gepartitioneerde schijf koppelen

Als u een schijf hebt die geen partities heeft, kunt u deze rechtstreeks koppelen met behulp van de opdracht wsl --mount. Eerst moet u de schijf identificeren.

  1. Identificeer de schijf - Voer de volgende opdracht uit om de beschikbare schijven in Windows weer te geven:

    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    

    De schijvenpaden zijn beschikbaar onder de kolommen DeviceID. Meestal in de \\.\PHYSICALDRIVE*-indeling.

  2. koppel de schijf - Met Behulp van PowerShell kunt u de schijf koppelen met behulp van het hierboven gedetecteerde schijfpad. Voer de volgende opdracht uit:

    wsl --mount <DiskPath>
    

    Een schijf aankoppelen in WSL

Een gepartitioneerde schijf koppelen

Als u een schijf hebt waarin u niet zeker weet in welke bestandsindeling deze zich bevindt of in welke partities deze zich bevindt, kunt u de onderstaande stappen volgen om deze te koppelen.

  1. Identificeer de schijf - Voer de volgende opdracht uit om de beschikbare schijven in Windows weer te geven:

    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    

    De schijfpaden worden weergegeven na 'DeviceID', meestal in de \\.\PHYSICALDRIVE*-indeling.

  2. Lijst en selecteer de partities om te koppelen in WSL 2 - Nadat de schijf is geïdentificeerd, voert u uit:

    wsl --mount <DiskPath> --bare
    

    Hierdoor wordt de schijf beschikbaar in WSL 2. (In het geval van ons voorbeeld is de <DiskPath>\\.\PHYSICALDRIVE*.

  3. Zodra deze is gekoppeld, kan de partitie worden weergegeven door de volgende opdracht uit te voeren in WSL 2:

    lsblk
    

    Hiermee worden de beschikbare blokapparaten en hun partities weergegeven.

In Linux wordt een blokapparaat geïdentificeerd als /dev/<Device><Partition>. Is bijvoorbeeld /dev/sdb3 het partitienummer 3 van de schijf sdb.

Voorbeelduitvoer:

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

Het bestandssysteemtype identificeren

Als u het type bestandssysteem van een schijf of partitie niet weet, kunt u deze opdracht gebruiken:

blkid <BlockDevice>

Hiermee wordt het gedetecteerde type bestandssysteem weergegeven (in het TYPE="<Filesystem>"-formaat).

De geselecteerde partities koppelen

Nadat u de partities hebt geïdentificeerd die u wilt koppelen, voert u deze opdracht uit op elke partitie:

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

Notitie

Als u de hele schijf als één volume wilt koppelen (dat wil zeggen als de schijf niet is gepartitioneerd), kan --partition worden weggelaten.

Als u dit weglaat, is het standaardbestandssysteemtype 'ext4'.

Toegang tot de schijfinhoud

Zodra de schijf is gekoppeld, kan er toegang worden verkregen tot de schijf onder het pad dat is aangegeven door de configuratiewaarde: automount.root. De standaardwaarde is /mnt/wsl.

Vanuit Windows is de schijf toegankelijk vanuit Verkenner door te navigeren naar: \\wsl$\<Distro>\<Mountpoint> (kies een Linux-distributie).

De schijf ontkoppelen

Als u de schijf wilt ontkoppelen en loskoppelen van WSL 2, voert u het volgende uit:

wsl --unmount <DiskPath>

Een VHD koppelen in WSL

Notitie

WSL uit de Microsoft Store introduceert een nieuw argument om een VHD rechtstreeks te koppelen: wsl --mount --vhd <pathToVHD>

U kunt ook virtuele hardeschijfbestanden (VHD) aan WSL koppelen met behulp van wsl --mount. Hiervoor moet u eerst de VHD aan Windows koppelen met behulp van de opdracht Mount-VHD in Windows. Zorg ervoor dat u deze opdracht uitvoert met beheerdersbevoegdheden. Hieronder ziet u een voorbeeld waarin we deze opdracht gebruiken en ook het schijfpad uitvoeren. Zorg ervoor dat u <pathToVHD> vervangt door uw werkelijke VHD-pad.

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

U kunt de bovenstaande uitvoer gebruiken om het schijfpad voor deze VHD op te halen en deze in WSL te koppelen volgens de instructies in de vorige sectie.

U kunt deze techniek ook gebruiken om de virtuele harde schijven van andere WSL-distributies te koppelen en te gebruiken, omdat elke WSL 2-distributie wordt opgeslagen via een virtueel hardeschijfbestand met de naam: ext4.vhdx. Standaard worden de VHD's voor WSL 2-distributies opgeslagen in dit pad: C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName], wees voorzichtig met het openen van deze systeembestanden. Dit is een werkstroom voor power user. Zorg ervoor dat u wsl --shutdown uitvoert voordat u met deze schijf communiceert om ervoor te zorgen dat de schijf niet wordt gebruikt.

het WSL VHD-bestand koppelen

Referentie voor de opdrachtregel

Een specifiek bestandssysteem koppelen

Standaard zal WSL 2 proberen het apparaat als ext4 te koppelen. Voer het volgende uit om een ander bestandssysteem op te geven:

wsl --mount <DiskPath> -t <FileSystem>

Als u bijvoorbeeld een schijf als FAT wilt koppelen, voert u het volgende uit:

wsl --mount <Diskpath> -t vfat

Notitie

Voer de volgende opdracht uit om de beschikbare bestandssysteem in WSL2 weer te geven: cat /proc/filesystems
Wanneer een schijf is gekoppeld via WSL2 (Linux-bestandssysteem), is deze niet meer beschikbaar om te koppelen via een ext4-stuurprogramma op het Windows-bestandssysteem.

Een specifieke partitie koppelen

Standaard probeert WSL 2 de hele schijf te koppelen. Voer het volgende uit om een specifieke partitie te koppelen:

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

Dit werkt alleen als de schijf MBR (Master Boot Record) of GPT (GUID Partition Table) is. Meer informatie over partitiestijlen - MBR- en GPT-.

Specificeren van koppelingsopties

Voer de volgende opdracht uit om koppelopties op te geven:

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

Voorbeeld:

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

Notitie

Op dit moment worden alleen specifieke opties voor het bestandssysteem ondersteund. Algemene opties zoals ro, rw, noatime, ... worden niet ondersteund.

De schijf aansluiten zonder deze te mounten

Als het schijfschema niet wordt ondersteund door een van de bovenstaande opties, kunt u de schijf koppelen aan WSL 2 zonder deze te monteren door het volgende commando uit te voeren:

wsl --mount <DiskPath> --bare

Hierdoor wordt het blokapparaat binnen WSL 2 beschikbaar, zodat het daarvandaan handmatig gekoppeld kan worden. Gebruik lsblk om de beschikbare blokapparaten in WSL 2 weer te geven.

De koppelingsnaam opgeven

Notitie

Deze optie is alleen beschikbaar met WSL in de Microsoft Store

Standaard wordt de naam van het koppelpunt gegenereerd op basis van de naam van de fysieke schijf of VHD. Dit kan worden overschreven met --name. Voorbeeld:

wsl --mount <DiskPath> --name myDisk

Een schijf loskoppelen

Als u een schijf wilt loskoppelen van WSL 2, voert u het volgende uit:

wsl --unmount [DiskPath]

Als Diskpath wordt weggelaten, worden alle gekoppelde schijven uitgeworpen en losgekoppeld.

Notitie

Als één schijf niet kan worden ontkoppeld, kan WSL 2 worden gedwongen om af te sluiten door wsl --shutdownuit te voeren, waardoor de schijf wordt losgekoppeld.

Beperkingen

  • Op dit moment kunnen alleen volledige schijven worden gekoppeld aan WSL 2, wat betekent dat het niet mogelijk is om alleen een partitie te koppelen. Concreet betekent dit dat het niet mogelijk is om wsl --mount te gebruiken om een partitie op het opstartapparaat te lezen, omdat dat apparaat niet kan worden losgekoppeld van Windows.

  • Alleen bestandsystemen die natuurlijk door de kernel worden ondersteund, kunnen worden gekoppeld door wsl --mount. Dit betekent dat het niet mogelijk is om geïnstalleerde bestandssysteemstuurprogramma's (zoals ntfs-3g bijvoorbeeld) te gebruiken door wsl --mountaan te roepen.

  • Bestandssystemen die niet rechtstreeks door de kernel worden ondersteund, kunnen worden gekoppeld via een --bare-bijlage en vervolgens het relevante FUSE-stuurprogramma oproepen.