เช่นเดียวกับซอฟต์แวร์ทั้งหมด ระบบย่อย Windows (WSL2) ก็มีปัญหาร่วมกันพอสมควร ในคู่มือนี้ เราจะมาแก้ไขปัญหาระบบย่อย Windows สำหรับ Linux ข้อความแสดงข้อผิดพลาดและรหัส
แก้ไขระบบย่อย Windows สำหรับข้อผิดพลาด ปัญหา &ปัญหาของ Linux
ข้อความเหล่านี้เป็นข้อความที่เราจะแก้ไขปัญหาระบบย่อย Windows สำหรับข้อความแสดงข้อผิดพลาดและรหัสของ Linux
- ไม่เห็นตัวเลือกสำหรับ WSL 2
- ข้อผิดพลาด:0x1bc
- ข้อผิดพลาด:0x80040306 ในการติดตั้ง
- ไม่สามารถเข้าถึงไฟล์ WSL จาก Windows
- ไม่สามารถเริ่มการกระจาย WSL 2 และเห็นเฉพาะ "WSL 2" ในเอาต์พุต
- ไม่พบคำสั่ง
- ข้อผิดพลาด:0x80370102 เสมือน ไม่สามารถเริ่มเครื่องได้เนื่องจากไม่ได้ติดตั้งคุณลักษณะที่จำเป็น
- ข้อผิดพลาด:0x80040154 หลังจากอัปเดต Windows
- WSL หยุดทำงานโดยมีข้อผิดพลาด 0x80070003
- แสดงการเปลี่ยนภาษาใน WSL
- ปัญหาการติดตั้งหลังจากกู้คืนระบบ Windows
- ไม่มีอินเทอร์เน็ตใน WSL
- การอนุญาตถูกปฏิเสธเมื่อใช้ Ping
- ไม่สามารถบูตได้หลังจากติดตั้ง WSL 2
- ไม่สามารถเรียกใช้คำสั่งของ Windows ภายในผู้จัดจำหน่ายได้
- ICS ถูกปิดใช้งาน
- Bash หยุดทำงาน
- ปัญหาการเชื่อมต่อเซิร์ฟเวอร์ OpenSSH
- ไม่พบแอสเซมบลีอ้างอิง
- แก้ไขข้อผิดพลาดการอนุญาต (เกี่ยวกับ SSH)
เรามาพูดถึงรายละเอียดกันดีกว่า
1] ไม่เห็นตัวเลือกสำหรับ WSL 2
ผู้ใช้ Windows หลายคนบ่นว่าแม้ว่าพวกเขาจะอยู่ที่ 1903 พวกเขาไม่เห็นตัวเลือกสำหรับ WSL 2 สิ่งนี้จะเกิดขึ้นเมื่อเครื่องคอมพิวเตอร์ของคุณยังไม่ได้แบ็คพอร์ตสำหรับ WSL 2
ในการแก้ไขปัญหานี้ คุณเพียงแค่ตรวจสอบการอัปเดต แล้วคุณจะพร้อมดำเนินการ
2] ข้อผิดพลาด:0x1bc
คุณอาจเห็นข้อผิดพลาดต่อไปนี้เมื่อ “ภาษาที่แสดง” หรือ “ตำแหน่งที่ตั้งของระบบ” ไม่ได้ตั้งค่าเป็น ภาษาอังกฤษ
wsl --set-default-version 2 Error: 0x1bc For information on key differences with WSL 2 please visit https://aka.ms/wsl2
ในการแก้ไขข้อผิดพลาด คุณต้องตรวจสอบว่ามีการติดตั้งเคอร์เนลในคอมพิวเตอร์ของคุณหรือไม่ ให้ใช้คำสั่งต่อไปนี้
dir %SystemRoot%\system32\lxss\tools\kernel
หากคุณไม่มีเคอร์เนล ให้ดาวน์โหลดจาก aka.ms อย่าลืมดาวน์โหลดในฐานะผู้ดูแลระบบ และติดตั้งเคอร์เนลในเครื่องของคุณเพื่อแก้ไขข้อผิดพลาด
3] ข้อผิดพลาด:0x80040306 ในการติดตั้ง
หากคุณเห็นข้อผิดพลาด:0x80040306 ในการติดตั้ง ในการแก้ไขปัญหานี้ คุณต้องปิด Legacy Console โดยทำตามขั้นตอนที่กำหนด
- เปิด พรอมต์คำสั่ง ในฐานะผู้ดูแลระบบจาก เมนูเริ่ม
- คลิกขวาที่โลโก้ cmd แล้วเลือก คุณสมบัติ
- ตอนนี้ ยกเลิกการเลือก “ ใช้คอนโซลรุ่นเก่า” แล้วคลิกตกลง
สุดท้าย ให้ตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่
4] ไม่สามารถเข้าถึงไฟล์ WSL จาก Windows
หากคุณไม่สามารถเข้าถึงระบบย่อย Windows สำหรับ Linux โดย \\wsl$ บน Windows อาจหมายความว่าเซิร์ฟเวอร์ไฟล์โปรโตคอล 9P ไม่สามารถเริ่มทำงานได้
การแก้ไขที่ง่ายที่สุดคือการอัพเดตคอมพิวเตอร์ของคุณและเปิดใช้งาน “อัพเดตสำหรับผลิตภัณฑ์ Microsoft บน Windows Update” โดยทำตามขั้นตอนที่กำหนด
- เปิด การตั้งค่า โดย ชนะ + ฉัน
- คลิก อัปเดตและความปลอดภัย> ตัวเลือกขั้นสูง
- ใช้ปุ่มสลับเพื่อปิดใช้งาน “รับการอัปเดตสำหรับผลิตภัณฑ์ Microsoft อื่นๆ เมื่อคุณอัปเดต Windows “.
วิธีนี้จะช่วยแก้ปัญหาให้คุณได้
5] ไม่สามารถเริ่มการกระจาย WSL 2 และดูเฉพาะ "WSL 2" ในเอาต์พุต
ข้อผิดพลาดนี้หลีกเลี่ยงไม่ได้หากภาษาที่แสดงของคุณไม่ได้ตั้งค่าเป็นภาษาอังกฤษ คุณจะเห็นผลลัพธ์ต่อไปนี้เมื่อพยายามเริ่ม WSL 2
C:\Users\me>wsl WSL 2
ในการแก้ไขข้อผิดพลาด คุณต้องดาวน์โหลดและติดตั้งเคอร์เนลด้วยตนเอง คุณสามารถดาวน์โหลดไฟล์จาก aka.ms/wsl2kernel ติดตั้ง Kernel เพื่อแก้ไขข้อผิดพลาดได้อย่างง่ายดาย
6] ไม่พบคำสั่ง
นี่เป็นหนึ่งในข้อผิดพลาดทั่วไปที่เราพบเมื่อเรียกใช้ไฟล์ .exe ของ Windows ใน Linux คุณอาจเห็นข้อผิดพลาดต่อไปนี้เมื่อพยายามทำเช่นเดียวกัน
$ notepad.exe -bash: notepad.exe: command not found
สิ่งนี้เกิดขึ้นเมื่อ $PATH ไม่พบไฟล์ .exe ทางออกที่ดีที่สุดสำหรับข้อผิดพลาดนี้คือเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล
export PATH=$PATH:/usr/sbin
ทำสิ่งนี้และตรวจสอบว่าสามารถแก้ไขข้อผิดพลาดได้หรือไม่
7] ข้อผิดพลาด:0x80370102 ไม่สามารถเริ่มเครื่องเสมือนได้เนื่องจากไม่ได้ติดตั้งคุณลักษณะที่จำเป็น
หลายคนพบข้อผิดพลาดนี้เมื่อพยายามติดตั้งผู้จัดจำหน่าย Linux ข้อผิดพลาดนี้มีมากกว่าหนึ่งวิธีไม่เหมือนกับข้อผิดพลาดก่อนหน้านี้ ดังนั้น คาดเข็มขัดนิรภัยและอ่านวิธีแก้ปัญหาทั้งหมด
นี่คือสิ่งที่คุณสามารถทำได้เพื่อแก้ไขข้อผิดพลาด:0x80370102 ไม่สามารถเริ่มเครื่องเสมือนได้เนื่องจากไม่ได้ติดตั้งคุณลักษณะที่จำเป็น
- เปิดใช้งาน Hyper-V
- เปิดใช้งานการจำลองเสมือนของฮาร์ดแวร์
- เปิดใช้งานการจำลองเสมือนแบบซ้อน
เรามาพูดถึงรายละเอียดกันดีกว่า
เปิดใช้งาน Hyper-V
หากไม่มี Hyper-V คุณจะไม่สามารถสร้าง Virtual Environment ได้ ดังนั้น ให้เปิดใช้งานโดยใช้ขั้นตอนต่อไปนี้
- เปิด แผงควบคุม จาก เมนูเริ่ม
- คลิก โปรแกรมและคุณลักษณะ> เปิดหรือปิดคุณลักษณะของ Windows
- เลื่อนลงเพื่อค้นหา Hyper-V ตรวจสอบแล้วคลิกตกลง
หลังจากเปิดใช้งาน Hyper-V ให้ตรวจสอบว่าปัญหาได้รับการแก้ไขหรือไม่
เปิดใช้งานการจำลองเสมือนของฮาร์ดแวร์
Hardware Virtualization เป็นสิ่งจำเป็นเมื่อพยายามเรียกใช้ Virtual Machine ดังนั้น หากคุณพบข้อผิดพลาด:0x80370102 ให้ลองเปิดใช้งาน Hardware Virtualization จาก BIOS เพื่อแก้ไขปัญหา
เปิดใช้งานการจำลองเสมือนแบบซ้อน
Nested Virtualization อนุญาตให้คุณเรียกใช้ Hypervisor ภายใน VM ดังนั้น หากคุณยังคงพบข้อผิดพลาด ให้ลองเปิดใช้งาน Nested Virtualization ในการทำเช่นนั้น คุณต้องเรียกใช้ PowerShell ในฐานะผู้ดูแลระบบและเรียกใช้คำสั่งต่อไปนี้
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
ปล่อยให้คำสั่งนี้ทำงานและตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่
8] ข้อผิดพลาด:0x80040154 หลังจากอัปเดต Windows
คุณอาจเห็นข้อผิดพลาดนี้หากระบบย่อย Windows สำหรับ Linux ถูกปิดใช้งานเนื่องจาก Windows Update ดังนั้น เพื่อแก้ไขปัญหานี้ เราจำเป็นต้องเปิดใช้งานตัวเลือกนี้ โดยทำตามขั้นตอนที่กำหนด
- เปิด การควบคุม จาก เมนูเริ่ม
- คลิก โปรแกรมและคุณลักษณะ> เปิดหรือปิดคุณลักษณะของ Windows
- เลื่อนลงเพื่อค้นหา ระบบย่อย Windows สำหรับ Linux ตรวจสอบแล้วคลิกตกลง
สุดท้าย ให้รีสตาร์ทคอมพิวเตอร์และตรวจสอบว่าปัญหายังคงมีอยู่หรือไม่
9] WSL หยุดทำงานโดยมีข้อผิดพลาด 0x80070003
หาก WSL หยุดทำงานโดยมีรหัสข้อผิดพลาด 0x80070003 ให้แก้ไขด้วยคำแนะนำนี้
10] การเปลี่ยนภาษาที่แสดงใน WSL
WSL จะเปลี่ยนภาษาของ Ubuntu โดยอัตโนมัติ เพื่อให้ตรงกับภาษาของคอมพิวเตอร์ Windows ของคุณ หากคุณไม่ชอบการเคลื่อนไหวนี้ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่าภาษาที่แสดงตามความต้องการของคุณ
หมายเหตุ:คำสั่งต่อไปนี้จะเปลี่ยนภาษาเป็น en-US
sudo update-locale LANG=en_US.UTF8
ทำสิ่งนี้และตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่
11] ปัญหาการติดตั้งหลังจากกู้คืนระบบ Windows
หากคุณประสบปัญหาในการติดตั้งหลังจากกู้คืนระบบ Windows ให้ลองลบ ระบบย่อย Windows สำหรับ Linux โฟลเดอร์ ต่อไปนี้เป็นเส้นทางของมัน
%windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux
รีสตาร์ทคอมพิวเตอร์ ติดตั้ง Bash ใหม่ และตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่
12] ไม่มีอินเทอร์เน็ตใน WSL
ผู้ใช้หลายคนรายงานว่าไม่สามารถเข้าถึงอินเทอร์เน็ตใน WSL อย่างไรก็ตาม วิธีแก้ปัญหาอาจง่ายกว่าที่คุณคิด สิ่งนี้เกิดขึ้นเนื่องจากโปรแกรมป้องกันไวรัสของบริษัทอื่นที่คุณอาจมี เนื่องจากไฟร์วอลล์บล็อกอินเทอร์เน็ต ดังนั้นเพื่อแก้ไขปัญหานี้ ให้ลบโปรแกรมป้องกันไวรัสออกแล้วคุณก็พร้อมดำเนินการ
13] การอนุญาตถูกปฏิเสธเมื่อใช้ Ping
หากคุณไม่สามารถ Ping ใน WSL ได้ แสดงว่าคุณไม่มีสิทธิ์ระดับผู้ดูแลระบบ ดังนั้น คุณต้องเรียกใช้ Ubuntu และ Linux ด้วยสิทธิ์ระดับผู้ดูแลหรือ Bash.exe บนล่ามบรรทัดคำสั่งที่มีสิทธิ์ระดับผู้ดูแลระบบ
หวังว่าจะแก้ไขปัญหานี้ได้โดยง่าย
14] ไม่สามารถบูตได้หลังจากติดตั้ง WSL 2
สาเหตุที่คุณไม่สามารถบูตได้หลังจากติดตั้ง WSL 2 นั้นยังคงเป็นเรื่องแปลก แต่ Microsoft พยายามดำเนินการอัปเดตเพื่อวินิจฉัยปัญหาอย่างสมบูรณ์ อย่างไรก็ตาม มีสองสิ่งที่คุณทำได้และดูว่าจะช่วยแก้ปัญหาได้หรือไม่
- ใช้ System Restore Point เพื่อแก้ไขข้อผิดพลาด
- อัปเดตไดรเวอร์กราฟิกของคุณและดูว่าสามารถแก้ไขปัญหาได้หรือไม่
15] ไม่สามารถเรียกใช้คำสั่งของ Windows ภายในผู้จัดจำหน่ายได้
มีผู้จัดจำหน่ายไม่กี่รายใน Windows Store ที่ไม่ได้รับการปรับให้เหมาะสมอย่างสมบูรณ์เพื่อเรียกใช้คำสั่ง Windows ทั้งหมด คุณอาจได้รับข้อผิดพลาดใดๆ ต่อไปนี้
-bash: powershell.exe: command not found
powershell.exe /c start
ในการแก้ไขข้อผิดพลาดนี้ ให้เรียกใช้คำสั่งต่อไปนี้
echo $PATH
ตอนนี้ ตรวจสอบว่าผลลัพธ์มี “/mnt/c/Windows/system32” . หรือไม่ หากคุณกำลังเผชิญกับข้อผิดพลาด แสดงว่าเส้นทางส่วนใหญ่ไม่มีอยู่ที่นั่น
ตอนนี้ ตรวจสอบการตั้งค่าโปรไฟล์ของคุณโดย
cat /etc/profile
ตอนนี้ ตรวจสอบว่าการกำหนดเส้นทางเริ่มต้นด้วย “#” ถ้าเป็นเช่นนั้น แสดงความคิดเห็นในบล็อก นอกจากนี้ ให้ตรวจสอบว่า wsl.conf มีอยู่และตรวจสอบให้แน่ใจว่าไม่มี appendWindowsPath=false
. ถ้าใช่ ให้แสดงความคิดเห็น
หลังจากทำเช่นนี้ คุณต้องเริ่มการแจกจ่ายใหม่ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อทำสิ่งนั้นได้
wsl -t <name of the distributor>
หรือ
wsl --shutdown
หวังว่าปัญหาจะได้รับการแก้ไข
16] ICS ถูกปิดใช้งาน
WSL ไม่สามารถทำงานได้หากไม่มี ICS หรือการแชร์การเชื่อมต่ออินเทอร์เน็ต . บริการเครือข่ายโฮสต์ (HNS) ใช้ ICS เพื่อสร้างเครือข่ายเสมือนพื้นฐานสำหรับ WSL 2 เพื่อสร้าง NAT, DNS, DHCP และการแชร์การเชื่อมต่อโฮสต์
เพื่อแก้ไขข้อผิดพลาด เราต้องเปิดใช้งาน ICS ดังนั้น ให้ทำตามขั้นตอนที่กำหนดเพื่อเปิดใช้งาน ICS
- เปิดตัว บริการ จาก เมนูเริ่ม
- ดับเบิลคลิกที่ Internet Connection Sharing (ICS), และคลิก เริ่ม ถ้ามันหยุด
- สุดท้าย คลิก ใช้> ตกลง
คุณควรแก้ไขนโยบายบางอย่างด้วย ให้เปิด ตัวแก้ไขนโยบายกลุ่ม และนำทางไปยังตำแหน่งต่อไปนี้
Computer Configuration > Administrative Templates > Network > Network Connections
และปิดการใช้งานนโยบายต่อไปนี้
- ห้ามการติดตั้งและกำหนดค่า Network Bridge บนเครือข่ายโดเมน DNS ของคุณ
- ห้ามใช้ไฟร์วอลล์การเชื่อมต่ออินเทอร์เน็ตบนเครือข่ายโดเมน DNS ของคุณ
- ห้ามใช้ Internet Connection Sharing บนเครือข่ายโดเมน DNS ของคุณ
- กำหนดให้ผู้ใช้โดเมนยกระดับเมื่อตั้งค่าตำแหน่งของเครือข่าย
17] Bash หยุดทำงาน
เมื่อ Bash หยุดทำงานหรือชะงักงันและหยุดตอบสนองต่ออินพุตของคุณ คุณสามารถรีสตาร์ทเครื่องเพื่อแก้ไขข้อผิดพลาดหรือรายงานการถ่ายโอนข้อมูลหน่วยความจำ อย่างหลังอาจทำให้ระบบขัดข้อง ดังนั้น โปรดบันทึกงานของคุณก่อนที่จะรายงาน
18] ปัญหาการเชื่อมต่อเซิร์ฟเวอร์ OpenSSH
หากคุณพบปัญหาการเชื่อมต่อ OpenSSF-Server สิ่งแรกที่คุณต้องทำคือตรวจสอบว่า OpenSSH-Server กำลังทำงานอยู่หรือไม่ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อทำสิ่งนั้นได้
sudo service ssh status
หากไม่ได้ทำงานอยู่ ให้ใช้คำสั่งต่อไปนี้เพื่อเริ่มบริการ
sudo service ssh start
หากทำงานอยู่ คุณควรเริ่มบริการใหม่โดยใช้คำสั่งต่อไปนี้และตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่
sudo service ssh restart
หากไม่สามารถแก้ไขปัญหาได้ ให้ลองเริ่ม SSHD ในโหมดแก้ไขข้อบกพร่อง ก่อนหน้านั้น ใช้คำสั่งต่อไปนี้เพื่อหยุดบริการ SSH
sudo service ssh stop
ตอนนี้ ใช้คำสั่งต่อไปนี้เพื่อเริ่ม SSHD ในโหมดดีบัก
sudo /usr/sbin/sshd -d
หวังว่านี่จะช่วยแก้ไขข้อผิดพลาดได้
19] ไม่พบแอสเซมบลีอ้างอิง
ผู้ใช้หลายคนพบ “ไม่พบแอสเซมบลีที่อ้างอิง” เมื่อพวกเขาพยายามเปิดใช้งานคุณสมบัติเพิ่มเติมของ WSL หากคุณเป็นหนึ่งในนั้น ลองเปิดใช้งาน ระบบย่อย Windows สำหรับ Linux จากแผงควบคุมและอัปเดตคอมพิวเตอร์ของคุณ หวังว่านั่นจะแก้ไขข้อผิดพลาดได้
20] แก้ไขข้อผิดพลาดการอนุญาต (ที่เกี่ยวข้องกับ SSH)
หากคุณเห็นข้อผิดพลาดต่อไปนี้ ให้เธรดหัวข้อนี้เพื่อดูวิธีแก้ปัญหา
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.
ในการแก้ไขปัญหานี้ Microsoft แนะนำให้คุณไปที่ /etc/wsl.conf ไฟล์และต่อท้ายสิ่งต่อไปนี้:
[automount] enabled = true options = metadata,uid=1000,gid=1000,umask=0022
นี้จะแก้ไขข้อผิดพลาด ก่อนทำสิ่งนี้ ตรวจสอบให้แน่ใจว่าคุณได้รับอนุญาตเพียงพอ
นี่คือบางส่วนของระบบย่อย Windows สำหรับข้อความแสดงข้อผิดพลาดและรหัสของ Linux และคำแนะนำในการแก้ปัญหา เราหวังว่าสิ่งเหล่านี้จะช่วยคุณแก้ไขข้อผิดพลาด ปัญหา และปัญหาของ WSL