มีวิธีติดตั้ง Windows Subsystem สำหรับ Linux บน Win10 (v1709) โดยไม่ใช้ Store หรือไม่?


50

แอพ Microsoft Store ปิดใช้งานโดยนโยบายกลุ่มโดยมหาวิทยาลัยของฉัน ฉันมีสิทธิ์ผู้ดูแลระบบในคอมพิวเตอร์ของฉันและฉันสงสัยว่ามีวิธีการติดตั้ง Windows Subsystem สำหรับ Linux (WSL) โดยตรงหรือไม่ หรืออาจจะใช้ Chocolatey หรือวิธีอื่นใน command line?

โปรดทราบว่าตั้งแต่เวอร์ชั่น 1709 (Fall Creator's Upgrade) การเปิดใช้งานโหมดผู้พัฒนาเท่านั้นจึงไม่เพียงพอ

คำตอบ:


63

ข้อมูล: ฉันลองสิ่งนี้บน VM พร้อม Win10 Pro (v1709 & 1803) พร้อมนโยบายกลุ่มหุ้น (เช่นตามที่มีกับการติดตั้งใหม่)

นั่นคือ: การปิด Store ในgpedit.mscไม่ได้สร้างความแตกต่าง ...


ตามคู่มือการติดตั้ง Windows Server ของ Microsoft :

โปรดทราบว่าคำตอบนี้แสดงขั้นตอนสำหรับ Debian เท่านั้น อย่างไรก็ตามทุกอย่างเหมือนกันสำหรับ Ubuntu, SLES, openSUSE และ Kali ความแตกต่างเพียงอย่างเดียวจะอยู่ในชื่อของ EXE (และ URL ที่คุณใช้)

  1. Windows Subsystem for Linuxเปิดใช้งาน

    • ผ่านWindows FeaturesGUI: เช่นWin+ I->OptionalFeatures.exe
    • ด้วย PowerShell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux(ในฐานะผู้ดูแล):
  2. ดาวน์โหลดแพ็คเกจ Linux

    • เลือก distro ของคุณ เพียงใช้หนึ่งใน URL เหล่านี้:
      • Debian: https://aka.ms/wsl-debian-gnulinux
      • Ubuntu 18.04: https://aka.ms/wsl-ubuntu-1804
      • Ubuntu 16.04: https://aka.ms/wsl-ubuntu-1604
      • openSUSE: https://aka.ms/wsl-opensuse-42
      • SLES: https://aka.ms/wsl-sles-12
      • กาลี: https://aka.ms/wsl-kali-linux
    • Via PowerShell Invoke-WebRequest -Uri https://aka.ms/wsl-debian-gnulinux -OutFile ~/Debian.zip -UseBasicParsingวิ่ง
      • หากคุณไม่ต้องการแถบความคืบหน้าให้เพิ่ม$ProgressPreference = 'SilentlyContinue';ที่ด้านหน้าคำสั่ง
      • โปรดทราบว่า~/Debian.zipสามารถเปลี่ยนเป็นเส้นทางและชื่ออะไรก็ได้ที่คุณต้องการ
    • นอกจากนี้คุณยังสามารถดาวน์โหลด "ต่อมนัส" - ป้อน URL ลงในเบราว์เซอร์ของคุณ (หรือตัวจัดการดาวน์โหลด) และคุณสามารถใช้วิธีนี้ได้เช่นกัน
  3. แตกไฟล์ที่เก็บถาวรที่ดาวน์โหลดมาและวางไว้ในเส้นทางปลายทาง
    • โปรดทราบว่าคุณสามารถใช้เส้นทางใด ๆ - ไม่ว่าจะเป็น~\IHateUbuntu\SLES_WSLไม่ว่าจะเป็นC:\Ubuntu, etc.pp. อย่างไรก็ตามมันจะต้องอยู่ในไดรฟ์ระบบของคุณ (ปกติC:\) ขอบคุณ@ Matt Wenham !
    • ผ่าน PowerShell: Expand-Archive <ARCHIVE> <ITS_NEW_PATH>
    • ผ่าน GUI ของ File Explorer
    • หรือผ่านเครื่องมือซิปใด ๆ เช่น 7-Zip
  4. เรียกใช้Debian.exeซึ่งอยู่ในโฟลเดอร์ที่คลายซิป
    • สำหรับ distros อื่น ๆ คุณเพียงแค่ต้องมองหา EXE ที่ถูกต้อง
    • ตอนนี้จะ "ติดตั้ง" distro ของคุณ
  5. ตั้งชื่อผู้ใช้และรหัสผ่านของคุณ
    • หากข้อผิดพลาด0x80070005ปรากฏขึ้นคุณต้องเรียกใช้ EXE ในฐานะผู้ดูแลระบบ ขอบคุณ@March Ho !
  6. มันถูกแนะนำในการปรับปรุงซอฟต์แวร์ทั้งหมดที่เริ่มต้นครั้งแรก
    • ใน Debian และ Ubuntu sudo apt update && sudo apt upgradeนี้จะทำโดยการทำงาน
  7. (ไม่บังคับ) ใส่ EXE ของคุณลงในเมนูเริ่ม
    • เพียงแค่ใส่ลิงค์อย่างหนักของเข้าDebian.exeC:\ProgramData\Microsoft\Windows\Start Menu\Programs
  8. (ไม่บังคับ) ทำซ้ำสำหรับการแจกแจงให้มากที่สุดเท่าที่คุณต้องการ

คุณดีไปแล้ว รันDebian.exeทุกครั้งที่คุณต้องการให้ WSL รัน


3
หากคุณได้รับข้อผิดพลาด0x80070005คุณจะต้องเรียกใช้ไฟล์ exe ในฐานะผู้ดูแลระบบ
March Ho

คุณทราบหรือไม่ว่าสามารถติดตั้งสิ่งเหล่านี้กับผู้ใช้ทั้งหมดในครั้งเดียวได้หรือไม่?
Andrew Savinykh

2
คำแนะนำยอดนิยม ขอบคุณ FYI: ถ้าคุณเป็นเหมือนฉันและคลายซิป distro ในสถานที่ที่โง่เง่าเป็นครั้งแรก ... คุณจะพบwslconfig /listและwslconfig /unregisterเป็นเพื่อนของคุณ ...
spechter

1
ฉันเชื่อว่าการกระจายควรถูกแยกลงในไดรฟ์ระบบของคุณดังที่กล่าวไว้ที่นี่: docs.microsoft.com/en-us/windows/wsl/…
Matt Wenham

1
หมายเหตุ: 0x80070005ข้อผิดพลาดปรากฏขึ้นด้วยเหตุผลหลายประการ หากคุณต้องการหาวิธีแก้ไขให้ดูที่นี่: github.com/microsoft/WSL/issues/3020
Bewc

15

นี่เป็นขั้นตอนสั้น ๆ ใช้สำหรับการอัปเดตผู้สร้าง Fall 10 ของ Windows ขึ้นไป

  1. เปิดใช้งานคุณลักษณะ "Windows Subsystem สำหรับ Linux" จากOptionalFeatures.exeและรีสตาร์ทพีซี จากคู่มือการติดตั้ง Windows Server
  2. ดาวน์โหลดไฟล์ใดไฟล์หนึ่งต่อไปนี้ (ด้วยเบราว์เซอร์หรือตัวจัดการดาวน์โหลดใด ๆ ):

  3. แพคเกจเปิด Appx กับ7zip แตกเฉพาะไฟล์ปฏิบัติการ (เช่น Ubuntu.exe) และ install.tar.gzในไดรฟ์หรือโฟลเดอร์ใด ๆ ดับเบิ้ลคลิกที่ไฟล์ที่เรียกใช้งานได้และจะทำการติดตั้ง

หมายเหตุ ::ตอนนี้คุณสามารถติดตั้งการแจกจ่าย GNU / Linuxโดยใช้ tarballs RootFS ที่บีบอัด (เฉพาะ. tar.gz) ที่มีให้ในไซต์การแจกจ่ายหรือจากอิมเมจของนักเทียบท่า


3

คุณสามารถ (1) ดาวน์โหลดโปรแกรมติดตั้งจาก Windows Store หรือ (2) ดาวน์โหลดไฟล์การจัดจำหน่ายและติดตั้งโดยใช้เครื่องมือเช่นlxRunOfflineหรือWSL Distrolauncher

  • คุณสามารถติดตั้ง Ubuntu 18 หรือดิสทริบิวชันอื่น ๆ โดยใช้ตัวเลือกที่สอง

กำลังดาวน์โหลดตัวติดตั้งจาก Windows Store

คุณสามารถดาวน์โหลดโปรแกรมติดตั้งจาก Windows Store ได้โดยใช้ Powershell ตัวอย่างเช่นคุณสามารถดาวน์โหลด Ubuntu 16 เวอร์ชั่นโดยใช้คำสั่งต่อไปนี้

PS> Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing

Ubuntu.appxในคำสั่งดังกล่าวข้างต้นไฟล์ที่ส่งออกเป็น มันจะต้องมีชื่อในทางนั้น คุณสามารถเรียกใช้แอพพลิเคชั่นนั้นเพื่อติดตั้ง Ubuntu

PS> Ubuntu.appx

ใช้ LxRunOffline

ก่อนอื่นคุณต้องดาวน์โหลดไฟล์การแจกจ่าย มีไฟล์กระจายมากมายในเป็นวิกิพีเดีย lxRunOffline

ตัวอย่างเช่นหากต้องการติดตั้ง Ubuntu 16 เดียวกันจาก Microsoft Windows Store คุณสามารถดาวน์โหลดไฟล์ได้ที่

https://lxrunoffline.apphb.com/download/UbuntuFromMS/16

จากนั้นคุณสามารถติดตั้งการแจกแจงลินุกซ์โดยใช้ lxRunOffline

# lxrunoffline install -n <name> -d <folder> -f <distribution file>

C:\wsl> lxrunoffline install -n copy -d c:\wsl\copy -f 16.04.2-server-cloudimg-amd64-root.tar.gz

เพื่อเรียกใช้การแจกจ่ายคุณอาจใช้ lxRunOffline เดียวกัน

C:\wsl> lxrunoffline run -n copy -w

การใช้ DistroLauncher

คุณสามารถใช้ DistroLauncher ได้ มีหลายเวอร์ชันตามตัวอย่างของ Microsoftเพื่อสร้างการแจกแจงลินุกซ์ที่กำหนดเองสำหรับ WSL ตัวอย่างเช่นคุณสามารถใช้รุ่น Yuk7

launcher.exeคุณต้องดาวน์โหลดไฟล์และการจัดจำหน่าย ในการใช้ไฟล์การแจกจ่ายเดียวกันกับที่กล่าวข้างต้นคุณต้องเปลี่ยนชื่อไฟล์การแจกจ่ายเป็นrootfs.tar.gzและตัวเรียกใช้เป็นชื่อการแจกจ่ายที่คุณต้องการ ในภายหลังคุณต้องเรียกใช้ตัวเรียกใช้งานในฐานะผู้ดูแลระบบ (ฉันได้รับข้อผิดพลาดในการใช้งานเป็นผู้ใช้ปกติ)

PS> ren launcher.exe mydistro.exe
PS> ren .\16.04.2-server-cloudimg-amd64-root.tar.gz rootfs.tar.gz
PS> .\mydistro

ครั้งแรกที่คุณเรียกใช้ตัวเรียกใช้มันจะติดตั้งและเรียกใช้การกระจาย ในครั้งต่อไปมันรันการแจกแจงลินุกซ์


หลังจากติดตั้งคุณสามารถจัดการการกระจายโดยใช้wslconfigหรือlxrunofflineคำสั่ง

หมายเหตุ:นอกเหนือจากไฟล์การแจกจ่ายที่กล่าวถึงข้างต้นคุณสามารถสร้างไฟล์ใหม่ตามการกระจายลินุกซ์อื่น ๆ คุณอาจลองคำแนะนำที่รวมอยู่ในโครงการ WSLInstall คุณอาจต้องการขั้นตอนเพิ่มเติมหลังจากการติดตั้งเพื่อเริ่มต้น linux ใหม่อย่างถูกต้อง


-1

วิธีการแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉัน ปัญหาของฉันละเอียดมากเพราะฉันไม่รู้อะไรเกี่ยวกับ windows และไม่ได้ใช้จริงตั้งแต่ปี 1999

คำตอบข้างต้นเขียนได้ดีมาก แต่เป็นที่น่าสนใจว่า windows ยังไม่ได้ดำเนินการใน 20 ปีเพื่อให้สคริปต์เดียวสามารถแก้ไขปัญหาเหล่านี้ได้ ชนิดของการตกต่ำ ....

หากคุณได้รับเครื่องแล็ปท็อปที่ติดตั้งมาพร้อมกับ windows 10 pro ไม่จำเป็นต้องติดตั้งบัญชีผู้ใช้มาตรฐาน การติดตั้งระบบย่อย windows Linux (WSL) ในฐานะผู้ดูแลระบบทำได้ดี แต่การติดตั้ง Debian, Ubuntu หรือ opensuse จาก app store จะทำให้เกิดข้อผิดพลาด 0x80070005 สำหรับระบบปฏิบัติการทั้งหมดที่ล้มเหลวในขั้นตอนการสร้างชื่อผู้ใช้ใหม่ การใช้โซลูชัน answer.microsoft.com จำนวนมากที่เปลี่ยนแปลงการอนุญาตสิทธิ์ไดเรกทอรีไฟล์แพ็คเกจผู้ใช้ก็เป็นวิธีแก้ไขที่ไม่เหมาะสมเช่นกัน

วิธีการแก้:

การสร้างบัญชีผู้ใช้ปกตินอกเหนือจากการมีบัญชีผู้ดูแลระบบอนุญาตให้ติดตั้ง Debian ทันทีจากร้านค้า windows app เมื่อติดตั้ง WSL จาก power shell ที่รันในฐานะผู้ดูแลระบบ


เพื่อความเข้าใจของฉันเคอร์เนลของ Windows ต้องมีการเรียกใช้ระบบปฏิบัติการบางอย่างภายใต้ผู้ใช้ที่ได้รับการรับรองความถูกต้อง สิ่งนี้ทำเพื่อความปลอดภัยและเป็นกระบวนทัศน์หลักของ windows อยู่เสมอ WSL นามธรรมไม่สามารถทำงานภายใต้SYSTEMผู้ใช้
Gabriel Fair

คอมพิวเตอร์ทุกเครื่องของฉันมีเพียงบัญชีเดียวเท่านั้น - บัญชีผู้ดูแลระบบ (แม้ว่าจะมีชื่อแน่นอนว่าบุคคลใดก็ตามที่ใช้คอมพิวเตอร์เครื่องนั้น) ไม่เคยประสบปัญหานี้มาก่อน นอกจากนี้: superuser.com/questions/1271682/… run the exe file as administratorไม่ทำงาน?
flolilo

ไม่ทำงานสำหรับฉันใน Windows 10 professional ฉันต้องสร้างผู้ใช้แยกต่างหากติดตั้ง WSL ในฐานะผู้ดูแลระบบจากนั้นติดตั้ง linux distro ในฐานะผู้ใช้ปกติ สิทธิ์ในไดเรกทอรีย่อยที่ linux distro ใช้งานไม่ได้และไม่สามารถแก้ไขจากสิ่งที่ฉันเห็นได้แม้จะเปลี่ยนสิทธิ์ในไดเรกทอรีย่อยทั้งหมดซ้ำแล้วซ้ำอีก
Eamonn Kenny
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.