Linux ext4 partíciók használata Windowson
Ha valamilyen Windows verziót használunk, jobbára NTFS, illetve külső eszközök (pendrive, USB háttértár) esetén exFAT fájlrendszerrel találkozunk napjaink során.
De mi a helyzet akkor, ha a sors egy linuxos fájlrendszerrel (pl. ext4) sodor össze? Ez esetben csak Linuxot futtató gép jöhet szóba, ha hozzá akarunk férni mondjuk egy ext4-es pendrive-hoz?
Szerencsére nem, ugyanis a WSL (Windows Subsystem for Linux) már jó ideje a Windowsok része (még ha nincs is bekapcsolva alapértelmezetten), ami viszont, lévén Linux kernel, tud ext4-et is kezelni. Azonban tudni érdemes, hogy a WSL egy virtualizált Linux, nem tud egy könnyen hozzáférni a hardveres eszközökhöz, azokat alapvetően a Windowson keresztül éri el, nem block device-ként (ahogy teszi a nem virtualizált, gépre telepített Linux).
Mégis, ha nagyon akarjuk, nem kell Linux live CD ahhoz, hogy megnézzük, mi is van azon az ext4-es partíción. Jelen posztnak nem része a WSL esetleges feltelepítése, ezért azt feltételezem, hogy az már működik. Minden parancs PowerShell-ben íródik, tehát azt először el kell indítani, ráadásul adminisztrátori módban.
Van a gépünkön WSL?
wsl --version
Valami ilyesmit kell kapjunk:
WSL version: 2.5.9.0
Kernel version: 6.6.87.2-1
WSLg version: 1.0.66
MSRDC version: 1.2.6074
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26200.7623
Tehát itt WSL 2 van a gépen, ezzel már megoldható az, amit most akarunk csinálni.
Partíciók listázása
Innentől nyert ügyünk van, ezen a ponton kell csatlakoztatni az USB-s tárolót a géphez. Ezt követően szükség van a lemez fizikai elérhetőségére, ami szintén nem egyértelmű, de nem is túlzottan nehéz.
Lemez azonosítója
Get-Disk
Itt kapunk egy szép kis listát a lehetséges fizikai storage eszközökről, itt legalább egynek lennie kell, ami a 0-ás sorszámot viseli, ez lesz az a lemez, amiről a Windows fut. Ha tényleg csatlakoztattunk mást, akkor lesz még 1, 2, ... sorszámú is. Jegyezzük meg azt a sorszámot, amin az ext4 partíció van. A példánkban most ez legyen az 1-es.
Partíció azonosítója
Kell még a lemezen belüli partíció azonosítója is.
Get-Partition -DiskNumber 1
Itt az 1-es helyére a saját gépünkön lévő lemez azonosítót írjuk be.
Ha csak egy ext4 van az USB-s eszközön, akkor a most kapott lista mindössze egy elemű, és annak a sorszáma 1-es lesz. Mindenképp ellenőrizzük, hogy jó partíció sorszámot válasszunk. A mi példánkban ez az 1-es lesz.
Az ext4 partíció mountolása
Már nagyon jó úton haladunk, mountoljuk a lemezt. Figyelem, a WSL-be mountolt lemez annak idejére elérhetetlenné válik a Windowsban!
wsl --mount \\.\PHYSICALDRIVE<disknumber> --partition <partnumber>
Ez szorul némi magyarázatra. A disknumber lesz a lemez azonosítója, ez a fenti példánál 1-es. A partnumber pedig az 1-es sorszámú lemezen a partíció sorszáma, ez most szintén 1-es.
A végleges command tehát:
wsl --mount \\.\PHYSICALDRIVE1 --partition 1
Ha ez sikerült, akkor a csatolt ext4 fájlrendszerű USB tárolót már el lehet érni a Fájlkezelőből. A bal oldali menüsáv vége felé kell lennie egy Linux nevű opciónak a szokásos linuxos pingvinnel szimbolizálva, ezen belül lesz a telepített WSL Linux (mondjuk Ubuntu), majd mnt, wsl, ezen belül pedig valami ilyesmit kell keressünk: PHYSICALDRIVE1p1, ami névben előbb a diszk száma, majd a p betű után a partíció sorszáma szerepel. Itt találhatók az ext4 partíción lévő fájlok. Windowsban, fizikai Linux nélkül.
Leválasztás
- zárjunk be mindent, ami az ext4-et használja, pl. a fájlkezelőt
wsl --shutdownGet-Disk
Ezt követően, a Get-Disk parancs után, ha online a lemez, már a Windows (és nem a WSL) használja a lemezt.