Obecné
Co je subsystém Windows pro Linux (WSL)?
Subsystém Windows pro Linux (WSL) je funkce operačního systému Windows, která umožňuje spouštět linuxový systém souborů spolu s nástroji příkazového řádku Linuxu a aplikacemi grafického uživatelského rozhraní přímo ve Windows společně s tradičními desktopovými a aplikacemi pro Windows.
Další podrobnosti najdete na stránce s informacemi o produktu.
Kdo je WSL?
Jedná se především o nástroj pro vývojáře, zejména webové vývojáře, ty, kteří pracují na opensourcových projektech nebo nasazují do serverových prostředí Linuxu. WSL je určený pro každého, kdo má rád Bash, běžné linuxové nástroje (sed, awkatd.) a linuxové architektury (Ruby, Python atd.), ale má také rád použití nástrojů pro produktivitu Windows.
Co můžu dělat s WSL?
WSL umožňuje spouštět Linux v prostředí Bash s výběrem distribuce (Ubuntu, Debian, OpenSUSE, Kali, Alpine atd.). Pomocí Bash můžete spouštět nástroje a aplikace příkazového řádku pro Linux. Zadejte a stiskněte enter. Zobrazí se například lsb_release -a podrobnosti o distribuci Linuxu, která je aktuálně spuštěná:
K systému souborů místního počítače se dostanete také z prostředí Linux Bash – místní jednotky jsou připojené pod složkou /mnt . Jednotka je například C: připojena pod /mnt/c:
Mohli byste popsat typický vývojový pracovní postup, který zahrnuje WSL?
WSL cílí na cílovou skupinu vývojářů se záměrem, který se má použít jako součást vnitřní vývojové smyčky. Řekněme, že Sam vytváří kanál CI/CD (kontinuální integrace a průběžné doručování) a před nasazením do cloudu ho chce nejprve otestovat na místním počítači (přenosném počítači). Sam může povolit WSL (& WSL 2 ke zlepšení rychlosti a výkonu) a pak použít originální linuxovou instanci Ubuntu místně (na přenosném počítači) s jakýmkoli příkazy a nástroji Bash, které preferují. Jakmile se vývojový kanál ověří místně, sam pak může tento kanál CI/CD odeslat do cloudu (tj. Azure) tak, že ho nastaví do kontejneru Dockeru a nasdílí kontejner do cloudové instance, kde běží na virtuálním počítači Ubuntu připraveném pro produkční prostředí.
Co je Bash?
Bash je oblíbené textové prostředí a jazyk příkazového řádku. Jedná se o výchozí prostředí zahrnuté v Ubuntu a dalších distribucích Linuxu. Uživatelé zadává příkazy do prostředí, aby mohli spouštět skripty nebo spouštět příkazy a nástroje pro provádění mnoha úloh.
Jak to funguje?
Podívejte se na tento článek na blogu příkazového řádku Windows: Podrobné informace o tom, jak WSL umožňuje systému Windows přístup k linuxovým souborům , který podrobně popisuje základní technologii.
Proč bych ve virtuálním počítači místo Linuxu používal WSL?
WSL vyžaduje méně prostředků (procesor, paměť a úložiště) než celý virtuální počítač. WSL také umožňuje spouštět linuxové nástroje a aplikace příkazového řádku spolu s příkazovým řádkem Windows, desktopovými a storemi a přistupovat k souborům Windows z Linuxu. To vám umožní používat aplikace pro Windows a linuxové nástroje příkazového řádku ve stejné sadě souborů, pokud chcete.
Proč bych používal(a) například Ruby v Linuxu místo ve Windows?
Některé multiplatformní nástroje byly vytvořeny za předpokladu, že se prostředí, ve kterém běží, chová jako Linux. Některé nástroje například předpokládají, že mají přístup k velmi dlouhým cestám k souborům nebo že existují konkrétní soubory nebo složky. To často způsobuje problémy ve Windows, které se často chovají odlišně od Linuxu.
Mnoho jazyků, jako je Ruby a Node.js, se často přeportují a skvěle běží ve Windows. Ne všechny vlastníky knihovny Ruby Gem nebo node/NPM ale portují své knihovny pro podporu Windows a mnoho z nich má závislosti specifické pro Linux. To může často vést k tomu, že systémy vytvořené pomocí takových nástrojů a knihoven trpí chybami sestavení a někdy i nežádoucím chováním modulu runtime ve Windows.
Jedná se jen o některé problémy, které způsobily, že mnoho lidí požádalo Microsoft o vylepšení nástrojů příkazového řádku windows a co nás vedlo k partnerství s Canonical, aby nativní nástroje příkazového řádku Bash a Linux mohly běžet ve Windows.
Co to znamená pro PowerShell?
Při práci s projekty OSS existuje celá řada scénářů, ve kterých je nesmírně užitečné převést do prostředí Bash z příkazového řádku PowerShellu. Podpora Bash je doplňková a posiluje hodnotu příkazového řádku ve Windows, což umožňuje PowerShellu a komunitě PowerShellu využívat další oblíbené technologie.
Přečtěte si další informace o blogu týmu PowerShellu – Bash pro Windows: Proč je to úžasné a co to znamená pro PowerShell.
Jaké procesory WSL podporuje?
WSL podporuje procesory x64 a Arm64.
Jak získám přístup k jednotce C:
Přípojné body pro pevné disky na místním počítači se automaticky vytvoří a poskytují snadný přístup k systému souborů Windows.
/mnt/<písmeno> jednotky/
Příklad použití by byl cd /mnt/c pro přístup c:\
Jak nastavím Správce přihlašovacích údajů Gitu? (Jak ve WSL používám oprávnění Gitu pro Windows?)
Podívejte se na kurz Začínáme používat Git v subsystému Windows pro Linux, který obsahuje část o nastavení Správce přihlašovacích údajů Gitu a ukládání ověřovacích tokenů ve Správci přihlašovacích údajů systému Windows.
Jak se dá soubor s Windows používat s aplikací pro Linux?
Jednou z výhod WSL je přístup k souborům prostřednictvím aplikací nebo nástrojů pro Windows i Linux.
WSL připojí pevné jednotky počítače pod /mnt/<drive> složku v distribucích Linuxu. Například jednotka C: je připojena pod /mnt/c/.
Pomocí připojených jednotek můžete upravovat kód, C:\dev\myproj\ například pomocí sady Visual Studio nebo VS Code, a sestavit/otestovat tento kód v Linuxu tak, že ke stejným souborům přistupujete přes /mnt/c/dev/myproj.
Přečtěte si další informace v článku o práci v systémech souborů s Windows a Linuxem .
Liší se soubory na jednotce s Linuxem od připojené jednotky Windows?
Soubory v kořenovém adresáři Linuxu (tj.
/) řídí WSL, které odpovídají chování Linuxu, včetně mimo jiné:- Soubory, které obsahují neplatné znaky názvu souboru systému Windows
- Symlinky vytvořené pro uživatele bez oprávnění správce
- Změna atributů souboru prostřednictvím
chmodachown - Citlivost velkých a malých písmen souborů nebo složek
Soubory na připojených jednotkách jsou řízeny systémem Windows a mají následující chování:
- Citlivost případu podpory
- Všechna oprávnění jsou nastavená tak, aby nejlépe odrážela oprávnění Windows.
Jak můžu odinstalovat distribuci WSL?
Pokud chcete odebrat distribuci z WSL a odstranit všechna data přidružená k dané linuxové distribuci, spusťte wsl --unregister <Distro> místo, kde <Distro> je název distribuce Linuxu, který můžete vidět ze seznamu v wsl -l příkazu.
Kromě toho můžete aplikaci distribuce Linuxu odinstalovat na svém počítači stejně jako jakoukoli jinou aplikaci pro Store.
Další informace o příkazech wsl najdete v článku Základní příkazy pro WSL.
Jak spustit server OpenSSH?
OpenSSH se dodává s Windows jako volitelná funkce. Podívejte se na dokumentaci k instalaci OpenSSH . Oprávnění správce ve Windows jsou nutná ke spuštění OpenSSH ve WSL. Pokud chcete spustit server OpenSSH, spusťte distribuci WSL (tj. Ubuntu) nebo Terminál Windows jako správce. Existuje několik prostředků, které pokrývají scénáře SSH s WSL. Podívejte se na blogové články Scotta Hanselmana: Jak SSH připojit k počítači s Windows 10 z Linuxu NEBO Windows NEBO kdekoli, Jak SSH do WSL2 ve Windows 10 z externího počítače, SNADNÝ ZPŮSOB, jak SSH do Bash a WSL2 ve Windows 10 z externího počítače a jak používat Integrované OpenSSH pro Windows 10 k automatickému SSH na vzdáleném počítači s Linuxem.
Jak změním jazyk zobrazení WSL?
Instalace WSL se pokusí automaticky změnit národní prostředí Ubuntu tak, aby odpovídalo národnímu prostředí vaší instalace systému Windows. Pokud toto chování nechcete, můžete po dokončení instalace změnit národní prostředí Ubuntu spuštěním tohoto příkazu. Aby se tato změna projevila, budete muset znovu otevřít distribuci WSL.
Následující příklad změní národní prostředí na en-US:
sudo update-locale LANG=en_US.UTF8
Proč nemám přístup k internetu z WSL?
Někteří uživatelé nahlásili problémy s některými aplikacemi brány firewall, které ve WSL blokují přístup k internetu. Hlášené brány firewall jsou:
- Kaspersky
- AVG
- Avast
- Symantec Endpoint Protection
- F-Secure
V některých případech vypnutí firewallu umožňuje přístup. V některých případech se zdá, že samotná instalace brány firewall blokuje přístup.
Jak získám přístup k portu z WSL ve Windows?
WSL sdílí IP adresu Windows, protože je spuštěná ve Windows. Jako takový můžete přistupovat k libovolným portům na místním hostiteli, například pokud jste měli webový obsah na portu 1234, můžete https://localhost:1234 se dostat do prohlížeče Windows. Další informace najdete v tématu Přístup k síťovým aplikacím.
Jak můžu zálohovat distribuce WSL?
Nejlepší způsob, jak zálohovat nebo přesouvat distribuce, jepříkazy pro import exportu/ dostupné ve Windows verze 1809 a novější. Pomocí příkazu můžete exportovat celou distribuci do tarballu wsl --export . Tuto distribuci pak můžete importovat zpět do WSL pomocí wsl --import příkazu, který může pojmenovat nové umístění jednotky pro import, což vám umožní zálohovat a ukládat stavy (nebo přesunout) distribuce WSL. Další informace o přesunu distribucí WSL najdete v tématu Jak můžu přenést soubory WSL z jednoho počítače do jiného?
Tradiční služby zálohování, které zálohuje soubory ve složkách AppData (jako je Windows Backup), nebudou poškozené vaše soubory s Linuxem.
Můžu použít WSL pro produkční scénáře?
Ano, ale WSL byl navržen a sestaven tak, aby se používal s pracovními postupy vývoje vnitřní smyčky. Ve WSL existují funkce návrhu, které ho pro tento účel skvěle hodí, ale mohou být náročné pro scénáře související s produkčním prostředím v porovnání s jinými produkty. Naším cílem je jasně určit, jak se WSL liší od běžného prostředí virtuálních počítačů, abyste mohli rozhodnout, jestli vyhovuje vašim obchodním potřebám.
Hlavní rozdíly mezi WSL a tradičním produkčním prostředím jsou:
- WSL má jednoduchý nástrojový virtuální počítač, který se spouští, zastavuje a spravuje prostředky automaticky.
- Pokud nemáte otevřené popisovače souborů pro procesy Windows, virtuální počítač WSL se automaticky vypne. To znamená, že pokud ho používáte jako webový server, připojte se k němu přes SSH a ukončete ho, virtuální počítač se může vypnout, protože zjistí, že uživatelé ho dokončili, a vyčistí jeho prostředky.
- Uživatelé WSL mají úplný přístup ke svým instancím Linuxu. Životnost virtuálního počítače, registrovaných distribucí WSL atd., jsou všechna přístupná uživatelem a uživatel ho může upravit.
- WSL automaticky poskytuje přístup k souborům Windows.
- Cesty Windows se ve výchozím nastavení připojují k vaší cestě, což může způsobit neočekávané chování určitých linuxových aplikací v porovnání s tradičním linuxovým prostředím.
- WSL může spouštět spustitelné soubory Windows z Linuxu, což může také vést k jinému prostředí než k tradičnímu virtuálnímu počítači s Linuxem.
- Jádro Linuxu používané WSL se aktualizuje automaticky.
- Přístup k GPU ve WSL probíhá prostřednictvím
/dev/dxgzařízení, které směruje volání GPU do grafického procesoru Windows. Toto nastavení se liší od tradičního nastavení Linuxu. - V porovnání s holým linuxem a očekává se, že v budoucnu vzniknou další menší rozdíly, protože je upřednostněn pracovní postup vývoje vnitřních smyček.
Jak můžu přenést soubory WSL z jednoho počítače do jiného?
Tento úkol můžete provést několika způsoby:
- Nejjednodušší způsob je použít příkaz k exportu
wsl --export <Distro> <FileName> --format vhddistribuce WSL do souboru VHD. Tento soubor pak můžete zkopírovat do jiného počítače a importovat ho pomocíwsl --import <Distro> <InstallLocation> <FileName> --vhd. Další informace najdete v dokumentu o základních příkazech WSL v importu a exportu příkazů. - Výše uvedená implementace vyžaduje hodně místa na disku. Pokud nemáte hodně místa na disku, můžete soubory přesunout pomocí technik Linuxu:
- Slouží
tar -czf <tarballName> <directory>k vytvoření tarballu souborů. Tyto konkrétní soubory pak můžete zkopírovat do nového počítače a spustittar -xzf <tarballName>, abyste je extrahovali. - Seznam nainstalovanýchbalíčkůch souborů můžete také exportovat pomocí
aptnásledujícího příkazu:dpkg --get-selections | grep -v deinstall | awk '{print $1}' > package_list.txta pak tyto stejné balíčky přeinstalujte na jiném počítači pomocí příkazu, jakosudo apt install -y $(cat package_list.txt)je třeba po přenesení souboru.
- Slouží
Jak můžu přesunout distribuci WSL na jinou jednotku nebo umístění?
Můžete to provést pomocí PowerShellu. Níže jsou uvedeny potřebné příkazy a vysvětlení jednotlivých kroků. Otevřete okno PowerShellu a upravte hodnoty mezi <> značkami tak, aby odpovídaly vašemu konkrétnímu případu použití:
# Export your distro to that folder as a VHD
wsl --export <Distro, e.g: Ubuntu> <FileName, e.g: D:\WSLDistros\Ubuntu\ext4.vhdx> --format vhd
# Unregister your old distro
# Please note this will erase your existing distro's file contents, please ensure the backup file you created in the 2nd step is present at the location and that the export operation completed successfully.
# Please exercise caution when using this command, as it is destructive and could cause data loss.
wsl --unregister <Distro, e.g: Ubuntu>
# Import your VHD backup
wsl --import-in-place <Distro, e.g: Ubuntu> <FileName, e.g: D:\WSLDistros\Ubuntu\ext4.vhdx>
Jak nastavit výchozí uživatelský účet
Výchozí uživatelský účet můžete nastavit nastavením wsl.conf hodnoty user.default=<name>
WSL 2
Je WSL 2 k dispozici ve Windows 10 Home a Windows 11 Home?
Ano. WSL 2 je k dispozici ve všech desktopových skladových posílacích, kde je k dispozici WSL, včetně Windows 10 Home a Windows 11 Home.
Konkrétně WSL2 vyžaduje povolení dvou funkcí:
- Platforma virtuálních počítačů (podmnožina Hyper-V)
- Subsystém Windows pro Linux
Používá WSL 2 technologii Hyper-V?
Nejnovější verze WSL používá podmnožinu architektury Hyper-V k povolení virtualizace. Tato podmnožina je k dispozici jako volitelná komponenta s názvem "Virtual Machine Platform", která je k dispozici ve všech skladových položce Desktopu.
Co se stane s WSL 1? Bude opuštěný?
V současné době nemáme žádné plány na vyřazení WSL 1. Můžete spustit distribuce WSL 1 a WSL 2 vedle sebe a můžete kdykoli upgradovat a downgradovat libovolnou distribuci. Přidání WSL 2 jako nové architektury představuje lepší platformu pro tým WSL, aby poskytoval funkce, díky kterým WSL představuje úžasný způsob, jak spustit linuxové prostředí ve Windows.
Budu moct spustit WSL 2 a další nástroje virtualizace třetích stran, jako je VMware nebo VirtualBox?
Některé aplikace třetích stran nemůžou při použití Hyper-V fungovat, což znamená, že nebudou moct běžet při povolení WSL 2, jako je VMware a VirtualBox. Nedávno však virtualBox i VMware vydaly verze, které podporují Hyper-V a WSL2. Další informace o změnách virtualboxu najdete tady a tady najdete změny VMware. Při řešení potíží se podívejte na diskuze o problémech virtualboxu v úložišti WSL na GitHubu. StackOverflow také nabízí užitečný tip: Jak současně pracovat VirtualBox 6.0 a WSL.
Konzistentně pracujeme na řešeních, která podporují integraci Hyper-V třetích stran. Zveřejňujeme například sadu rozhraní API označovaných jako Hypervisor Platform , kterou můžou poskytovatelé virtualizace třetích stran použít k zajištění kompatibility softwaru s technologií Hyper-V. To umožňuje aplikacím používat architekturu Hyper-V pro jejich emulaci, jako je Google Android Emulator, a VirtualBox 6 a vyšší, které jsou nyní kompatibilní s Technologií Hyper-V.
Další informace o problémech s WSL a diskuzi o problémech s VirtualBoxem 6.1 najdete v úložišti problémů WSL 2.
*Pokud hledáte virtuální počítač s Windows, VMWare, Hyper-V, VirtualBox a Parallels, jsou k dispozici na webu Windows Dev Center.
Můžu získat přístup k GPU ve WSL 2? Existují plány na zvýšení podpory hardwaru?
Vydali jsme podporu pro přístup k GPU uvnitř distribucí WSL 2! To znamená, že teď můžete wsL používat pro scénáře strojového učení, umělé inteligence a datových věd snadněji, když se zapojí velké datové sady. Podívejte se na kurz podpory GPU . Odteď WSL 2 nezahrnuje sériovou podporu ani podporu zařízení USB. Snažíme se prozkoumat nejlepší způsob, jak tyto funkce přidat. Podpora USB je ale nyní dostupná prostřednictvím projektu USBIPD-WIN. Postup nastavení podpory zařízení USB najdete v tématu Připojení zařízení USB .
Může WSL 2 používat síťové aplikace?
Ano, obecně síťové aplikace budou fungovat lépe a rychleji s WSL 2, protože nabízí plnou kompatibilitu volání systému. Architektura WSL 2 však používá virtualizované síťové komponenty, což znamená, že WSL 2 se bude chovat podobně jako virtuální počítač – distribuce WSL 2 budou mít jinou IP adresu než hostitelský počítač (operační systém Windows). Další informace naleznete v tématu Přístup k síťovým aplikacím pomocí WSL.
Můžu na virtuálním počítači spustit WSL 2?
Ano. Musíte se ujistit, že je na virtuálním počítači povolená vnořená virtualizace. To můžete povolit v nadřazeném Hyper-V hostiteli spuštěním následujícího příkazu v okně PowerShellu s oprávněními správce:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
Nezapomeňte nahradit< název virtuálního> počítače názvem vašeho virtuálního počítače.
Můžu ve WSL 2 použít wsl.conf?
WSL 2 podporuje stejný soubor wsl.conf, který používá WSL 1. To znamená, že všechny možnosti konfigurace, které jste nastavili v distribuci WSL 1, jako je automatické připojení jednotek Windows, povolení nebo zakázání zprostředkovatele komunikace, změna adresáře, ve kterém budou připojené jednotky Windows, atd. budou fungovat uvnitř WSL 2. Další informace omožnostch Další informace o podpoře připojení jednotek, disků, zařízení nebo virtuálních pevných disků (VHD) najdete v článku Připojení disku s Linuxem ve WSL 2 .
1: Protokol změn pro VirtualBox 6.02: Hyper-V API3: Hyper-V Android Emulator podpora4: VMware Workstation Tech Preview 20H1 – Podpora VBS hyper-V/hostitele
Kde můžu poskytnout zpětnou vazbu?
Funkce repository produktů WSL vám umožňují:
- Prohlédněte si existující problémy a zjistěte, zda některé souvisí s tím, který máte. Všimněte si, že na panelu hledání můžete odebrat "is:open", abyste do hledání zahrnuli problémy, které už byly vyřešeny. Zvažte prosím komentování nebo udělení palce nahoru k jakýmkoli otevřeným problémům, o které byste chtěli vyjádřit svůj zájem, aby se dál řešily jako priorita.
-
Nahlásit nový problém. Pokud jste narazili na problém s WSL a zdá se, že problém neexistuje, můžete vybrat zelené tlačítko Nový problém a pak zvolit WSL - Zpráva o chybě. Budete muset uvést název problému, číslo sestavení Windows (spuštěním
cmd.exe /c verzobrazit aktuální build #), ať už používáte WSL 1 nebo 2, aktuální verzi jádra Linuxu # (spusťtewsl.exe --statusnebocat /proc/version), verzi vaší distribuce (spusťtelsb_release -r), všechny ostatní zahrnuté verze softwaru, kroky pro reprodukci, očekávané chování, skutečné chování, a diagnostické protokoly, pokud jsou k dispozici a vhodné. Další informace najdete v tématu přispívání do WSL. - Vytvořte požadavek na funkci výběrem zeleného tlačítka Nový požadavek a potom vyberte Požadavek na funkci. Budete muset vyřešit několik otázek popisujících vaši žádost.
Můžete také:
- Podat problém s dokumentací pomocí úložiště WSL docs. Pokud chcete přispívat do dokumentace WSL, přečtěte si příručku pro přispěvatele Microsoft Docs.
- Pokud váš problém souvisí s terminálem Systému Windows, konzolou Systému Windows nebo uživatelským rozhraním příkazového řádku, vytvořte problém s úložištěm terminálu Windows.
Pokud chcete mít aktuální informace o nejnovějších novinkách WSL, můžete to udělat takto:
- Náš blog týmu příkazového řádku
- X. Sledujte prosím @craigaloewen na X, kde se dozvíte o novinkách, aktualizacích atd.
Jak vyřešit chybu: 0x800704ec Tento program je blokován zásadami skupiny. Další informace získáte od správce systému.
Příčinou této chyby jsou zásady skupiny blokující WSL. Pokud chcete problém vyřešit, spusťte nejprve příkaz wsl --update , který aktualizuje na nejnovější verzi Storu. Pokud se tím problém nevyřeší, obraťte se na správce. Přečtěte si další informace o rozdílu mezi verzí WSL ve složce Doručená pošta a Úložištěm WSL: WSL v Microsoft Storu.
Nahradila služba WSLService LxssManager?
Ano, funkce LxssManager byla nahrazena službou WSLService při přechodu WSL z komponenty doručené pošty na místo toho, aby byla obsluhována microsoft Storem.