Aracılığıyla paylaş


WSL 2'de Linux diski bağlama

Windows tarafından desteklenmeyen bir Linux disk biçimine erişmek istiyorsanız, diskinizi bağlamak ve içeriğine erişmek için WSL 2'yi kullanabilirsiniz. Bu öğreticide WSL2'ye eklenecek diski ve bölümü tanımlama adımları, bunların nasıl bağlanacağı ve bunlara nasıl erişileceği ele alınacaktır.

Bir harici sürücüye bağlanıyorsanız ve bu bağlama yönergeleriyle başarılı değilseniz, USB cihazlarını bağlamayönergelerini denemek isteyebilirsiniz. wsl --mount komutu şu anda USB/flash sürücüler/SD kart okuyucuları desteklememektedir (bu sorun hakkında daha fazla bilgi).

Not

WSL 2'ye disk eklemek için yönetici erişimi gereklidir. WSL 2 wsl --mount komutu, şu anda kullanımda olan bir diski (veya diske ait bölümleri) bağlamayı desteklemez. wsl --mount, yalnızca bir bölüm istense bile her zaman diskin tamamını ekler. Windows yükleme diskini bağlayamazsınız.

Önkoşullar

Windows 11'de olmanız veya WSL'nin Microsoft Store sürümünü çalıştırıyor olmanız gerekir. WSL ve Windows sürümünüzü denetlemek için şu komutu kullanın: wsl.exe --version

Windows biçimlendirmesi ile Linux biçimlendirmesi arasında dış sürücü bağlama arasındaki farklar

Windows için biçimlendirilmiş dış sürücüler genellikle NTFS dosya sistemi biçimlendirmesini kullanır. Linux için biçimlendirilmiş dış sürücüler genellikle Ext4 dosya sistemi biçimlendirmesini kullanır.

Windows dosya sisteminize NTFS biçimli bir sürücü bağladıysanız, bağlı bir dizin oluşturarak (sudo mkdir /mnt/dyerine d kullanmak istediğiniz sürücü harfini yazarak) ve ardından dosya sistemi birlikte çalışma eklentisini komutuyla kullanarak WSL kullanarak drvfs Linux dağıtımınızdan bu sürücüye erişebilirsiniz:

sudo mount -t drvfs D: /mnt/d

Bağlama senaryoları hakkında daha fazla bilgi edinin.

Ext4 biçimli bir sürücünüz varsa, bunu Windows dosya sisteminize bağlayamazsınız. WSL ile Linux dağıtımınıza Ext4 biçimli bir sürücü bağlamak için aşağıdaki yönergeleri izleyerek wsl --mount komutunu kullanabilirsiniz.

Bölümlenmemiş disk bağlama

Herhangi bir bölümü olmayan bir diske sahipseniz, wsl --mount komutunu kullanarak diski doğrudan bağlayabilirsiniz. Öncelikle diski tanımlamanız gerekir.

  1. Disk tanımlama - Windows'ta kullanılabilir diskleri listelemek için şunu çalıştırın:

    Get-CimInstance -Query "SELECT * from Win32_DiskDrive"
    

    Disk yolları "DeviceID" sütunlarının altında bulunur. Genellikle \\.\PHYSICALDRIVE* biçiminin altındadır.

  2. Disk bağlama - PowerShell kullanarak, yukarıda bulunan Disk yolunu kullanarak diski bağlayabilirsiniz, çalıştırın:

    wsl.exe --mount <Disk>
    

    WSL'de bir sürücü bağlamak

Bölümlenmiş diski bağlama

Hangi dosya biçiminde olduğundan veya hangi bölümlere sahip olduğundan emin olmadığınız bir disk varsa, bağlamak için aşağıdaki adımları izleyebilirsiniz.

  1. Disk tanımlama - Windows'ta kullanılabilir diskleri listelemek için şunu çalıştırın:

    Get-CimInstance -Query "SELECT * from Win32_DiskDrive"
    

    Disk yolları "DeviceID" sütunlarının altında bulunur. Genellikle \\.\PHYSICALDRIVE* biçiminin altındadır.

  2. Listesi'ni seçin ve WSL 2 bağlanacak bölümleri seçin - Disk tanımlandıktan sonra şunu çalıştırın:

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

    Bu, diski WSL 2'de kullanılabilir hale getirir. (Örneğimizde, "<Disk>" "\\.\PHYSICALDRIVE*" olur.)

  3. Eklendikten sonra, WSL 2'de aşağıdaki komut çalıştırılarak bölüm listelenebilir:

    lsblk
    

    Bu, kullanılabilir blok cihazlarını ve bunların bölümlerini görüntüler.

Linux'ta bir blok cihazı /dev/<Device><Partition>olarak tanımlanır. Örneğin, /dev/sdb3, diskin 3bölüm numarasıdırsdb.

Örnek çıkış:

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

Dosya sistemi türünü tanımlama

Bir diskin veya bölümün dosya sistemi türünü bilmiyorsanız şu komutu kullanabilirsiniz:

blkid <BlockDevice>

Bu, algılanan dosya sistemi türünün çıkışını oluşturur (TYPE="<Filesystem>" biçimi altında).

Seçili bölümleri bağlama

Bağlamak istediğiniz bölümleri belirledikten sonra her bölümde şu komutu çalıştırın:

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

Not

Diskin tamamını tek bir birim olarak bağlamak istiyorsanız (disk bölümlenmemişse) --partition atlanabilir.

Atlanırsa --type , varsayılan dosya sistemi türü 'ext4' olur.

Disk içeriğine erişme

Bağlandıktan sonra, diske yapılandırma değeri tarafından işaret edilen yol altında erişilebilir: automount.root. Varsayılan değer /mnt/wsl.

Windows'tan diske Dosya Gezgini'nden şu konumlara giderek erişilebilir: \\wsl$\<Distro>\<Mountpoint> (herhangi bir Linux dağıtımı seçin).

Diskin bağlantısını kes

Diski WSL 2'den sökmek ve ayırmak istiyorsanız şunu çalıştırın:

wsl.exe --unmount [DiskPath]

WSL'de VHD bağlama

Not

Microsoft Store'dan WSL, VHD'yi doğrudan bağlamak için yeni bir bağımsız değişken sağlar: wsl --mount --vhd <pathToVHD>

sanal sabit disk dosyalarını (VHD) wsl --mountkullanarak WSL'ye de bağlayabilirsiniz. Bunu yapmak için önce Windows'da Mount-VHD komutunu kullanarak VHD'yi Windows'a bağlamanız gerekir. Bu komutu yönetici ayrıcalıklarıyla çalıştırdığınızdan emin olun. Aşağıda bu komutu kullandığımız ve ayrıca disk yolunun çıkışını yaptığımız bir örnek verilmiştir. <pathToVHD> yerine gerçek VHD yolunuz olduğundan emin olun.

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

Yukarıdaki çıkışı kullanarak bu VHD'nin disk yolunu alabilir ve önceki bölümdeki yönergeleri izleyerek bunu WSL'ye bağlayabilirsiniz.

Her WSL 2 dağıtımı şu adlı sanal sabit disk dosyası aracılığıyla depolandığından, diğer WSL dağıtımlarının sanal sabit disklerini bağlamak ve bunlarla etkileşime geçmek için de bu tekniği kullanabilirsiniz: ext4.vhdx. WSL 2 dağıtımları için VHD'ler varsayılan olarak şu yolda depolanır: %LocalAppData%\Packages\[distro]\LocalState\[distroPackageName], lütfen bu sistem dosyalarına erişirken dikkatli olun, bu bir güçlü kullanıcı iş akışıdır. Diskin kullanımda olmadığından emin olmak için bu diskle etkileşim kurmadan önce wsl --shutdown çalıştırdığınızdan emin olun.

Bağlama WSL VHD

Komut satırı referansı

Belirli bir dosya sistemini bağlama

Varsayılan olarak, WSL 2 cihazı ext4 olarak bağlamayı dener. Başka bir dosya sistemi belirtmek için şunu çalıştırın:

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

Örneğin, bir diski FAT olarak bağlamak için şunu çalıştırın:

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

Not

WSL2'de kullanılabilir dosya sistemlerini listelemek için şunu çalıştırın:

cat /proc/filesystems

Bir disk WSL2 (Linux dosya sistemi) aracılığıyla bağlandığında, artık Windows dosya sistemindeki bir ext4 sürücüsü aracılığıyla bağlanamaz.

Belirli bir bölümü bağlama

Varsayılan olarak, WSL 2 diskin tamamını bağlamayı dener. Belirli bir bölümü bağlamak için şunu çalıştırın:

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

Bu yalnızca disk MBR (Ana Önyükleme Kaydı) veya GPT (GUID Bölümleme Tablosu) olduğunda çalışır. Bölüm stilleri hakkında bilgi edinin - MBR ve GPT.

Bağlama seçeneklerini belirtme

Bağlama seçeneklerini belirtmek için şunu çalıştırın:

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

Örnek:

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

Not

Şu anda yalnızca dosya sistemine özgü seçenekler desteklenmektedir. ro, rw, noatime gibi genel seçenekler desteklenmez.

Diski monte etmeden önce takma

Disk düzeni yukarıdaki seçeneklerden herhangi biri tarafından desteklenmiyorsa, diski bağlamadan WSL 2'ye eklemek için şu komutu çalıştırabilirsiniz:

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

Bu işlem, blok cihazını WSL 2 içinde kullanılabilir hale getirir; böylece cihaz buradan elle bağlanabilir. WSL 2 içindeki kullanılabilir blok cihazlarını listelemek için lsblk kullanın.

Bağlama adını belirtme

Not

Bu seçenek yalnızca Microsoft Store’dan WSL ile kullanılabilir.

Bağlama noktası adı varsayılan olarak fiziksel disk veya VHD adı temelinde oluşturulur. Bu, --nameile geçersiz kılınabilir.

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

Örnek:

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

Diski ayırma

Bir diski WSL 2'den ayırmak için şunu çalıştırın:

wsl.exe --unmount [DiskPath]

Diskpath yok edilirse, tüm bağlı diskler çıkartılır ve bağlantısı koparılır.

Not

Eğer bir disk çıkarılamazsa, WSL 2 wsl --shutdownçalıştırılarak zorla kapatılabilir ve bunun sonucunda disk ayrılır.

Sınırlama

  • Şu anda WSL 2'ye yalnızca tüm diskler eklenebilir, yani yalnızca bir bölüm eklemek mümkün değildir. Açıkçası, bu, önyükleme cihazındaki bir bölümü okumak için wsl --mount kullanmanın mümkün olmadığı anlamına gelir, çünkü bu cihaz Windows'tan ayrılamaz.

  • yalnızca çekirdekte yerel olarak desteklenen dosya sistemleri wsl --mounttarafından bağlanabilir. Bu, yüklü dosya sistemi sürücülerini (örneğin ntfs-3g) wsl --mountçağırarak kullanmanın mümkün olmadığı anlamına gelir.

  • Çekirdek tarafından doğrudan desteklenmeyen dosya sistemleri bir --bare ekleme ve ilgili FUSE sürücüsünü çağırma yoluyla bağlanabilir.