Udostępnij za pośrednictwem


Instalowanie dysku z systemem Linux w programie WSL 2

Jeśli chcesz uzyskać dostęp do formatu dysku systemu Linux, który nie jest obsługiwany przez system Windows, możesz użyć programu WSL 2, aby zainstalować dysk i uzyskać dostęp do jego zawartości. W tym samouczku omówiono kroki identyfikowania dysku i partycji w celu dołączenia do programu WSL2, sposobu ich instalowania i uzyskiwania do nich dostępu.

Jeśli podłączasz dysk zewnętrzny i nie osiągasz sukcesu z tymi instrukcjami montażu, możesz spróbować wykonać instrukcje, aby Podłącz urządzenia USB. Polecenie wsl --mount nie obsługuje obecnie napędów USB, dysków flash ani czytników kart SD (dowiedz się więcej o tym problemie).

Notatka

Aby dołączyć dysk do programu WSL 2, wymagany jest dostęp administratora. Polecenie WSL 2 mount nie obsługuje instalowania dysku (lub partycji należących do dysku), które są obecnie używane. wsl --mount zawsze dołącza cały dysk, nawet jeśli żądana jest tylko partycja. Nie można zainstalować dysku instalacyjnego systemu Windows.

Warunki wstępne

Musisz mieć system Windows 11 Build 22000 lub nowszy albo mieć uruchomioną wersję WSL ze sklepu Microsoft Store. Aby sprawdzić wersję programu WSL i systemu Windows, użyj polecenia: wsl.exe --version

Różnice między instalowaniem dysku zewnętrznego za pomocą formatowania systemu Windows a formatowaniem systemu Linux

Dyski zewnętrzne sformatowane dla systemu Windows zwykle używają formatowania systemu plików NTFS. Dyski zewnętrzne sformatowane dla systemu Linux zwykle używają formatowania systemu plików Ext4.

Jeśli na systemie plików systemu Windows został zainstalowany dysk sformatowany w systemie plików NTFS, możesz uzyskać dostęp do tego dysku z dystrybucji systemu Linux przy użyciu systemu WSL, tworząc zainstalowany katalog (sudo mkdir /mnt/d, zastępując ciąg "d" literą dysku, której chcesz użyć), a następnie używając wtyczki międzyoperacyjnej systemu plików drvfs za pomocą polecenia :

sudo mount -t drvfs D: /mnt/d

Dowiedz się więcej o scenariuszach montażu.

Jeśli masz dysk w formacie Ext4, nie można go zainstalować w systemie plików systemu Windows. Aby zainstalować dysk w formacie Ext4 w dystrybucji systemu Linux za pomocą programu WSL, możesz użyć polecenia wsl --mount zgodnie z poniższymi instrukcjami.

Instalowanie niepartycjonowanego dysku

Jeśli masz dysk, który nie ma żadnych partycji, możesz zainstalować go bezpośrednio przy użyciu polecenia wsl --mount. Najpierw należy zidentyfikować dysk.

  1. Zidentyfikuj dysku — aby wyświetlić listę dostępnych dysków w systemie Windows, uruchom polecenie:

    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    

    Ścieżki dysków są dostępne w kolumnach "DeviceID". Zazwyczaj w formacie \\.\PHYSICALDRIVE*.

  2. Zainstaluj dysk — za pomocą programu PowerShell można zainstalować dysk przy użyciu ścieżki dyskowej odnalezionej powyżej, uruchom polecenie:

    wsl --mount <DiskPath>
    

    Instalowanie dysku w WSL

Instalowanie dysku podzielonego na partycje

Jeśli masz dysk, którego nie masz pewności, w jakim formacie pliku znajduje się lub jakie partycje ma, możesz wykonać poniższe kroki, aby go zainstalować.

  1. Zidentyfikuj dysku — aby wyświetlić listę dostępnych dysków w systemie Windows, uruchom polecenie:

    GET-CimInstance -query "SELECT * from Win32_DiskDrive"
    

    Ścieżki dysków są wyświetlane po "DeviceID", zwykle w formacie \\.\PHYSICALDRIVE*.

  2. Lista i wybierz partycje do zamontowania w WSL 2 — po zidentyfikowaniu dysku uruchom polecenie:

    wsl --mount <DiskPath> --bare
    

    Spowoduje to udostępnienie dysku w programie WSL 2. (W naszym przykładzie <DiskPath> jest \\.\PHYSICALDRIVE*.

  3. Po dołączeniu partycja może zostać wyświetlona, uruchamiając następujące polecenie w programie WSL 2:

    lsblk
    

    Spowoduje to wyświetlenie dostępnych urządzeń blokowych i ich partycji.

W systemie Linux urządzenie blokowe jest identyfikowane jako /dev/<Device><Partition>. Na przykład /dev/sdb3 jest numerem partycji 3 dysku sdb.

Przykładowe dane wyjściowe:

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

Identyfikowanie typu systemu plików

Jeśli nie znasz typu systemu plików dysku lub partycji, możesz użyć tego polecenia:

blkid <BlockDevice>

Spowoduje to wyjście wykrytego typu systemu plików (w formacie TYPE="<Filesystem>").

Instalowanie wybranych partycji

Po zidentyfikowaniu partycji, które chcesz zainstalować, uruchom to polecenie na każdej partycji:

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

Notatka

Jeśli chcesz zainstalować cały dysk jako pojedynczy wolumin (tj. jeśli dysk nie jest partycjonowany), --partition można pominąć.

Jeśli pominięto, domyślnym typem systemu plików jest "ext4".

Uzyskiwanie dostępu do zawartości dysku

Po instalacji można uzyskać dostęp do dysku w ścieżce wskazywanej przez wartość konfiguracji: automount.root. Wartość domyślna to /mnt/wsl.

W systemie Windows dostęp do dysku można uzyskać w Eksploratorze plików, nawigując do: \\wsl$\<Distro>\<Mountpoint> (wybierz dowolną dystrybucję systemu Linux).

Odinstalowywanie dysku

Jeśli chcesz odinstalować i odłączyć dysk z programu WSL 2, uruchom polecenie:

wsl --unmount <DiskPath>

Instalowanie wirtualnego dysku twardego w programie WSL

Notatka

WSL ze sklepu Microsoft Store wprowadza nowy argument umożliwiający bezpośrednie zainstalowanie dysku VHD: wsl --mount --vhd <pathToVHD>

Możesz również zainstalować pliki wirtualnego dysku twardego (VHD) w programie WSL przy użyciu wsl --mount. W tym celu należy najpierw zainstalować dysk VHD w systemie Windows przy użyciu polecenia Mount-VHD w systemie Windows. Pamiętaj, aby uruchomić to polecenie z uprawnieniami administratora. Poniżej przedstawiono przykład użycia tego polecenia, który pokazuje również rezultat ścieżki dysku. Pamiętaj, aby zastąpić <pathToVHD> rzeczywistą ścieżką VHD.

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

Powyższe dane wyjściowe umożliwiają uzyskanie ścieżki dysku dla tego dysku VHD i zainstalowanie go w programie WSL zgodnie z instrukcjami w poprzedniej sekcji.

Można również użyć tej techniki, aby zainstalować wirtualne dyski twarde innych dystrybucji WSL i korzystać z nich, ponieważ każda dystrybucja WSL 2 jest przechowywana za pośrednictwem wirtualnego pliku dysku twardego o nazwie: ext4.vhdx. Domyślnie wirtualne dyski twarde dla dystrybucji WSL 2 są przechowywane w tej ścieżce: C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName], należy zachować ostrożność podczas uzyskiwania dostępu do tych plików systemowych, ponieważ jest to procedura dla zaawansowanych użytkowników. Przed rozpoczęciem interakcji z tym dyskiem upewnij się, że dysk nie jest używany, należy uruchomić wsl --shutdown.

instalowanie dysku VHD WSL

Odniesienie do wiersza poleceń

Instalowanie określonego systemu plików

Domyślnie program WSL 2 podejmie próbę zainstalowania urządzenia jako ext4. Aby określić inny system plików, uruchom polecenie:

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

Aby na przykład zamontować dysk jako FAT, uruchom polecenie:

wsl --mount <Diskpath> -t vfat

Notatka

Aby wyświetlić listę dostępnych systemów plików w programie WSL2, uruchom polecenie: cat /proc/filesystems
Gdy dysk został zainstalowany za pośrednictwem systemu plików WSL2 (Linux), nie jest już dostępny do zainstalowania za pośrednictwem sterownika ext4 w systemie plików Windows.

Instalowanie określonej partycji

Domyślnie program WSL 2 próbuje zainstalować cały dysk. Aby zainstalować określoną partycję, uruchom polecenie:

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

Działa to tylko wtedy, gdy dysk to MBR (główny rekord rozruchowy) lub GPT (tabela partycji GUID). Przeczytaj o stylach partycji — MBR i GPT.

Określanie opcji montowania

Aby określić opcje montowania, uruchom polecenie:

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

Przykład:

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

Notatka

Obecnie obsługiwane są tylko opcje specyficzne dla systemu plików. Opcje ogólne, takie jak ro, rw, noatime, ..., nie są obsługiwane.

Dołączanie dysku bez instalowania go

Jeśli schemat dysku nie jest obsługiwany przez żadną z powyższych opcji, możesz dołączyć dysk do programu WSL 2 bez instalowania go, uruchamiając polecenie:

wsl --mount <DiskPath> --bare

To sprawi, że urządzenie blokowe będzie dostępne w WSL 2, co pozwoli na jego ręczne zamontowanie. Użyj lsblk, aby wyświetlić listę dostępnych urządzeń blokowych w środowisku WSL 2.

Określanie nazwy montowania

Notatka

Opcja ta jest dostępna tylko w przypadku WSL ze sklepu Microsoft Store

Domyślnie nazwa punktu instalacji jest generowana na podstawie dysku fizycznego lub nazwy dysku VHD. Można to zastąpić --name. Przykład:

wsl --mount <DiskPath> --name myDisk

Odłączanie dysku

Aby odłączyć dysk z programu WSL 2, uruchom polecenie:

wsl --unmount [DiskPath]

Jeśli Diskpath zostało pominięte, wszystkie dołączone dyski są odinstalowywane i odłączane.

Notatka

Jeśli nie można odmontować jednego dysku, program WSL 2 może być wymuszony do zamknięcia poprzez uruchomienie wsl --shutdown, co spowoduje odłączenie dysku.

Ograniczenia

  • Obecnie do programu WSL 2 można dołączyć tylko całe dyski, co oznacza, że nie można dołączyć tylko partycji. Oznacza to, że nie można użyć wsl --mount do odczytania partycji na urządzeniu rozruchowym, ponieważ nie można odłączyć tego urządzenia od systemu Windows.

  • Tylko systemy plików, które są natywnie obsługiwane w jądrze, mogą być instalowane przez wsl --mount. Oznacza to, że nie można użyć zainstalowanych sterowników systemu plików (na przykład ntfs-3g), wywołując wsl --mount.

  • Systemy plików, które nie są bezpośrednio obsługiwane przez jądro, mogą być montowane poprzez --bare attach, a następnie poprzez wywołanie odpowiedniego sterownika FUSE.