Score:0

ไม่สามารถเรียกใช้ Ubuntu 20.04 บน WSL ใน VirtualBox

ธง tf

ฉันใช้ Windows 11 บน VirtualBox 6.1.30 ภายใน Windows 11 บน Core m3-6Y30 CPU @ 0.90GHz

ฉันดาวน์โหลด Ubuntu 20.04 จาก Microsoft Store เมื่อฉันเริ่มใช้งาน มีข้อความปรากฏขึ้นว่าควรเปิดใช้งานตัวเลือกที่เรียกว่า Windows Subsystem สำหรับ Linux ในแผงควบคุมในคุณลักษณะของ Windows

ฉันเปิดคุณลักษณะนั้น รีสตาร์ทคอมพิวเตอร์ และพยายามเริ่ม WSL Ubuntu อีกครั้ง คราวนี้มีข้อความให้อัพเดทเป็น WSL2

ดังนั้นใน PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบฉันจึงป้อนคำสั่ง:

คำสั่ง dism.exe / online / enable-feature / featurename: VirtualMachinePlatform / all / norestart

... จากนั้นรีสตาร์ทคอมพิวเตอร์และดาวน์โหลดแพ็คเกจอัพเดตเคอร์เนลที่กล่าวถึง ที่นี่.

สุดท้าย ใน PowerShell ที่มีสิทธิ์ของผู้ดูแลระบบ ฉันรันคำสั่งที่แนะนำ:

wsl --set-default-เวอร์ชั่น 2

หลังจากนั้น ฉันรีสตาร์ทคอมพิวเตอร์และเริ่ม Ubuntu บน WSL และได้รับ "ข้อผิดพลาด 0x80370102" ที่กล่าวถึงใน คำถามนี้.

มันใช้งานได้หลังจากที่ฉันวิ่งเท่านั้น wsl --set-default-เวอร์ชั่น 1 .

จะเป็นอะไรได้บ้าง? มีสิ่งผิดปกติเกิดขึ้นกับการจำลองเสมือนของฮาร์ดแวร์หรือไม่

ทุกอย่างทำงานบน VirtualBox

ฉันเริ่มต้นด้วยคำสั่ง wsl --set-default-เวอร์ชั่น 1จากนั้นฉันตรวจสอบ bcdedit / set hypervisorlaunchtype อัตโนมัติแต่ก็ไม่ได้ผล

หลังจากนั้นก็เท่านั้น wsl --set-default-เวอร์ชั่น 1 งาน.

Nmath avatar
ng flag
ฉันคิดว่าคุณได้ดำเนินการบางอย่างที่ไม่เหมาะสมและบางอย่างไม่เรียบร้อย โปรดแก้ไขคำถามของคุณที่ตอบคำถามต่อไปนี้: คุณใช้ Windows 10 เวอร์ชันใด คุณได้ติดตามแนวทางใดสำหรับการกระทำเหล่านี้ที่คุณทำ คุณได้อัปเดตเป็น WSL2 ตามที่ระบุไว้จริงหรือไม่ คุณพยายามลบ/ถอนการติดตั้ง Ubuntu เพื่อให้คุณสามารถติดตั้งใหม่ได้หลังจากแน่ใจว่าได้ติดตั้ง WSL2 บนระบบของคุณแล้วหรือไม่
P.Bak avatar
tf flag
ฉันใช้ windows 11 บน virtualbox เมื่อต้องแก้ปัญหานี้ ฉันใช้เฉพาะคำแนะนำนี้ ซึ่งระบุไว้ที่นี่ https://askubuntu.com/questions/1264102/wsl-2-wont-run-ubuntu-error-0x80370102 เมื่อพูดถึง wsl ฉันจะตรวจสอบเวอร์ชันที่ฉันใช้ได้อย่างไร ฉันไม่ได้พยายามลบหรือถอนการติดตั้งอูบุนตู จะตรวจสอบเวอร์ชัน wsl ได้อย่างไร
P.Bak avatar
tf flag
ฉันรันคำสั่ง '' wslfetch`` บน virtualbox แต่ฉันไม่รู้ว่ามันจะทำอะไรได้ไหม [1]: https://i.stack.imgur.com/ifyTA.png
NotTheDr01ds avatar
vn flag
ฉันได้ทำการแก้ไขคำถามของคุณอย่างละเอียดเพื่อพยายามทำให้อ่านง่ายขึ้น โปรดแจ้งให้เราทราบว่าฉันมีอะไรผิดพลาดที่นั่น ฉันไม่ได้เปลี่ยนสิ่งหนึ่งที่อาจต้องแก้ไข คุณบอกว่าคุณรันคำสั่ง `dism.exe / online / enable-feature / featurename command: VirtualMachinePlatform / all / norestart` แต่เห็นได้ชัดว่าเป็นคำสั่งที่ไม่ดี (พิมพ์ผิดเยอะหรือพิมพ์ผิดซ้ำ) ควรเป็น `dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart' คุณช่วยยืนยันได้ไหมว่าคุณรันคำสั่งที่ถูกต้อง
NotTheDr01ds avatar
vn flag
โปรดทราบว่าใน Windows 11 วิธีมาตรฐานในการติดตั้ง/เปิดใช้งาน WSL2 คือ `wsl --install` ซึ่งจะเปิดใช้งานทั้ง WSL2 และ WSL1 นอกจากนี้ยังจะติดตั้งและกำหนดค่าอินสแตนซ์ Ubuntu 20.04 ด้วยคำสั่งเดียว ไม่จำเป็นต้องทำตามขั้นตอน "แบบแมนนวล" แบบเก่าอื่น ๆ ทั้งหมด เว้นแต่จะมีบางอย่างผิดปกติกับ `wsl --install`
P.Bak avatar
tf flag
แล้วคุณแนะนำให้ทำอะไร? ถอนการติดตั้ง wsl และติดตั้งโดยใช้ powershella พร้อมสิทธิ์ผู้ดูแลระบบ wsl โดยใช้ ```wsl --install```?
Score:2
ธง vn

จากสิ่งที่เราได้พูดคุยกันในความคิดเห็น คำแนะนำส่วนตัวของฉันคือการยึดติดกับ WSL1 มันครอบคลุม ที่สุด กรณีการใช้งานของ WSL2 โดยการสร้าง "ชั้นการแปล" ระหว่างการเรียกไปยัง Linux kernel API และของ Windows kernel WSL2 ก้าวไปอีกขั้น (อย่างน้อย) ด้วยการจำลองเสมือน แต่ใช้งานได้ดีกับฮาร์ดแวร์ที่รองรับเท่านั้น

สำหรับ WSL2 เป็นไปได้ว่าคุณอาจมีปัญหามากกว่าหนึ่งปัญหา แต่อย่างน้อยหนึ่งความเป็นไปได้คือคุณต้องเปิดใช้งาน "Nested Virtualization" ใน VirtualBox

WSL2 ใช้คุณสมบัติของไฮเปอร์ไวเซอร์ Windows Hyper-V เพื่อสร้างเครื่องเสมือน เนื่องจากคุณใช้งาน Windows 11 ใน VirtualBox VM อยู่แล้ว นั่นหมายความว่าคุณกำลัง "ใช้งาน VM ภายใน VM" นั่นคือ "การจำลองเสมือนแบบซ้อน"

ฉันเชื่อว่าการสนับสนุนคุณลักษณะนี้เพิ่มเข้ามาตั้งแต่ VirtualBox 6.1.4 แต่คุณต้องเปิดใช้งาน ดู หน้าเอกสารนี้ สำหรับรายละเอียดทั้งหมด แต่สรุป:

  • หากคุณใช้ VirtualBox Manager GUI ให้ไปที่ โปรเซสเซอร์ แท็บและเปิด เปิดใช้งาน VT-x/AMD-V ที่ซ้อนกัน. หมายเหตุ ตามที่เราได้เรียนรู้ในความคิดเห็น ตัวเลือกนั้นบน VM ของคุณจะเป็นสีเทา เนื่องจาก CPU ของคุณ (Core m3-6Y30) ไม่รองรับการจำลองเสมือนบนฮาร์ดแวร์

  • คุณควรจะสามารถตั้งค่าตัวเลือกจากบรรทัดคำสั่งโดยใช้ VBoxManage modifiedvm vm-name --nested-hw-virt on. มีรายงานว่าสิ่งนี้จะ "บังคับ" การจำลองเสมือนแม้ในฮาร์ดแวร์ที่ไม่รองรับ (แต่ฉันไม่สามารถยืนยันได้) โปรดทราบว่าจากความคิดเห็นบน คำตอบนี้, "ประสิทธิภาพคาดว่าจะสุดซึ้ง" หาก CPU ของคุณไม่รองรับคุณสมบัติที่จำเป็น

P.Bak avatar
tf flag
ฉันต้องการเปิดสิ่งที่คุณกำลังพูดถึง แต่คุณลักษณะนี้ปิดอยู่ (ฉันไม่สามารถเลือกตัวเลือกนี้ได้)[1]: https://i.stack.imgur.com/9auEm.png ฉันจะเปิดใช้งานได้อย่างไร
NotTheDr01ds avatar
vn flag
@P.Bak สำหรับผู้เริ่มต้น ตอนนี้เรารู้แล้วว่ามันปิด ดังนั้น (อย่างน้อยหนึ่งเหตุผล) ว่าทำไมคุณจึงไม่สามารถเปิดใช้งาน WSL2 คุณใช้ VirtualBox เวอร์ชันใด [โพสต์ SO นี้](https://stackoverflow.com/q/54251855/11810933) ระบุว่า *เคยเป็น* (หรืออาจ *เป็น*) ใช้ได้เฉพาะกับ AMD แต่ฉันคิดว่าเป็นข้อมูลที่ล้าสมัย ตามหน้าล่าสุดที่ฉันเชื่อมโยงมันควรจะใช้ได้กับ Intel เช่นกัน แต่อาจต้องใช้รุ่นที่ใหม่กว่า ดูคำตอบที่ได้รับการโหวตสูงสุดซึ่งกล่าวถึงวิธีการเปิดใช้งานจากบรรทัดคำสั่งแม้ว่าจะเป็นสีเทาใน GUI แม้ว่าจะทราบปัญหาด้านประสิทธิภาพก็ตาม
P.Bak avatar
tf flag
เวอร์ชันปัจจุบันที่ฉันใช้คือ virtualbox 6.1.30
NotTheDr01ds avatar
vn flag
@P.Bak ดังนั้นควรมีโดยสมมติว่าฮาร์ดแวร์ของคุณรองรับ เราไม่ได้พูดถึงพื้นฐานอย่างใดอย่างหนึ่ง เช่น ระบบปฏิบัติการที่คุณใช้ VirtualBox อยู่ภายใต้อะไร คำแนะนำในการตรวจสอบว่าคุณรองรับการจำลองเสมือนที่ใช้ฮาร์ดแวร์หรือไม่นั้นจะขึ้นอยู่กับระบบปฏิบัติการระดับบนสุด คุณลอง `VBoxManage modifiedvm vm-name --nested-hw-virt on` หรือไม่ อีกครั้งที่มีรายงานว่าใช้งานได้ (แต่ช้ากว่า) แม้ว่าระบบหลักจะไม่รองรับการจำลองเสมือน
P.Bak avatar
tf flag
ระบบปฏิบัติการของฉันคือ windows 11 มันทำงานบนฮาร์ดแวร์ที่ไม่รองรับ ฉันมีโปรเซสเซอร์ Intel® Core™ m3-6Y30 CPU @ 0.90GHz วิธีแก้ปัญหาที่คุณพูดถึง ```VBoxManage modifiedvm vm-name --nested-hw-virt on``` ฉันยังไม่ได้ตรวจสอบ
P.Bak avatar
tf flag
เพื่อให้มีความชัดเจนของสถานการณ์ คุณแนะนำให้ใช้คำสั่ง ```VBoxManage modifiedvm vm-name --nested-hw-virt on``` หรือไม่
NotTheDr01ds avatar
vn flag
@P.Bak คุณกำลังพยายามเรียกใช้ Linux VM (WSL2) *ภายใน* Windows 11 VM (บน VirtualBox) *insider* Windows 11 บน CPU ที่ไม่รองรับการจำลองเสมือนที่ใช้ฮาร์ดแวร์ตั้งแต่แรก . หากคุณ *จริงๆ* จำเป็นต้องเรียกใช้ WSL2 ที่นั่น (และยังไม่มีการรับประกันว่าจะใช้งานได้) ใช่ ฉันขอแนะนำให้พยายาม "บังคับ" การจำลองเสมือนที่ซ้อนกันผ่านคำสั่งนั้น การเป็น VM นั้นไม่มีอันตรายอะไรใช่ไหม? ฉันได้แต่จินตนาการว่า ถ้ามันได้ผล มันจะช้าจนทนไม่ได้ แต่ฉันไม่สามารถพูดจากประสบการณ์ได้ ขอให้โชคดี!
P.Bak avatar
tf flag
ฉันหมายถึง ในฐานะผู้เริ่มต้น ฉันไม่ต้องการ wsl2 แต่เมื่อฉันดาวน์โหลด ubuntu จาก microsoft store มันรายงานข้อผิดพลาดว่าฉันไม่มี wsl2
P.Bak avatar
tf flag
แต่ประสิทธิภาพโดยรวมจะลดลงในเครื่องจริงหรือเครื่องเสมือน?
NotTheDr01ds avatar
vn flag
@P.Bak คุณ *ไม่สามารถ* รัน WSL2 บนเครื่องจริง *ของคุณ* ได้ เนื่องจาก CPU ของคุณไม่รองรับการจำลองเสมือนของฮาร์ดแวร์ **หาก** คุณสามารถ "บังคับ" การจำลองเสมือนใน VirtualBox ได้ เราคาดว่าประสิทธิภาพการทำงานจะตกต่ำ เพราะ *ทุก* การดำเนินการจำลองเสมือนจะทำในซอฟต์แวร์มากกว่าฮาร์ดแวร์
P.Bak avatar
tf flag
โอเคฉันเข้าใจ. และการเปลี่ยนแปลงเหล่านี้ที่ฉันอธิบายไว้ในโพสต์นี้เพื่อเรียกใช้ wsl บน virtualbox สามารถทำได้หรือไม่ เพราะถ้าบางอย่างได้ผลสำหรับฉัน ฉันก็ไม่อยากแตะต้องมัน มันเป็นไปตามหลักการของ "ถ้าอะไรได้ผล อย่าย้าย" และโพสต์นี้ตั้งขึ้นเพราะฉันต้องการทราบเหตุผลในการแก้ปัญหานี้เป็นหลัก

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา