Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez az útmutató bemutatja, hogyan kezelheti a WSL 2 használatával telepített Linux-disztribúciók által használt lemezterületet, beleértve a következőket:
- Hogyan ellenőrizhető a virtuális merevlemezen rendelkezésre álló lemezterület
- A VHD- méretének bővítése
- A VHD javítása hiba esetén
- .vhdx fájl- és lemezelérési útvonal megkeresése a telepített Linux-disztribúciókhoz
A Linux windowsos alrendszere (WSL 2) egy virtualizálási platformmal telepíti a Linux-disztribúciókat a gazda Windows operációs rendszer mellett, létrehozva egy virtuális merevlemezt (VHD) a telepített Linux-disztribúciók fájljainak tárolására. Ezek a virtuális merevlemezek az ext4 fájlrendszertípust használják, és a Windows-merevlemezen ext4.vhdx fájlként jelennek meg.
A WSL 2 automatikusan átméretezi ezeket a VHD-fájlokat a tárolási igényeknek megfelelően. Alapértelmezés szerint a WSL 2 által használt összes VHD-fájl kezdetben 1 TB maximális lemezterületet foglal le (WSL-kiadás 0.58.0-s kiadása előtt ez az alapértelmezett érték 512 GB- és 256 GB-os maximális értékre volt beállítva.
Ha a Linux-fájlok által igényelt tárterület meghaladja ezt a maximális méretet, hibaüzenetek jelennek meg arról, hogy elfogyt a lemezterület. A hiba elhárításához kövesse az alábbi útmutatót a Hogyan növeljük a WSL 2 virtuális merevlemez méretétcímű részében.
A rendelkezésre álló lemezterület ellenőrzése
Ellenőrizze a VHD-ben a WSL 2-vel telepített Linux-disztribúció lemezterületét a Linux Df paranccsal.
A rendelkezésre álló lemezterület ellenőrzéséhez nyisson meg egy PowerShell-parancssort, és írja be ezt a parancsot (cserélje le a <distribution-name> a tényleges terjesztési névre):
wsl.exe --system -d <distribution-name> df -h /mnt/wslg/distro
Ha ez a parancs nem működik Önnek, frissítsen a WSL Áruházbeli verziójára a wsl --update paranccsal, vagy próbálkozzon wsl df -h /.
A kimenet a következőket tartalmazza:
- fájlrendszer: A VHD fájlrendszer azonosítója
- Méret: A lemez teljes mérete (a VHD számára lefoglalt maximális terület)
- Használt: A virtuális merevlemezen jelenleg használt terület mennyisége
- Kihasználtság: A VHD-ben maradt terület mennyisége (lefoglalt méret mínusz felhasznált mennyiség)
- %használata: A fennmaradó lemezterület százalékos aránya (Felhasznált/Lefoglalt méret)
- csatlakoztatott: Könyvtár elérési útja, amelyen a lemez csatlakoztatva van
Ha azt látja, hogy közel jár a virtuális merevlemezhez lefoglalt lemezterület rendelkezésre álló mennyiségének eléréséhez, vagy ha már hibaüzenetet kapott, mert nincs szabad lemezterület, tekintse meg a következő szakaszt a Linux-disztribúcióhoz társított VHD számára lefoglalt maximális lemezterület kibontásának lépéseiről. A WSL által a VHD számára lefoglalt lemezterület mindig az alapértelmezett maximális mennyiséget (a WSL legújabb verziójában 1 TB- t) jeleníti meg, még akkor is, ha a tényleges Windows-eszközön a lemezterület ennél kisebb. A WSL csatlakoztat egy VHD-t, amely a használat során növekszik, így a Linux-disztribúció úgy látja, hogy az 1 TB-os maximális méretre nőhet.
A WSL 2 virtuális merevlemez méretének bővítése
Ha egy Linux-disztribúció VHD-méretét az alapértelmezett 1 TB maximális lemezterületen túl szeretné bővíteni, használja a wsl --manage parancsot, vagy kövesse az alábbi manuális lépéseket. (A korábbi WSL-kiadások maximális alapértelmezett értéke 512 GB vagy 256 GB lehet).
A VHD méretének megnövelése wsl --manage használatával.
A wsl --manage parancs csak a 2.5-ös és újabb WSL-kiadásokhoz érhető el.
A lefoglalt terület átméretezése a virtuális lemezen:
Az összes WSL-példány megszüntetése a következő parancs használatával:
wsl.exe --shutdownFuttassa a
wsl --manage <distribution name> --resize <memory string>. A támogatott memóriasztringek<Memory Value>B/M/MB/G/GB/T/TBformátumúak. A decimális értékek jelenleg nem támogatottak (például2.5TB).
A kimenetnek a következőhöz hasonlóan kell kinéznie:
e2fsck 1.46.5 (30-Dec-2021)
Pass 1: Checking inodes, blocks, and sizes
resize2fs 1.46.5 (30-Dec-2021)
The operation completed successfully.
A Linux-disztribúcióhoz tartozó virtuális meghajtó (ext4.vhdx) sikeresen ki lett bontva az új méretre.
Manuális bővítés
Linux-disztribúció VHD-méretének manuális lépésekkel történő kibővítése:
Állítsa le az összes WSL-példányt a következő paranccsal:
wsl.exe --shutdownMásolja a könyvtár elérési útját a számítógépre telepített Linux-disztribúcióhoz társított ext4.vhdx fájlba. További információt A Linux-disztribúciósvhdx-fájljának és lemezútvonalának megkeresése című témakörben talál.
Nyissa meg a Windows parancssorát rendszergazdai jogosultságokkal, majd nyissa meg a diskpart parancsértelmezőt a következő beírással:
diskpartMost következik egy
DISKPART>üzenet. Írja be a következő parancsot, és cserélje le a<pathToVHD>-t a Linux-disztribúcióhoz tartozóext4.vhdxfájl elérési útjára (a 2. lépésben másolva).Select vdisk file="<pathToVHD>"A virtuális lemezhez társított részletek megjelenítése, beleértve a Virtuális méret, amely a VHD aktuális maximális méretét jelöli:
detail vdiskÁt kell alakítania a virtuális méretet megabájttá. Ha például virtuális mérete: 512 GB, akkor ez 512000 MB. A megadott új értéknek nagyobbnak kell lennie, mint az eredeti érték. Az 512 GB-ról 1024 GB-ra növelt virtuális méret megduplázásához mb-ban adja meg az értéket: 1024000. Ügyeljen arra, hogy ne adjon meg a ténylegesen kívántnál magasabb értéket, mivel a virtuális lemezek méretének csökkentése sokkal bonyolultabb folyamat.
Adja meg a Linux-disztribúcióhoz lefoglalni kívánt új maximális méret értékét a Windows parancssorának
DISKPART>parancssorával:expand vdisk maximum=<sizeInMegaBytes>Lépjen ki a
DISKPART>parancssorból:exitIndítsa el ezt a Linux-disztribúciót. (Győződjön meg arról, hogy a WSL 2-ben fut. Ezt a következő paranccsal ellenőrizheti:
wsl.exe -l -v. A WSL 1 nem támogatott).A WSL elvégezheti a fájlrendszer méretének bővítését ehhez a disztribúcióhoz a WSL parancssorából futtatva ezeket a parancsokat. Ez az üzenet az első csatlakoztatási parancsra válaszul jelenhet meg: "/dev: nincs még csatlakoztatva a /dev-hez." Ez az üzenet biztonságosan figyelmen kívül hagyható.
sudo mount -t devtmpfs none /dev mount | grep ext4Másolja ki ennek a bejegyzésnek a nevét, amely a következőképpen fog kinézni:
/dev/sdX(az X bármilyen más karaktert jelöl). Az alábbi példában a X értéke b:sudo resize2fs /dev/sdb <sizeInMegabytes>MA fenti példában a virtuális merevlemez méretét 2048000 módosítottuk, így a parancs a következő lesz:
sudo resize2fs /dev/sdb 2048000M.Jegyzet
Előfordulhat, hogy telepítenie kell resize2fs. Ha igen, a következő paranccsal telepítheti:
sudo apt install resize2fs.A kimenet a következőhöz hasonlóan fog kinézni:
resize2fs 1.44.1 (24-Mar-2021) Filesystem at /dev/sdb is mounted on /; on-line resizing required old_desc_blocks = 32, new_desc_blocks = 38 The filesystem on /dev/sdb is now 78643200 (4k) blocks long.
A Linux-disztribúcióhoz tartozó virtuális meghajtó (ext4.vhdx) sikeresen ki lett bontva az új méretre.
Fontos
Azt javasoljuk, hogy Windows-eszközök vagy szerkesztők használatával ne módosítsa, ne helyezze át és ne érje el a AppData mappájában található WSL-hez kapcsolódó fájlokat. Ennek hatására a Linux-disztribúció megsérülhet. Ha windowsos linuxos fájljait szeretné elérni, az a \\wsl$\<distribution-name>\útvonalon keresztül lehetséges. Nyissa meg a WSL-disztribúciót, és írja be az explorer.exe .-t: így megtekintheti azt a mappát. További információt a következő blogbejegyzésben talál: Linux-fájlok elérése Windows.
VHD csatlakoztatási hiba javítása
Ha "a disztribúciós lemez csatlakoztatásával" kapcsolatos hibát tapasztal, annak oka lehet egy hirtelen leállás vagy áramkimaradás, ami miatt az adatvesztés elkerülése érdekében a Linux disztribúció virtuális merevlemeze írásvédett módba válthat. Az alábbi lépések végrehajtásával kijavíthatja és visszaállíthatja a disztribúciót a e2fsck Linux parancs használatával.
A blokkeszköz nevének azonosításához használja az lsblk parancsot
Amikor a WSL 2 linuxos disztribúciót telepít, a disztribúciót virtuális merevlemezként (VHD) csatlakoztatja saját fájlrendszerével. A Linux ezekre a merevlemezekre "blokkeszközökként" hivatkozik, és a lsblk paranccsal tekintheti meg az ezekről szóló információkat.
A WSL 2 által jelenleg használt blokkeszközök nevének megkereséséhez nyissa meg a disztribúciót, és írja be a következő parancsot: lsblk. (Vagy nyissa meg a PowerShellt, és írja be a következő parancsot: wsl.exe lsblk.) A kimenet a következőképpen fog kinézni:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 363.1M 1 disk
sdb 8:16 0 8G 0 disk [SWAP]
sdc 8:32 0 1.5T 0 disk
sdd 8:48 0 1T 0 disk /mnt/wslg/distro
A blokkeszközre vonatkozó információk a következőket tartalmazzák:
-
NAME: Az eszközhöz rendelt név sd[a-z] lesz, az egyes használt lemezekhez betűjellel ellátott SCSI-lemezre hivatkozva.
sdamindig a rendszer elosztása. - MAJ:MIN: A Linux kernel által az eszközök belső azonosításához használt számokat jelöli az eszköztípust képviselő első számmal (a 8 a kisszámítógép-rendszerillesztő/SCSI-lemezek esetében használatos).
- RM: Tudassa velünk, hogy az eszköz cserélhető -e (1) vagy sem (0).
- MÉRET: A kötet teljes mérete.
- RO: Adja meg, hogy az eszköz csak olvasható-e (1) vagy sem (0).
- TYPE: Az eszköz típusára (ebben az esetben a lemezre) hivatkozik.
- MOUNTPOINTS: A blokkeszközt tartalmazó fájlrendszer aktuális könyvtárára hivatkozik (a SWAP előre konfigurált inaktív memóriára vonatkozik, így nincs csatlakoztatási pont).
Írásvédett tartalék hiba
Amennyiben a WSL egy Linux-disztribúció megnyitásakor "csatolási hibát" észlel, a disztribúció csak olvasási módba kerülhet beállításra. Ha ez történik, a disztribúció a következő hibát jelenítheti meg az indítás során:
An error occurred mounting the distribution disk, it was mounted read-only as a fallback.
Ha egy disztribúció írásvédettként indul el, a fájlrendszerbe való írási kísérletek a következőhöz hasonló hibával meghiúsulnak:
$ touch file
touch: cannot touch 'file': Read-only file system
Ha helyre szeretne állítani egy lemez csatlakoztatási hibáját a WSL-ben, és ismét használható/írható állapotba szeretné visszaállítani, a wsl.exe --mount paranccsal újra csatlakoztathatja a lemezt az alábbi lépésekkel:
Az összes WSL-disztribúció leállításához nyissa meg a PowerShellt rendszergazdaként (emelt szintű parancssorban), és adja meg a parancsot:
wsl.exe --shutdownÍrja be a csatlakoztatási parancsot, és cserélje le
<path-to-ext4.vhdx>a terjesztési .vhdx fájl elérési útjára. Ha segítségre van szüksége a fájl megkereséséhez, olvassa el A Linux-disztribúciósVHD-fájljának és lemezútvonalának megkeresése.wsl.exe --mount <path-to-ext4.vhdx> --vhd --bareA PowerShell
wsl.exe lsblkparancsával azonosítsa a disztribúció blokkeszközének nevét (sd[a-z]), majd írja be a következő parancsot a lemez javításához (<device>lecserélése a megfelelő blokkeszköznévre( például "sdc"). Ae2fsckparancs ellenőrzi az ext4 fájlrendszereket (a WSL-vel telepített disztribúciók által használt típust) a hibákért, és ennek megfelelően javítja ki őket.wsl.exe sudo e2fsck -f /dev/<device>Jegyzet
Ha csak egyetlen Linux-disztribúció van telepítve, "használatban lévő ext fájl" hibaüzenet jelenhet meg, és telepítenie kell egy további disztribúciót a
wsl.exe lsblkfuttatásához. A javítás befejezése után eltávolíthatja a disztribúciót. Emellett előfordulhat, hogy be kell zárnia a Docker Desktopot Windows rendszeren, hogy elkerülje aWsl/Service/CreateInstance/MountVhd/HCS/ERROR_SHARING_VIOLATIONhibát awsl.exe sudo e2fsck -f /dev/sdcparancs futtatása közben.Ha a javítás befejeződött, bontsa le a lemezt a PowerShellben a következő beírással:
wsl.exe --unmount
Figyelmeztetés
A következő parancsot használhatja: sudo mount -o remount,rw / írásvédett disztribúciót adhat vissza használható/írható állapotba, de az összes módosítás memóriában marad, és így a terjesztés újraindításakor elveszik. Javasoljuk, hogy a lemez csatlakoztatásához és javításához használja a fenti lépéseket.
A .vhdx fájl és lemez elérési útja a Linux-disztribúcióhoz
A Linux-disztribúció .vhdx fájl- és könyvtárelérési útvonalának megkereséséhez nyissa meg a PowerShellt, és használja a következő szkriptet, és cserélje le a <distribution-name> a tényleges terjesztési névre:
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<distribution-name>' }).GetValue("BasePath") + "\ext4.vhdx"
Az eredmény egy %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx-hez hasonló elérési utat jelenít meg. Például:
C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
Ez a felsorolt Linux-disztribúcióhoz társított ext4.vhdx fájl elérési útja.
Windows Subsystem for Linux