Microsoft สัญญาว่า WSL จะให้ความรู้สึกเป็นธรรมชาติในที่สุด และฉันก็เบื่อที่จะรอแล้ว

/th/images/microsoft-yet-to-deliver-promise-of-making-wsl-native.JPG

เมื่อใดก็ตามที่ฉันพยายาม SSH จากเดสก์ท็อป Windows 11 ไปยังโหนด Proxmox เพื่อหมุนคอนเทนเนอร์ใหม่ มันไม่ค่อยราบรื่นนัก บางครั้งการเชื่อมต่อลดลง บางครั้งอาจมีปัญหาเรื่องการอนุญาต แต่ฉันไม่ได้รับคำเตือน ไม่มีข้อความแสดงข้อผิดพลาด — แค่เงียบไว้ ดังนั้นฉันจึงรีสตาร์ท WSL เชื่อมต่อใหม่ และดำเนินการต่อ ฉันได้ทำสิ่งนั้นมามากพอแล้วจนเป็นความจำของกล้ามเนื้อแล้ว

ห้องปฏิบัติการที่บ้านของฉันใช้งานโฮสต์ Proxmox โดยมี VM จำนวนหนึ่งที่ให้บริการต่างๆ เช่น Raspberry Pi 4 และบอร์ด ESP32 สองสามตัว อุปกรณ์เหล่านี้ทำงานทุกวันตลอด 24 ชั่วโมงและทำงานตามที่คาดไว้ และเมื่อฉันต้องการใช้ สภาพแวดล้อม Linux ที่น่าเชื่อถือน้อยที่สุดก็คือ Windows Subsystem for Linux (WSL) พร้อม Windows Terminal

Microsoft ยังคงย้ำอยู่เสมอว่า WSL จะให้ความรู้สึกดั้งเดิม แต่ยังไม่สามารถทำตามสัญญานั้นได้ ​

/th/images/windows-vs-linux.png

ที่เกี่ยวข้อง

5 เหตุผลที่ฉันหยุดการบูท Windows และ Linux บนพีซีของฉัน

มันไม่คุ้มค่ากับความยุ่งยากอีกต่อไป

กำลังพยายามใช้ WSL ในการตั้งค่าโฮมแล็บ

กำแพงที่คุณชนทุกครั้ง

WSL ควรจะเป็นศูนย์บัญชาการ ในฐานะโฮมแล็บเบอร์ ฉันต้องการ SSH ลงในโหนด Linux ทดสอบการกำหนดค่า Docker และจัดการทุกอย่างโดยไม่ต้องบูทคู่ใน Linux

ฉันใช้ WSL บน Windows เป็นบริดจ์ ด้วยอาการสะอึกในช่วงแรก ฉันจึงรู้สึกสบายใจที่จะใช้ WSL เพื่อจัดการเครื่อง Linux ของฉัน แต่มันก็ไม่เคยเร็วหรือมีประสิทธิภาพมากพอที่จะไว้วางใจได้โดยสิ้นเชิง

WSL2 นั้นดีกว่าจริงๆ ในด้านการตั้งค่า ความเข้ากันได้ และประสิทธิภาพโดยรวม — แต่ดีกว่านั้นก็ไม่ได้เหมือนกับเนทิฟเลย ทันทีที่คุณเริ่มทำงานกับระบบไฟล์ Linux ระบบเครือข่าย และวิธีแก้ปัญหาการส่งผ่าน USB คุณจะพบกับอุปสรรค ปัญหาเหล่านี้ยังคงเปิดอยู่บน GitHub

การเข้าถึงไฟล์โปรเจ็กต์ภายใต้จุดเมานท์หน้าต่างของ WSL (/mnt/c/) ทำได้ช้าเมื่อเทียบกับการทำงานในระบบไฟล์ Linux นั่นเป็นเพราะว่า WSL และ NTFS บน Windows ไม่สามารถสื่อสารข้ามขอบเขตระบบปฏิบัติการได้อย่างมีประสิทธิภาพ

แม้ว่าฉันจะจัดการได้ ฉันก็ต้องต่อสู้เพื่อสิทธิ์อนุญาตของไฟล์และต้องใช้ความพยายามอย่างมากในการค้นหาปัญหานี้ ยิ่งไปกว่านั้น WSL2 ยังกำหนดให้ฉันใช้เครื่องมือแยกต่างหากเพื่อจัดการการส่งผ่าน USB และฉันต้องติดตามการตั้งค่าหลายขั้นตอนด้วยตนเอง

WSL ทำงานได้ดี จนกระทั่งเตือนคุณว่าไม่ใช่เจ้าของภาษา

ความขัดแย้งข้ามขอบเขตยังคงมีอยู่

/th/images/networking-in-wsl.jpg

ตัวอย่างเช่น ฉันได้ต่อห้องแล็บที่บ้านเข้ากับ Tailscale เพื่อให้ฉันสามารถเข้าถึงได้เมื่อไม่อยู่ นั่นคือวิธีที่ฉันวางแผนจะเข้าถึง Pi, Proxmox node และ NAS ได้จากทุกที่ แต่เมื่อฉันใช้ WSL มันไม่ตรงไปตรงมาเลย เมื่อฉันหยุดใช้การเชื่อมต่อที่ใช้งานชั่วคราวและพยายามดำเนินการต่อ โหนดปลายทางไม่สามารถเข้าถึงได้

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

หลังจากเกิดข้อผิดพลาดในการอนุญาตมากมายกับ/var/run/docker.sock ฉันจึงเลิกใช้ WSL และย้ายทุกอย่างไปที่ Docker Desktop แต่นั่นทำให้เกิดปัญหาใหม่: เอ็นจิ้น Docker สองตัวทำงานพร้อมกัน แต่ CLI เลือกเพียงอันเดียว เมื่อฉันเปลี่ยนเทอร์มินัลหรือรีสตาร์ท WSL มันอาจเลือกเครื่องยนต์อื่นโดยไม่มีคำเตือน นั่นคือวิธีที่ฉันลงจอดโดยที่ Dockers มีสุขภาพที่ดี แต่อยู่ผิดที่

การปล่อยให้ WSL ทำงานอยู่นั้นรู้สึกเหมือนเป็นบาป เนื่องจากการใช้หน่วยความจำจะเพิ่มขึ้นอย่างต่อเนื่องเมื่อเวลาผ่านไป ถ้าฉันปล่อยให้ WSL ทำงานต่อไป พีซีจะค่อยๆ ทำงานช้าลง และทางแก้ไขเดียวคือการรีสตาร์ท WSL เมื่อมองย้อนกลับไป ฉันมักจะเปรียบเทียบเสมอว่า SSH ทำงานบน Linux VM บนโหนด Proxmox ได้ง่ายเพียงใด

WSL จะได้รับการเก็บรักษาเมื่อใด

ไม่ได้แย่ไปซะหมดแต่ยังไม่พอ

/th/images/wsl-networking-mess.jpg

สำหรับงานง่ายๆ เช่น เซสชัน SSH การรันสคริปต์ การอัปเดตระบบปฏิบัติการ และการซิงค์ไฟล์ข้ามพื้นที่จัดเก็บข้อมูล ทั้งหมดนี้ทำงานได้ดีกับ WSL แต่ห้องปฏิบัติการที่บ้านไม่ค่อยมีการออกแบบที่เรียบง่าย สำหรับผู้เริ่มต้น การปรับแต่งเครือข่ายรวมถึงการใช้ DNS แบบกำหนดเอง, VPN แบบแยกอุโมงค์ และ VLAN หลายตัว นั่นเป็นสาเหตุที่ WSL สะดุดมากที่สุด เนื่องจากไม่สามารถระงับการเชื่อมต่อที่ใช้งานอยู่ชั่วคราวและกลับมาทำงานต่อในภายหลังได้

สมัครรับจดหมายข่าวของเราสำหรับการแก้ไข WSL และ homelab

รับการแก้ไขปัญหา WSL และโฮมแล็บแบบลงมือปฏิบัติจริงในจดหมายข่าวของเรา สมัครรับข้อมูลการแก้ไขในทางปฏิบัติ คำแนะนำในการกำหนดค่า และวิธีแก้ปัญหาที่สมจริงสำหรับ SSH, Docker, ระบบเครือข่าย และระบบไฟล์ รวมถึงความครอบคลุมของโฮมแล็บที่กว้างขึ้น

รับการอัปเดต

การสมัครแสดงว่าคุณตกลงที่จะรับจดหมายข่าวและอีเมลทางการตลาด และยอมรับข้อกำหนดการใช้งานและนโยบายความเป็นส่วนตัวของเรา คุณสามารถยกเลิกการสมัครได้ตลอดเวลา

ฉันปฏิบัติตามขั้นตอนการทำงานที่เรียบง่าย — SSH โดยตรงไปยัง Pi หรือ Proxmox เพื่อให้บริการต่างๆ อยู่ในเครื่องที่เกี่ยวข้อง สำหรับการย้ายไฟล์ไปมา ฉันชอบ rsync มากกว่า สิ่งนี้ใช้ได้กับโฮมแล็บของฉันอย่างชัดเจน แต่นี่เป็นวิธีแก้ปัญหา

นั่นเป็นเรื่องที่แปลกเนื่องจาก WSL ควรจะขจัดแรงเสียดทานที่แน่นอนเพื่อมอบประสบการณ์ดั้งเดิม

/th/images/wsl-networking-mess.jpg

ที่เกี่ยวข้อง

WSL นั้นยอดเยี่ยม แต่ระบบเครือข่ายเละเทะ — นี่คือวิธีที่ฉันแก้ไข

มันไม่ควรจะซับซ้อนขนาดนี้

ไม่ต้องรออีก “เกือบพื้นเมือง” อีกต่อไป

WSL เป็นเหตุผลที่ฉันยังไม่ดูอัลบูตบนเดสก์ท็อป ฉันอ่านบันทึกการเปลี่ยนแปลงอยู่เรื่อยๆ โดยหวังว่าการอัปเดตครั้งถัดไปจะทำให้ได้รับประสบการณ์ที่เป็นธรรมชาติอย่างแท้จริง แทนที่จะมีฟีเจอร์ใหม่ๆ มากมาย ฉันต้องการการแก้ไขขั้นพื้นฐาน ด้านบนคือการจัดการหน่วยความจำพร้อมรีลีส เช่นเดียวกับกระบวนการปกติ เครือข่ายที่รอดพ้นจากรอบการระงับและดำเนินการต่อ และประสิทธิภาพของระบบไฟล์ที่ดีขึ้น ฉันจึงไม่ต้องเปลี่ยนระบบปฏิบัติการ

ฉันไม่สนใจว่าสิ่งเหล่านั้นจะไม่มีส่วนช่วยในการโพสต์ประกาศการอัปเดตที่ดีหรือไม่ ฉันจัดการโฮมแล็บที่มีอุปกรณ์เก้าเครื่องโดยมีพฤติกรรมที่สามารถคาดเดาได้ดีกว่าในหน้าต่างเทอร์มินัลเดียวบนพีซีหลักของฉัน Raspberry Pi ที่ใช้เครื่องชาร์จ USB ตรงมุมจะมีความสม่ำเสมอมากกว่า นั่นน่าจะรบกวน Microsoft มากกว่าที่คิด

*️⃣ ลิงค์ที่มา:

ระบบย่อย Windows สำหรับ Linux (WSL) พร้อม Windows Terminal 5 เหตุผลที่ฉันหยุดดูอัลบูท Windows และ Linux บนพีซีของฉัน , SSH ไปยังโหนด Linux, WSL2 ดีกว่าอย่างแท้จริง, วิธีแก้ปัญหาแบบพาสทรู USB, แล็บที่บ้านพร้อมกับ Tailscale, ย้ายทุกอย่างไปที่ Docker Desktop, การซิงค์ไฟล์ข้ามที่เก็บข้อมูล, DNS แบบกำหนดเอง, VPN แบบแยกช่องสัญญาณ, VLAN หลายตัว, , , , , ข้อกำหนดการใช้งาน , นโยบายความเป็นส่วนตัว , WSL นั้นยอดเยี่ยม แต่ระบบเครือข่ายนั้นยุ่งเหยิง — นี่คือวิธีที่ฉันแก้ไข อย่าบูตสองเครื่องบนเดสก์ท็อปของฉัน